【发布时间】:2015-02-02 13:00:51
【问题描述】:
我已经使用 CSCore 库过滤了我的程序中的所有音频流。它工作正常,但我不知道哪个流属于哪个进程。 有没有办法获取每个流的 processId 或 processname?
我的代码:
public class Audio
{
public static void start(ListBox device, ListBox process)
{
using (var sessionManager = GetDefaultAudioSessionManager2(DataFlow.Render))
{
using (var sessionEnumerator = sessionManager.GetSessionEnumerator())
{
foreach (var session in sessionEnumerator)
{
using (var audioMeterInformation = session.QueryInterface<AudioMeterInformation>())
{
device.Items.Add(audioMeterInformation.GetPeakValue());
process.Items.Add("here I need the processname or ID");
}
}
}
}
}
private static AudioSessionManager2 GetDefaultAudioSessionManager2(DataFlow dataFlow)
{
using (var enumerator = new MMDeviceEnumerator())
{
using (var device = enumerator.GetDefaultAudioEndpoint(dataFlow, Role.Multimedia))
{
var sessionManager = AudioSessionManager2.FromMMDevice(device);
return sessionManager;
}
}
}
}
非常感谢!
【问题讨论】: