Closed. This question needs to be more focused 。它目前不接受答案。
想改善这个问题吗?更新问题,使其仅通过 editing this post 关注一个问题。
1年前关闭。
Improve this question
我想要做的就是构建一个简单的应用程序来控制我的音量混合器。我更喜欢使用 c#,但我得到的印象是它的语言水平太高,无法做这样的事情。我正在寻找有关如何开始执行此操作的简单教程,请有人指出我正确的方向。
有关更多详细信息,请查看:Getting individual windows application current volume output level as visualized in audio Mixer
想改善这个问题吗?更新问题,使其仅通过 editing this post 关注一个问题。
1年前关闭。
Improve this question
我想要做的就是构建一个简单的应用程序来控制我的音量混合器。我更喜欢使用 c#,但我得到的印象是它的语言水平太高,无法做这样的事情。我正在寻找有关如何开始执行此操作的简单教程,请有人指出我正确的方向。
最佳答案
您可以使用 CSCore :
private static void Main(string[] args)
{
using (var sessionManager = GetDefaultAudioSessionManager2(DataFlow.Render))
{
using (var sessionEnumerator = sessionManager.GetSessionEnumerator())
{
foreach (var session in sessionEnumerator)
{
using (var simpleVolume = session.QueryInterface<SimpleAudioVolume>())
{
Assert.IsNotNull(simpleVolume);
float volume = simpleVolume.MasterVolume;
simpleVolume.MasterVolume = 1.0f;
simpleVolume.MasterVolume = 0.0f;
simpleVolume.MasterVolume = volume;
bool muted = simpleVolume.IsMuted;
simpleVolume.IsMuted = !muted;
simpleVolume.IsMuted = muted;
}
}
}
}
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;
}
}
}
有关更多详细信息,请查看:Getting individual windows application current volume output level as visualized in audio Mixer
关于c# - 尝试构建一个简单的 c# 应用程序来控制我的音量混合器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23126407/