Ejemplo n.º 1
0
        public AudioControllerPluginConfigViewModel(PluginSystem.IPlugin Plugin, PluginSystem.PluginConfig PluginConfig)
            : base(Plugin, PluginConfig)
        {
            Uri uri = new Uri("pack://application:,,,/LauncherSilo.AudioControllerPlugin;component/AudioControllerPluginResource.xaml");
            StreamResourceInfo info   = Application.GetResourceStream(uri);
            XamlReader         reader = new XamlReader();
            var dictionary            = reader.LoadAsync(info.Stream) as ResourceDictionary;

            PluginConfigControlTemplate = dictionary["AudioControllerPluginConfigView"] as ControlTemplate;

            NAudio.CoreAudioApi.MMDeviceEnumerator enumerator = new NAudio.CoreAudioApi.MMDeviceEnumerator();
            NAudio.CoreAudioApi.MMDeviceCollection endPoints  = enumerator.EnumerateAudioEndPoints(NAudio.CoreAudioApi.DataFlow.All, NAudio.CoreAudioApi.DeviceState.All);
            foreach (NAudio.CoreAudioApi.MMDevice endPoint in endPoints)
            {
                if (endPoint.State == NAudio.CoreAudioApi.DeviceState.NotPresent)
                {
                    continue;
                }
                if (endPoint.DataFlow == NAudio.CoreAudioApi.DataFlow.Render)
                {
                    AudioPlaybackDeviceVM.Add(new AudioDeviceViewModel(endPoint));
                }
                else if (endPoint.DataFlow == NAudio.CoreAudioApi.DataFlow.Capture)
                {
                    AudioCaptureDeviceVM.Add(new AudioDeviceViewModel(endPoint));
                }
            }
        }
Ejemplo n.º 2
0
 public static int GetVolume()
 {
     try
     {
         //Instantiate an Enumerator to find audio devices
         NAudio.CoreAudioApi.MMDeviceEnumerator MMDE = new NAudio.CoreAudioApi.MMDeviceEnumerator();
         //Get all the devices, no matter what condition or status
         NAudio.CoreAudioApi.MMDeviceCollection DevCol = MMDE.EnumerateAudioEndPoints(NAudio.CoreAudioApi.DataFlow.Render, NAudio.CoreAudioApi.DeviceState.Active);
         //Loop through all devices
         foreach (NAudio.CoreAudioApi.MMDevice dev in DevCol)
         {
             try
             {
                 if (dev.State == NAudio.CoreAudioApi.DeviceState.Active)
                 {
                     float volume    = dev.AudioEndpointVolume.MasterVolumeLevelScalar;
                     int   volumeInt = (int)(volume * 100);
                     return(volumeInt);
                 }
             }
             catch (Exception ex)
             {
                 //Do something with exception when an audio endpoint could not be muted
                 Debug.WriteLine(dev.FriendlyName + " could not be muted with error " + ex);
             }
         }
     }
     catch (Exception ex)
     {
         //When something happend that prevent us to iterate through the devices
         Debug.WriteLine("Could not enumerate devices due to an excepion: " + ex.Message);
     }
     return(-1);
 }
Ejemplo n.º 3
0
 private void muteOff()
 {
     try
     {
         //Instantiate an Enumerator to find audio devices
         NAudio.CoreAudioApi.MMDeviceEnumerator MMDE = new NAudio.CoreAudioApi.MMDeviceEnumerator();
         //Get all the devices, no matter what condition or status
         NAudio.CoreAudioApi.MMDeviceCollection DevCol = MMDE.EnumerateAudioEndPoints(NAudio.CoreAudioApi.DataFlow.All, NAudio.CoreAudioApi.DeviceState.All);
         //Loop through all devices
         foreach (NAudio.CoreAudioApi.MMDevice dev in DevCol)
         {
             try
             {
                 //Show us the human understandable name of the device
                 System.Diagnostics.Debug.Print(dev.FriendlyName);
                 //Mute it
                 dev.AudioEndpointVolume.Mute = false;
             }
             catch (Exception ex)
             {
                 //Do something with exception when an audio endpoint could not be muted
             }
         }
     }
     catch (Exception ex)
     {
         //When something happend that prevent us to iterate through the devices
     }
 }
