internal AudioCaptureBase(int sampleRate, AudioChannel channel, AudioSampleType sampleType) { if (sampleRate < MinSampleRate || MaxSampleRate < sampleRate) { throw new ArgumentOutOfRangeException(nameof(sampleRate), sampleRate, $"Valid sampleRate range is { MinSampleRate } <= x <= { MaxSampleRate }."); } ValidationUtil.ValidateEnum(typeof(AudioChannel), channel, nameof(channel)); ValidationUtil.ValidateEnum(typeof(AudioSampleType), sampleType, nameof(sampleType)); SampleRate = sampleRate; Channel = channel; SampleType = sampleType; AudioIOUtil.ThrowIfError( AudioInput.Create(SampleRate, (int)Channel, (int)SampleType, out _handle)); RegisterStateChangedCallback(); }