访问MediaLibrary和MediaPlayer时抛出UnauthorizedAccessException

时间:2014-06-30 14:24:17

标签: c# windows-phone-8 windows-phone

我正在尝试为Windows手机创建媒体播放器。我有一个为Windows Phone 7创建的早期项目,但是当我使用相同的Windows Phone 8代码时,该应用程序崩溃了一个UnhandledException。我正在使用Lumia 925设备。以前的应用程序位于商店中,用于Windows Phone 8设备。我不知道问题是什么。当点击播放来自图书馆的歌曲时,我尝试使用按钮创建一个新项目。但同样的事情发生..应用程序崩溃与UnhandledException。这是代码

    private void btnPlay_Click(object sender, RoutedEventArgs e)
    {
        try
        {
            MediaLibrary lib = new MediaLibrary();
            var songsLib = lib.Songs;
            MediaPlayer.Play(songsLib[0]);
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }

我已在清单中添加了所有权限。我搜索过,无法找到解决方案。我的模拟器现在无法正常工作,我无法使用模拟器进行检查。但我认为这两个应用程序都在模拟器中工作。在设备中运行时会出现问题。

P.S。我注意到的事情,当我从商店下载我的原始应用程序并运行它时,它在图书馆中没有歌曲时运行良好。只要手机中有歌曲,应用程序就会崩溃。

1 个答案:

答案 0 :(得分:4)

来自MSDN http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.frameworkdispatcher.update.aspx

  

如果在未实现的应用程序中使用XNA Framework   游戏类 - 例如,使用该游戏的Windows Phone应用程序   Silverlight应用程序模型 - 你必须调用   FrameworkDispatcher.Update方法自己调度消息   在XNA Framework消息队列中。

因此,只需在现有代码中添加一行即可完成。

MediaLibrary lib = new MediaLibrary();
var songsLib = lib.Songs;
Microsoft.Xna.Framework.FrameworkDispatcher.Update(); // <-- this one
MediaPlayer.Play(songsLib[0]);

为了确定,请检查您是否启用了以下功能。

<Capability Name="ID_CAP_MEDIALIB_AUDIO"/>
<Capability Name="ID_CAP_MEDIALIB_PLAYBACK"/>