我正在尝试编写我的第一个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,否则我无法将该应用部署到手机上...