我使用 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 呢?
EDIT:
如果使用 MediaPlayerLauncher 而不是 MediaElement,它会在第二次播放音频时工作,因为 MediaPlayerLauncher 启动时应用程序将被逻辑删除。但是是否可以在一个应用程序中混合 MediaElement 和 BackgroundAudioPlayer!?!?!
似乎是 MS 的另一个噩梦:(