我有一个MediaElement用于跨页面播放音乐。因此,我必须将它作为App.xaml中的资源。
在我按下WP中的Windows按钮之前,事情按预期工作。应用程序被逻辑删除,MediaElement按预期停止播放。在我的Application_Deactivated上,我显式调用了Player.Stop()
恢复应用程序时会出现问题。所有其他状态都已恢复,但是媒体元素不播放音乐。我可以看到负责音乐的代码受到了攻击,但MediaElement的MediaOpened并没有被触发。我错过了一些明显的东西吗?
编辑[澄清KeyboardP的问题]
<Application.Resources>
<MediaElement x:Name="ME" MediaEnded="RepeatMedia" Volume="1" AutoPlay="False" Height="0" Source="/Sounds/mywave.wav" />
</Application.Resources>
在我的App.XAML.CS中,我有一个名为...的方法
public MediaElement player = null;
private void InitializeMusic()
{
if (App.Current.Resources.Contains("ME"))
{
player = App.Current.Resources["ME"] as MediaElement;
}
player.MediaOpened += player_MediaOpened;
}
我在......中再次初始化它。
// Code to execute when the application is activated (brought to foreground)
// This code will not execute when the application is first launched
private void Application_Activated(object sender, ActivatedEventArgs e)
{
InitializeMusic();
}
答案 0 :(得分:2)
我不确定为什么会在逻辑删除后删除Source
属性,因此请尝试重置后面代码中的源代码。
if (App.Current.Resources.Contains("ME"))
{
player =(MediaElement) App.Current.Resources["ME"] as MediaElement;
player.Source = new Uri("/Sounds/mywave.wav", UriKind.Relative);
}