Example #1
0
 public void CanGetWaveInMixerLine()
 {
     using (var waveIn = new WaveInEvent())
     {
         MixerLine line = waveIn.GetMixerLine();
         //Debug.WriteLine(String.Format("Mic Level {0}", level));
     }
 }
Example #2
0
        private void TryGetVolumeControl()
        {
            int waveInDeviceNumber = waveIn.DeviceNumber;

            if (Environment.OSVersion.Version.Major >= 6) // Vista and over
            {
                var mixerLine = waveIn.GetMixerLine();
                //new MixerLine((IntPtr)waveInDeviceNumber, 0, MixerFlags.WaveIn);
                foreach (var control in mixerLine.Controls)
                {
                    if (control.ControlType == MixerControlType.Volume)
                    {
                        this.volumeControl = control as UnsignedMixerControl;
                        MicrophoneLevel    = desiredVolume;
                        break;
                    }
                }
            }
            else
            {
                var mixer = new Mixer(waveInDeviceNumber);
                foreach (var destination in mixer.Destinations
                         .Where(d => d.ComponentType == MixerLineComponentType.DestinationWaveIn))
                {
                    foreach (var source in destination.Sources
                             .Where(source => source.ComponentType == MixerLineComponentType.SourceMicrophone))
                    {
                        foreach (var control in source.Controls
                                 .Where(control => control.ControlType == MixerControlType.Volume))
                        {
                            volumeControl   = control as UnsignedMixerControl;
                            MicrophoneLevel = desiredVolume;
                            break;
                        }
                    }
                }
            }
        }
Example #3
0
 protected AudioLevelManager(WaveInEvent waveDevice) : this(GetVolumeMixerControlForInputLine(waveDevice.GetMixerLine()))
 {
 }