0

Windows Phone 7.5 および Windows Phone 8 用の音楽プレーヤー アプリを開発しました。今、さまざまな Bluetooth デバイスで音楽を聴きたいと思っています。携帯電話に接続して音楽を聴くことができるので、問題なく動作しています。しかし、特定のシナリオでは奇妙な動作をします。音楽が一時停止されている場合、Bluetooth を切断すると、スピーカーで音楽が再開されます。UserAction.SEEKBluetoothをオフにしたときの位置へのユーザーアクションを受信したことをログで確認できます。この時点で、player.Position変数はなぜか 0 になったので、0 になって元の場所に戻ります。そして、私はその行動を引き起こすようなことは何もしません。

私が求めているのは、制御を引き継ぐ方法、またはAudioPlaybackAgentBluetooth デバイスで何かを行うときに使用する制御を取得する方法はありますか。発生するイベントはありますか、それともすべて OS によって処理されますか? もしそうなら、なぜ私のアプリケーションは株式アプリと異なる動作をするのですか? また、UserAction.SEEKBluetooth デバイスの電源を切ったときに が表示されるのはなぜですか?

私の質問が不明な場合は、お気軽にお尋ねください!

4

1 に答える 1

2

これはプラットフォームの既知の問題ですが、WP8 GDR2 で修正されています。のOnUserActionシーケンスを検出することで、この問題を回避できますPause Seek Play。検出されたら、OnPlayerStateChangedへの次の呼び出しで一時停止できます。次の点に注意してください。

  • OnUserActionへの連続した呼び出しは、AudioPlayerの同じインスタンスで呼び出されるとは限らないため、すべての状態を静的状態に格納する必要があります。
  • トラックはスピーカーから少しの間再生されるので、ボリュームを 0 に設定することをお勧めします (もちろん、以前の値をメモした後)。

完全な実装を含む Gist を GitHub に投稿しました。使用例と問題の詳細な概要は、私のブログで入手できます

于 2013-08-18T09:00:50.913 に答える