1

Im, делающий Windows Phone 8.1 приложение. Он отправляет плейлист в BackgroundMediaPlayer, и игрок начинает играть somgs. Но иногда я получаю исключение «Сервер RPC недоступен» при отправке сообщения с BackgroundMediaPlayer.SendMessageToBackground, и единственное, что можно исправить, это перезапустить приложение. Im тестирует его на Windows 10 mobile и не уверен, что эти проблемы существуют на WP8.1, но никаких проблем в эмуляторе WP8.1Сервер RPC является недоступным исключением на BackgroundMediaPlayer.SendMessageToBackground

+0

Вы нашли решение. У меня была рабочая BackgroundAudioTask. И теперь я вдруг получаю сообщение об ошибке «Сервер RPC недоступен». Я потерял :( –

+0

Имея ту же проблему, он отлично работает на WP8.1, но на W10M он вызывает одно и то же исключение. Я заметил, что на WP8.1 процесс задачи не выходит, но на W10M он выходит с ошибкой код 0. – Rafael

ответ

1

У меня возникла аналогичная проблема, работающая в проекте Windows 10 Universal, за исключением того, что у меня не было успеха взаимодействие с BackgroundMediaPlayer вообще. Причина в том, что моя фоновая аудиозапись не запускалась; после его запуска я смог успешно получить доступ к элементу BackgroundMediaPlayer.Current и использовать BackgroundMediaPlayer.SendMessageToBackground и т. д. Это была комбинация официального образца Microsoft для фонового звука, фактически работающего, и this post другого участника, который привел меня к решению.

Звучит как ваше первоначальное взаимодействие с BackgroundMediaPlayer, работающее какое-то время, но затем оно перестает работать. Может быть, он отключается или приостанавливается досрочно? Получаете ли вы отсрочку в методе «Выполнить» задачи и ее хранение? Подключение обработчиков событий для TaskCompleted и OnCancelled после того, как вы получили отсрочку? Возможно ли, что BackgroundMediaPlayer.Shutdown() вызывается где-то случайно?

Первоначально я написал этот ответ, прежде чем понял, что OP успешно воспроизводит звук и сталкивается с этой проблемой только после того, как программа была запущена некоторое время. Остальная часть моего первоначального ответа следующая (это может помочь кому-то с аналогичной проблемой):

Моя фоновая задача не начиналась, потому что она находилась в библиотеке классов вместо компонента времени выполнения Windows (Это важно, я подумайте, потому что процесс, обеспечивающий фоновое аудио, Windows.Media.BackgroundPlayback.exe, является родным приложением и должен полагаться на взаимодействие для взаимодействия с задачами, которые мы пишем (и он загружает нашу задачу как часть ее процесса, а не часть нашего переднего плана, которое использует задачу), в этом Microsoft guide конкретно указывается «компонент времени выполнения Windows», когда вы предлагаете размещать все фоновые задачи в отдельном проекте).

Изменив мою библиотеку классов на компонент Windows Runtime (который включал в себя включение класса задачи и другие ограничения), был вызван метод IBackgroundTask.Run, я получил отсрочку и все мои вызовы для взаимодействия с BackgroundMediaPlayer начал работать правильно.

+0

спасибо за это –

Смежные вопросы