Windows Phone 8 - media.Play()在锁定屏幕上获取UnauthorizedAccessException

时间:2016-05-01 04:26:31

标签: audio windows-phone-8 unauthorizedaccessexcepti

我正在尝试编写我的第一个Windows手机应用程序而且我遇到了问题。我之前从未接触过C#的经验。

该应用程序是一个简单的倒计时器,最后播放声音。

这是一款Windows Phone 8应用。我使用Visual Studio 2015创建它:new Project>模板> Visual C#> Windows> Windows 8> Windows Phone>空白应用

我在Package.appxmanifest

中添加了声明中的音频背景任务

我在MainPage.xaml中使用MediaElement

<MediaElement Name="media" 
              AudioCategory="BackgroundCapableMedia" 
              Source="Audio/bell.mp3" AutoPlay="False" />

我将Audio / bell.mp3添加到项目中。

我正在使用像这样的DispatchTimer

DispatcherTimer timer = new DispatcherTimer();
timer.Interval = new TimeSpan(0, 0, 0, 1);
timer.Tick += new EventHandler<object>(timer_Tick);


void timer_Tick(object sender, object e)
        {
            if (tik > 0)
                tik--;

            progress.Value = progress.Maximum - tik;

            if(tik <= 0)
            {
                timer.Stop();
                media.Play();
            }
        }

它完全正常,屏幕解锁,声音在结束时播放。

但是,如果我在时间结束前锁定屏幕,计时器会继续(这完美),但是当时间到了,我在媒体上得到 System.UnauthorizedAccessException .Play();

Additional information: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))

我不明白为什么我只能在锁定的屏幕上拒绝访问权限。我需要做些什么才能改变它?我真的希望在锁定屏幕中播放声音以通知用户时间已到。

我尝试启用应用程序以锁定屏幕添加

运行
PhoneApplicationService.Current.ApplicationIdleDetectionMode = IdleDetectionMode.Disabled;

到App.xaml.cs,但我得到

The name PhoneApplicationService does not exist in this context

我无法添加Microsoft.Phone.dll,否则我无法将该应用部署到手机上...

0 个答案:

没有答案