从TombStoning恢复后,MediaElement无法播放

时间:2013-04-02 06:12:51

标签: windows-phone-7 windows-phone-8 mediaelement

我有一个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();
    }

1 个答案:

答案 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);
}