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

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

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

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

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

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 триггеры.

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