ビデオの再生には MediaElement を使用し、オーディオの再生には BackgroundAudioPlayer を使用しています。
これがケースです。
BackgroundAudioPlayer を介してリモート オーディオを再生しています。次に、ビデオを再生したいのですが、MediaElement がビデオの再生を開始する前に、BackgroundAudioPlayer のベスト プラクティスで提案されているように、BackgroundAudioPlayer.Close を呼び出しています。
MediaElement and the BackgroundAudioPlayer
Care must be taken when mixing BackgroundAudioPlayer and MediaElement for audio playback.
1. Close() must be called before switching to MediaElement playback.
2. There is only one media queue. Your application cannot pause background audio, play something with MediaElement then resume the background audio stream.
しかし、ビデオを再生した後、オーディオをもう一度再生したいと思います。
// Play audio result
BackgroundAudioPlayer.Instance.Track = new AudioTrack(new Uri(audioSearchResult.Url, UriKind.Absolute), audioSearchResult.Title, null, null, null,
AudioPlayer.TrackStateBuffering, EnabledPlayerControls.All);
BackgroundAudioPlayer.Instance.Play();
InvalidOperationException
コードの最初の行に「バックグラウンド オーディオ リソースが利用できなくなりました」と表示されます。では、MediaElement を使用した後、アプリで BackgroundAudioPlayer を再利用するにはどうすればよいでしょうか?
編集:
MediaElement の代わりに MediaPlayerLauncher を使用すると、MediaPlayerLauncher の起動時にアプリが廃棄されているため、2 回目にオーディオが再生されます。しかし、MediaElement と BackgroundAudioPlayer を 1 つのアプリに混在させることは可能ですか?!?! MS からの別の悪夢のようです:(