Ejemplo n.º 4
0
        public static void MuteChannel(int channelIndex, bool isMute, int delayMilliseconds = 0)
        {
            new Thread(() =>
            {
                if (delayMilliseconds > 0)
                {
                    Thread.Sleep(delayMilliseconds);
                }

                NAudio.CoreAudioApi.MMDeviceEnumerator mmde = new NAudio.CoreAudioApi.MMDeviceEnumerator();

                NAudio.CoreAudioApi.MMDeviceCollection devCol = mmde.EnumerateAudioEndPoints(NAudio.CoreAudioApi.DataFlow.All, NAudio.CoreAudioApi.DeviceState.All);

                foreach (NAudio.CoreAudioApi.MMDevice dev in devCol)
                {
                    try
                    {
                        if (dev.State == NAudio.CoreAudioApi.DeviceState.Active)
                        {
                            dev.AudioSessionManager.Sessions[dev.AudioSessionManager.Sessions.Count - channelIndex - 1].SimpleAudioVolume.Mute = isMute;
                        }
                    }
                    catch { /* ignored */ }
                }
            }).Start();
        }
Ejemplo n.º 5
0
        void RefreshAudioDeviceList()
        {
            NAudio.CoreAudioApi.MMDeviceCollection devices = ap.GetActiveDevices();

            ObservableCollection <string> list = new ObservableCollection <string>();

            foreach (NAudio.CoreAudioApi.MMDevice device in devices)
            {
                string deviceType = device.DataFlow == NAudio.CoreAudioApi.DataFlow.Capture ? "Microphone " : "Speaker ";
                list.Add(deviceType + device.DeviceFriendlyName);
            }
            SADeviceDrop.ItemsSource = list;
        }
Ejemplo n.º 6
0
 public void SetVolumeNAudio(float volumeScalar)
 {
     try
     {
         NAudio.CoreAudioApi.MMDeviceEnumerator MMDE   = new NAudio.CoreAudioApi.MMDeviceEnumerator();
         NAudio.CoreAudioApi.MMDeviceCollection DevCol = MMDE.EnumerateAudioEndPoints(NAudio.CoreAudioApi.DataFlow.All, NAudio.CoreAudioApi.DeviceState.Active);
         foreach (NAudio.CoreAudioApi.MMDevice dev in DevCol)
         {
             dev.AudioEndpointVolume.MasterVolumeLevelScalar = volumeScalar;
         }
     }
     catch (Exception ex)
     {
         System.Diagnostics.Debug.Print("Excepion: " + ex.Message);
     }
 }
Ejemplo n.º 7
0
 public void ChangeVolume(int level)
 {
     NAudio.CoreAudioApi.MMDeviceEnumerator MMDE   = new NAudio.CoreAudioApi.MMDeviceEnumerator();
     NAudio.CoreAudioApi.MMDeviceCollection DevCol = MMDE.EnumerateAudioEndPoints(NAudio.CoreAudioApi.DataFlow.All, NAudio.CoreAudioApi.DeviceState.All);
     foreach (NAudio.CoreAudioApi.MMDevice dev in DevCol)
     {
         try
         {
             if (dev.State == NAudio.CoreAudioApi.DeviceState.Active)
             {
                 var newVolume = (float)Math.Max(Math.Min(level, 100), 0) / (float)100;
                 dev.AudioEndpointVolume.MasterVolumeLevelScalar = newVolume;
                 dev.AudioEndpointVolume.Mute = level == 0;
             }
         }
         catch (Exception) {}
     }
 }
Ejemplo n.º 8
0
 public float GetVolumeNAudio()
 {
     try
     {
         NAudio.CoreAudioApi.MMDeviceEnumerator MMDE   = new NAudio.CoreAudioApi.MMDeviceEnumerator();
         NAudio.CoreAudioApi.MMDeviceCollection DevCol = MMDE.EnumerateAudioEndPoints(NAudio.CoreAudioApi.DataFlow.All, NAudio.CoreAudioApi.DeviceState.Active);
         foreach (NAudio.CoreAudioApi.MMDevice dev in DevCol)
         {
             Console.WriteLine("Name of device: " + dev.FriendlyName);
             return(dev.AudioEndpointVolume.MasterVolumeLevelScalar);
         }
     }
     catch (Exception ex)
     {
         System.Diagnostics.Debug.Print("Excepion: " + ex.Message);
     }
     return(1.0f);
 }
Ejemplo n.º 9
0
        public Form1()
        {
            InitializeComponent();
            trackBar1.ValueChanged += trackBar1_ValueChanged;
            try
            {
                //Instantiate an Enumerator to find audio devices
                NAudio.CoreAudioApi.MMDeviceEnumerator MMDE = new NAudio.CoreAudioApi.MMDeviceEnumerator();
                //Get all the devices, no matter what condition or status
                NAudio.CoreAudioApi.MMDeviceCollection DevCol = MMDE.EnumerateAudioEndPoints(NAudio.CoreAudioApi.DataFlow.All, NAudio.CoreAudioApi.DeviceState.All);
                //Loop through all devices
                foreach (NAudio.CoreAudioApi.MMDevice dev in DevCol)
                {
                    try
                    {
                        dev.AudioEndpointVolume.MasterVolumeLevel = 0;
                        Trace.WriteLine("MasterVolumeLevel:" + dev.AudioEndpointVolume.StepInformation.StepCount);
                        trackBar1.Minimum = (int)dev.AudioEndpointVolume.VolumeRange.MinDecibels;
                        trackBar1.Maximum = (int)dev.AudioEndpointVolume.VolumeRange.MaxDecibels;
                        trackBar1.Scale(dev.AudioEndpointVolume.MasterVolumeLevelScalar);
                        trackBar1.Value = (int)dev.AudioEndpointVolume.MasterVolumeLevel;
                        //Set at maximum volume
                        //dev.AudioEndpointVolume.MasterVolumeLevel = 0;

                        //Get its audio volume
                        System.Diagnostics.Debug.Print("Volume of " + dev.FriendlyName + " is " + dev.AudioEndpointVolume.MasterVolumeLevel.ToString());

                        //Mute it
                        //dev.AudioEndpointVolume.Mute = true;
                        System.Diagnostics.Debug.Print(dev.FriendlyName + " is muted");
                    }
                    catch (Exception ex)
                    {
                        //Do something with exception when an audio endpoint could not be muted
                        System.Diagnostics.Debug.Print(dev.FriendlyName + " could not be muted");
                    }
                }
            }
            catch (Exception ex)
            {
                //When something happend that prevent us to iterate through the devices
                System.Diagnostics.Debug.Print("Could not enumerate devices due to an excepion: " + ex.Message);
            }
        }
Ejemplo n.º 10
0
        public void SetVolume(int level)
        {
            try
            {
                //Instantiate an Enumerator to find audio devices
                NAudio.CoreAudioApi.MMDeviceEnumerator MMDE = new NAudio.CoreAudioApi.MMDeviceEnumerator();
                //Get all the devices, no matter what condition or status
                NAudio.CoreAudioApi.MMDeviceCollection DevCol = MMDE.EnumerateAudioEndPoints(NAudio.CoreAudioApi.DataFlow.All, NAudio.CoreAudioApi.DeviceState.All);
                //Loop through all devices
                foreach (NAudio.CoreAudioApi.MMDevice dev in DevCol)
                {
                    try
                    {
                        if (dev.State == NAudio.CoreAudioApi.DeviceState.Active)
                        {
                            var newVolume = (float)Math.Max(Math.Min(level, 100), 0) / (float)100;

                            //Set at maximum volume
                            dev.AudioEndpointVolume.MasterVolumeLevelScalar = newVolume;

                            dev.AudioEndpointVolume.Mute = level == 0;

                            //Get its audio volume
                            Console.WriteLine("Volume of " + dev.FriendlyName + " is " + dev.AudioEndpointVolume.MasterVolumeLevelScalar.ToString());
                        }
                        else
                        {
                            Console.WriteLine("Ignoring device " + dev.FriendlyName + " with state " + dev.State);
                        }
                    }
                    catch (Exception ex)
                    {
                        //Do something with exception when an audio endpoint could not be muted
                        Console.WriteLine(dev.FriendlyName + " could not be muted with error " + ex);
                    }
                }
            }
            catch (Exception ex)
            {
                //When something happend that prevent us to iterate through the devices
                Console.WriteLine("Could not enumerate devices due to an excepion: " + ex.Message);
            }
        }
