gpt4 book ai didi

c# - CSCore应用程序音频混音器名称+峰值

转载 作者:行者123 更新时间:2023-12-02 22:57:10 25 4
gpt4 key购买 nike

我尝试获取processID的峰值(win7音频混音器中绿色条的电平),例如5640-Spotify。

在互联网上搜索了一个好的图书馆。我找到了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

瞬间看起来像这样:

最佳答案

您可以将代码修改为以下形式(也可以查看cscore的单元测试):

class Program
{
static void Main(string[] args)
{
using (var sessionManager = GetDefaultAudioSessionManager2(DataFlow.Render))
using (var sessionEnumerator = sessionManager.GetSessionEnumerator())
{
foreach (var session in sessionEnumerator)
{
Assert.IsNotNull(session);

using (var session2 = session.QueryInterface<AudioSessionControl2>())
using (var audioMeterInformation = session.QueryInterface<AudioMeterInformation>())
{
Debug.WriteLine("Process: {0}; Peak: {1:P}",
session2.Process == null ? String.Empty : session2.Process.MainWindowTitle,
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;
}
}
}
}

关于c# - CSCore应用程序音频混音器名称+峰值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23999531/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com