繁体   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