Ejemplo n.º 11
0
        public int GetValueVolume()
        {
            int volume = 0;

            NAudio.CoreAudioApi.MMDeviceEnumerator MMDE   = new NAudio.CoreAudioApi.MMDeviceEnumerator();
            NAudio.CoreAudioApi.MMDeviceCollection DevCol = MMDE.EnumerateAudioEndPoints(NAudio.CoreAudioApi.DataFlow.All, NAudio.CoreAudioApi.DeviceState.All);
            foreach (NAudio.CoreAudioApi.MMDevice dev in DevCol)
            {
                try
                {
                    if (dev.State == NAudio.CoreAudioApi.DeviceState.Active)
                    {
                        volume = Convert.ToInt32(dev.AudioEndpointVolume.MasterVolumeLevelScalar * 100);
                    }
                }
                catch (Exception) { }
            }
            return(volume);
        }
Ejemplo n.º 12
0
 private void GetDevice()
 {
     listBox1.Items.Add("GetDevice");
     try
     {
         //Instantiate an Enumerator to find audio devices
         NAudio.CoreAudioApi.MMDeviceEnumerator MMDE = new NAudio.CoreAudioApi.MMDeviceEnumerator();
         //Get all the devices, no matter what condition or status
         NAudio.CoreAudioApi.MMDeviceCollection DevCol = MMDE.EnumerateAudioEndPoints(NAudio.CoreAudioApi.DataFlow.All, NAudio.CoreAudioApi.DeviceState.All);
         //Loop through all devices
         foreach (NAudio.CoreAudioApi.MMDevice dev in DevCol)
         {
             try
             {
                 if (dev.State == NAudio.CoreAudioApi.DeviceState.Active)
                 {
                     listBox1.Items.Add("Device 찾음");
                     listBox1.Items.Add(dev.FriendlyName);
                     cbDevice.Items.Add(dev);
                 }
                 else
                 {
                     Console.WriteLine("Ignoring device " + dev.FriendlyName + " with state " + dev.State);
                 }
             }
             catch (Exception ex)
             {
                 listBox1.Items.Add(ex.ToString());
             }
         }
     }
     catch (Exception ex)
     {
         listBox1.Items.Add(ex.ToString());
     }
     if (cbDevice.Items.Count > 0)
     {
         cbDevice.SelectedIndex = 0;
         master = (NAudio.CoreAudioApi.MMDevice)cbDevice.Items[0];
     }
 }
Ejemplo n.º 13
0
        private void buttonDown_Click(object sender, EventArgs e)
        {
            try
            {
                //Instantiate an Enumerator to find audio devices
                NAudio.CoreAudioApi.MMDeviceEnumerator MMDE = new NAudio.CoreAudioApi.MMDeviceEnumerator();
                //Get all the devices, no matter what condition or status
                NAudio.CoreAudioApi.MMDeviceCollection DevCol = MMDE.EnumerateAudioEndPoints(NAudio.CoreAudioApi.DataFlow.All, NAudio.CoreAudioApi.DeviceState.All);
                //Loop through all devices
                foreach (NAudio.CoreAudioApi.MMDevice dev in DevCol)
                {
                    try
                    {
                        dev.AudioEndpointVolume.VolumeStepDown();
                        Trace.WriteLine(dev.AudioEndpointVolume.MasterVolumeLevel);
                        trackBar1.Value = (int)dev.AudioEndpointVolume.MasterVolumeLevel;
                        //Trace.WriteLine(trackBar1.Value);
                        //Set at maximum volume
                        //dev.AudioEndpointVolume.MasterVolumeLevel = 0;

                        //Get its audio volume
                        System.Diagnostics.Debug.Print("Volume of " + dev.FriendlyName + " is " + dev.AudioEndpointVolume.MasterVolumeLevel.ToString());

                        //Mute it
                        //dev.AudioEndpointVolume.Mute = true;
                        System.Diagnostics.Debug.Print(dev.FriendlyName + " is muted");
                    }
                    catch (Exception ex)
                    {
                        //Do something with exception when an audio endpoint could not be muted
                        System.Diagnostics.Debug.Print(dev.FriendlyName + " could not be muted");
                    }
                }
            }
            catch (Exception ex)
            {
                //When something happend that prevent us to iterate through the devices
                System.Diagnostics.Debug.Print("Could not enumerate devices due to an excepion: " + ex.Message);
            }
        }
