在Windows中使用WMPLib控制C#中的卷

Ari*_*ith 1 c# media volume

故事:我正在写一个由声音控制的音乐播放器.以前这个项目使用winamp音乐 - 我想废除它.我想将语音控制与音乐播放器集成.问题是,当更改媒体播放器对象的音量属性(mplayer.settings.volume = 5;)时,它会更改MASTER音量.这意味着在播放音乐时,任何语音反馈都将完全听不到.你开车的时候不酷.如果我启动Windows媒体播放器,我可以在不影响主音量的情况下改变音乐的音量.所以必须有一种方法.

我想过可能会发现是否有一个均衡器控制器埋在那里,但是关于它的文档是可悲的. - 无论是那个还是我的google-fu都很弱.

那么有谁知道如何用Windows媒体播放器控件分离主音量和音乐音量?

详情:目标机器是XP(sp3),我相信.NET 4.0.此外,这是一个控制台应用程序.

在此先感谢您的帮助

Rus*_*ail 5

我已经在Windows Media Player VER 12中对此进行了测试,因此我猜对于大多数人来说,比使用"user32.dll"更简单:

private static WMPLib.WindowsMediaPlayer Player;

public static void VolumeUp()
{
    if (Player.settings.volume < 90)
    {
        Player.settings.volume = (Player.settings.volume + 10);
    }
}

public static void VolumeDown()
{
    if (Player.settings.volume > 1)
    {
        Player.settings.volume = (Player.settings.volume - (Player.settings.volume / 2));
    }
}
Run Code Online (Sandbox Code Playgroud)

毫无疑问,这已经得到了一段时间的支持.它不会更改主音量,只会更改媒体播放器音量.Windows Master Volume保持不变.

希望这能帮助那些不限于XP SP3的人.