Фоновый таймер Windows Phone 8.1 для остановки музыки

Привет, как часть приложения, которое воспроизводит расслабляющую музыку в фоновом режиме с помощью BackgroundMediaPlayer, я хотел бы реализовать способ выключения музыки через заданное время..

Я думал о том, чтобы пользователь мог выбрать TimerPicker, когда музыка должна остановиться, а затем добавить Таймер в качестве поддерживаемого типа задачи в мою MusicBackgroundTask в разделе объявлений в appxmanifest.

Затем каким-то образом правильно используйте ThreadPoolTimer в моем компоненте среды выполнения Windows MusicBackgroundTask, чтобы остановить музыку, когда она тикает, но я действительно не могу найти нигде в Интернете, где объясняется, как заставить работать таймеры в фоновой задаче.

Так что, если у кого-то есть хорошая ссылка, которая объясняет или улучшает какой-то рабочий код, это было бы большим подспорьем, большое спасибо.


person Kasper S Mathiesen    schedule 03.07.2014    source источник


Ответы (1)


Вот образец MSDN, в котором показана реализация IBackgroundTask с использованием ThreadPoolTimer (см. SampleBackgroundTask.cs): http://code.msdn.microsoft.com/windowsapps/Background-Task-Sample-9209ade9/sourcecode?fileId=43572&pathId=498327315

Одна из возможных причин того, что это не работает, заключается в том, что вы не сохранили ссылку на объект, возвращенный из IBackgroundTaskInstance.GetDeferral(), что привело бы к преждевременному завершению фоновой задачи после возврата из IBackgroundTask.Run. Пример, указанный выше, делает это, и я считаю, что это также необходимо для задачи BackgroundMediaPlayer Audio, чтобы продолжить воспроизведение музыки, поэтому я был бы удивлен, если бы у вас его еще не было.

Наконец, тип задачи «Таймер» в вашем объявлении MusicBackgroundTask в файле appxmanifest не повлияет на использование вами ThreadPoolTimer. Тип задачи «Таймер» позволяет запускать точку входа IBackgroundTask с помощью триггеров TimeTrigger и MaintenanceTrigger.

person Jimmy Alexander    schedule 01.09.2014