Ejemplo n.º 14
0
        public void SetVolume(Int32 iLevel)
        {
            Program.Logger.WriteLine(Debugging.BasicTextLogger.MessageType.info, "Attempting tomute the volume of all connected audio devices.");
            try
            {
                NAudio.CoreAudioApi.MMDeviceEnumerator pMDEEnum    = new NAudio.CoreAudioApi.MMDeviceEnumerator();
                NAudio.CoreAudioApi.MMDeviceCollection pMDCDevices = pMDEEnum.EnumerateAudioEndPoints(NAudio.CoreAudioApi.DataFlow.All, NAudio.CoreAudioApi.DeviceState.All);
                foreach (NAudio.CoreAudioApi.MMDevice curDevice in pMDCDevices)
                {
                    try
                    {
                        if (curDevice.State == NAudio.CoreAudioApi.DeviceState.Active)
                        {
                            float pFltNewVolume = (float)Math.Max(Math.Min(iLevel, 100), 0) / (float)100;

                            curDevice.AudioEndpointVolume.MasterVolumeLevelScalar = pFltNewVolume;
                            curDevice.AudioEndpointVolume.Mute = (iLevel == 0);

                            Program.Logger.WriteLine(Debugging.BasicTextLogger.MessageType.info, "Volume of {0} is {1}.", curDevice.FriendlyName, curDevice.AudioEndpointVolume.MasterVolumeLevelScalar.ToString());
                        }
                        else
                        {
                            Program.Logger.WriteLine(Debugging.BasicTextLogger.MessageType.debug, "Ignoring device {0} with state {1}.", curDevice.FriendlyName, curDevice.State);
                        }
                    }
                    catch (Exception ex)
                    {
                        Program.Logger.WriteLine(Debugging.BasicTextLogger.MessageType.error, "{0} could not be muted.", curDevice.FriendlyName);
                        Program.Logger.WriteException(ex);
                    }
                }
            }
            catch (Exception ex)
            {
                Program.Logger.WriteLine(Debugging.BasicTextLogger.MessageType.error, "Unable to enumerate audio devices.");
                Program.Logger.WriteException(ex);
            }
        }
Ejemplo n.º 15
0
        private void SourceStreamDataAvailable(object sender, WaveInEventArgs e)
        {
            NAudio.CoreAudioApi.MMDeviceEnumerator MMDE   = new NAudio.CoreAudioApi.MMDeviceEnumerator();
            NAudio.CoreAudioApi.MMDeviceCollection DevCol = MMDE.EnumerateAudioEndPoints(NAudio.CoreAudioApi.DataFlow.All, NAudio.CoreAudioApi.DeviceState.Active);
            NAudio.CoreAudioApi.MMDevice           device = DevCol[3];

            double volume = Math.Round(device.AudioMeterInformation.MasterPeakValue * 100, 1);

            Console.WriteLine(volume.ToString());
            if (waveWriter == null)
            {
                return;
            }

            if (volume < 1)
            {
                counter++;
            }
            else
            {
                waveWriter.Write(e.Buffer, 0, e.BytesRecorded);
                waveWriter.Flush();
                counter = 0;
                mCounter++;
            }

            if (counter > 30)
            {
                long a1 = sw.ElapsedMilliseconds;
                int  c  = mCounter;

                counter = 0;
                sourceStream.DataAvailable -= this.SourceStreamDataAvailable;
                StopRecording();
                eventStopRecording(this, new EventArgs());
            }
        }