Advertisement
Zekrommaster110

[C#] Detect Audio Volume From Process

Oct 19th, 2016
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.69 KB | None | 0 0
  1. // © 2016 zekro
  2. // Using CSCore Audio Api: https://cscore.codeplex.com
  3.  
  4. private void detectSoundVolume()
  5.         {
  6.  
  7.             float audio;
  8.  
  9.             AudioSessionManager2 sessionManager = GetDefaultAudioSessionManager2(DataFlow.Render);
  10.             AudioSessionEnumerator sessionEnumerator = sessionManager.GetSessionEnumerator();
  11.  
  12.             AudioSessionControl2 sessionControl;
  13.  
  14.             foreach (AudioSessionControl session in sessionEnumerator)
  15.             {
  16.                 sessionControl = session.QueryInterface<AudioSessionControl2>();
  17.                
  18.                 if (sessionControl.Process.MainWindowTitle.Contains("Adobe Media Encoder"))
  19.                 {
  20.                     audio = session.QueryInterface<AudioMeterInformation>().PeakValue;
  21.                     label1.Text = audio.ToString();
  22.                     if (audio > 0.1)
  23.                         Console.WriteLine("TEST");
  24.                     break;
  25.                 }
  26.             }
  27.            
  28.         }
  29.  
  30.         private static AudioSessionManager2 GetDefaultAudioSessionManager2(DataFlow dataFlow)
  31.         {
  32.             using (var enumerator = new MMDeviceEnumerator())
  33.             {
  34.                 using (var device = enumerator.GetDefaultAudioEndpoint(dataFlow, Role.Multimedia))
  35.                 {
  36.                     Debug.WriteLine("DefaultDevice: " + device.FriendlyName);
  37.                     var sessionManager = AudioSessionManager2.FromMMDevice(device);
  38.                     return sessionManager;
  39.                 }
  40.             }
  41.         }
  42.  
  43.         [DllImport("kernel32.dll", SetLastError = true)]
  44.         [return: MarshalAs(UnmanagedType.Bool)]
  45.         static extern bool AllocConsole();
  46.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement