【发布时间】:2014-07-22 20:46:56
【问题描述】:
我尝试获取 processID 例如 5640 - Spotify 的峰值(win7 音频混合器中绿色条的电平)。
在互联网上搜索了一个好的图书馆。我找到了 CSCore。
现在我有了这个:
class Program
{
static void Main(string[] args)
{
using (var sessionManager = GetDefaultAudioSessionManager2(DataFlow.Render))
{
using (var sessionEnumerator = sessionManager.GetSessionEnumerator())
{
foreach (var session in sessionEnumerator)
{
using (var audioMeterInformation = session.QueryInterface<AudioMeterInformation>())
{
Console.WriteLine(audioMeterInformation.GetPeakValue()*100);
}
}
}
}
Console.ReadKey();
}
private static AudioSessionManager2 GetDefaultAudioSessionManager2(DataFlow dataFlow)
{
using (var enumerator = new MMDeviceEnumerator())
{
using (var device = enumerator.GetDefaultAudioEndpoint(dataFlow, Role.Multimedia))
{
Debug.WriteLine("DefaultDevice: " + device.FriendlyName);
var sessionManager = AudioSessionManager2.FromMMDevice(device);
return sessionManager;
}
}
}
}
}
http://cscore.codeplex.com/ 的文档对我没有帮助。有人可以用我的代码给我一个例子吗,我怎样才能得到这样的输出:
58,31232---进程 ID---Spotify
目前看起来是这样的:
【问题讨论】:
-
这是一个高峰的例子。如果我听音乐,高峰会不断变化。如果您执行它,它会显示代表正在运行的音频应用程序的值(峰值)。但我不能分配它。我需要一个名称和输出中的峰值。
-
我已经编辑了你的标题。请参阅“Should questions include “tags” in their titles?”,其中的共识是“不,他们不应该”。