无法设置MediaPlayer.Volume

时间:2012-04-15 16:38:48

标签: c# media-player windows-phone-7.1

我正在研究控制音量的不同方法,我似乎无法在我的Windows Phone 7.1应用程序中设置MediaPlayer.Volume。基本上,打电话

MediaPlayer.Volume = value;

无效,调用MediaPlayer.IsMuted = TRUE无效。

示例:

public MainPage()
{
    InitializeComponent();
    //Play a song from the collection
    FrameworkDispatcher.Update(); 
    MediaPlayer.Play(ml.Artists[0].Songs[0]);
}

private void Button_Click(object sender, RoutedEventArgs e)
{
    //Reduce volume to 0
    FrameworkDispatcher.Update(); 
    MediaPlayer.Volume = 0.0f;
    //If I set a breakpoint here, MediaPlayer.Volume is 1.0
}

private void Button_Click_1(object sender, RoutedEventArgs e)
{
    //This also has no effect...
    FrameworkDispatcher.Update(); 
    MediaPlayer.IsMuted = !MediaPlayer.IsMuted;
}

有谁知道我误解了一个简单明显的事实?

2 个答案:

答案 0 :(得分:1)

我不熟悉MediaPlayer,但看起来你不再允许在从Zune库播放时设置音量和静音属性。 Changes in XNA Studio 4.0

我假设您的ml变量引用了Zune媒体库,这就是您遇到此问题的原因。如果您停止播放歌曲,然后调整音量或预先调整音量,则问题应该消失。

您还可以查看MediaElement,看看它是否适合您的方案。

答案 1 :(得分:0)

或者您的设备不支持MediaPlayer Volume API。

来自:Tips for XNA WP7 developers

电台

·永远不要依赖声音作为向玩家发出游戏中发生的事情的唯一信号。他们可能会关闭声音。他们可能会在某个地方大声玩耍。等

·你必须提供控制来禁用声音&音乐。这些应该是分开的。

·在至少一种型号的手机上,音量控制API目前无效。玩家可以通过硬件音量按钮调整声音,但在游戏选择器中根本不起作用。因此,除声音和音乐的开/关开关之外,提供任何东西可能是不值得的。