Windows Phone 8 - media.Play() получает исключение UnauthorizedAccessException на заблокированном экране

Я пытаюсь написать свое самое первое приложение для Windows Phone, и я застрял на чем-то. У меня никогда не было опыта работы с C# раньше.

Приложение представляет собой простой таймер обратного отсчета, который воспроизводит звук в конце.

Это приложение для Windows Phone 8. Я создал его с помощью Visual Studio 2015, используя: новый проект> Шаблоны> Visual C# > Windows > Windows 8 > Windows Phone > Пустое приложение

Я добавил фоновую задачу со звуком в объявлениях в Package.appxmanifest

Я использую MediaElement в MainPage.xaml

<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 для media.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 ответов

Другие вопросы по тегам