我已经为Windows 7.5和Windows 8开发了一个音乐播放器应用程序,现在我想用各种蓝牙设备来听音乐。我可以把它连接到我的手机上,听音乐,所以效果很好。但在某些情况下它表现得很奇怪。如果音乐被暂停,如果我断开蓝牙连接,扬声器上就会继续播放。在我的日志中,我可以看到它接收到了UserAction.SEEK的用户操作,到了我关闭蓝牙时的位置。此时,player.Position变量以某种方式变得为0,因此它返回到0并返回到原来的位置。我不会做任何会导致这种行为的事。
我要问的是:是否有一种方法来接管控制,或者在AudioPlaybackAgent中获得任何控制,我使用的是当我在蓝牙设备上做一些事情时发生的事情。是否有任何事件发生,或者所有这些都是由操作系统处理的?如果是这样的话,为什么我的应用程序与股票应用程序的行为不同?另外,当我打开蓝牙设备时,为什么要接收UserAction.SEEK呢?
如果我的问题不清楚,请不要犹豫!
发布于 2013-08-18 09:00:50
这是该平台的一个已知问题,但在WP8 GDR2中得到了解决。您可以通过检测OnUserAction序列的Pause Seek Play来解决这个问题。一旦检测到,就可以在下一次调用OnPlayerStateChanged时暂停。需要注意的几件事:
我发了一个Gist到GitHub的完整实现。示例使用和更详细的问题是可以在我的博客上找到。
https://stackoverflow.com/questions/13953787
复制相似问题