Closed. This question needs to be more focused 。它目前不接受答案。












想改善这个问题吗?更新问题,使其仅通过 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/

10-14 11:10
查看更多