簡體   English   中英

RPC服務器在BackgroundMediaPlayer.SendMessageToBackground上不可用

[英]The RPC server is unavailable exception on BackgroundMediaPlayer.SendMessageToBackground

我正在制作Windows Phone 8.1應用。 它將播放列表發送到BackgroundMediaPlayer,然后播放器開始播放somgs。 但是有時在使用BackgroundMediaPlayer.SendMessageToBackground發送消息時,出現異常“ RPC服務器不可用”的情況,唯一可以解決的問題是重新啟動應用程序。 我在Windows 10移動版上對其進行了測試,不確定WP8.1是否存在此問題,但WP8.1仿真器中沒有問題

我在Windows 10 Universal項目中工作時遇到了類似的問題,除了我沒有與BackgroundMediaPlayer進行成功交互之外。 原因是我的背景音頻任務還沒有開始。 確保它啟動后,我可以成功訪問BackgroundMediaPlayer.Current成員,並使用BackgroundMediaPlayer.SendMessageToBackground等。這是結合了Microsoft官方用於Background Audio的示例的實際效果,以及另一位成員的這篇帖子使我找到了解決方案。

聽起來您與BackgroundMediaPlayer的初始交互工作了一段時間,但隨后停止了工作。 可能是它正在關閉或過早掛起? 您是否在任務的Run方法中獲得了延遲並存儲了它? 獲取延期后,為TaskCompleted和OnCancelled連接事件處理程序嗎? 是否有可能在某個地方意外調用BackgroundMediaPlayer.Shutdown()?

我最初寫這個答案是在我意識到OP可以成功播放音頻之前,並且只有在程序運行了一段時間后才遇到此問題。 我原始答案的其余部分如下(它可能會幫助遇到類似問題的人):

我的后台任務沒有啟動,因為它位於類庫而不是Windows運行時組件中(我認為這很重要,因為提供背景音頻Windows.Media.BackgroundPlayback.exe的過程是本機應用程序,必須依靠在互操作時與我們編寫的任務進行交互(並且將任務作為進程的一部分而不是使用該任務的前台應用程序的一部分進行加載);當建議放置所有后台任務時,此Microsoft指南會特別聲明“ Windows運行時組件”在一個單獨的項目中 )。

通過將我的類庫更改為Windows運行時組件(這涉及密封任務類,並帶來其他限制),調用了IBackgroundTask.Run方法,獲得了延期,並且所有與BackgroundMediaPlayer進行交互的調用都開始起作用正常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM