2

BackgroundAudioPlayerWindowsPhone7アプリケーションでエージェントを使用しています。トラックが終了すると、エージェント側はTrackEndedイベントを受信しますが、UI側はイベントを受信しません。

また、オーディオトラックの位置を意図的に最後に設定してから呼び出すPlay()と、エージェント側はTrackEndedイベントを受信しますが(トラックが終了したため)、UI側はハンドラーで受信Stoppedします。PlayStateChangedとても奇妙 !

トラックが終了したことをUIに通知するにはどうすればよいですか?分離されたストレージを介した通信は私のお気に入りではありません!

4

1 に答える 1

1

調査と少しのテストから、Windows Phone 7のバックグラウンドインスタンスとフォアグラウンドインスタンスの間の仲介者として分離ストレージを使用することBackgroundAudioPlayerが、Windows Phone 7の唯一のルートです。オプションはここに記載されています(私はあなたが知っていることを知っています)...

http://blogs.msdn.com/b/wpukcoe/archive/2012/02/10/background-audio-in-windows-phone-7-5-part-2.aspx

http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh202944(v=vs.105).aspx

https://stackoverflow.com/a/11419680/247257

これは、次のように述べたPeterTorrによっても確認されました。

たとえば、エージェントはフォアグラウンドに「次のトラックの事前ダウンロードを開始しました」または「データベーステーブルを更新したので、状態を更新する必要があります」と伝える必要がある場合があります。このような通知は、Windows PhoneOS7.1では作成できません。せいぜい、ポーリング手法を使用してそれらをモデル化できますが、このアプローチは非効率的であり、エラーが発生しやすくなります。

唯一の良いニュースは、同じ投稿で、彼がWindows Phone 8のソリューション(IPCの名前付きイベントを使用)を提供していることです。これは、はるかに信頼性が高くなっています...

http://blogs.windows.com/windows_phone/b/wpdev/archive/2013/03/27/using-named-events-to-coordinate-foreground-apps-and-background-agents.aspx

于 2013-03-29T00:57:25.247 に答える