我正在使用AVPlayer来播放音频流,并且可以让它在后台播放。我想知道如何处理用户失去互联网连接的情况,这样我可以提供一些反馈,或者可能会在几秒钟后尝试重新建立播放。
编辑:我知道这个问题与AVPlayer有关,但如果您对MPMoviePlayerController
有答案,那么它也可能有用。现在,通过使用MPMoviePlayerController
,我试图通过订阅MPMovieFinishReasonPlaybackError
来获取MPMoviePlayerPlaybackDidFinishReasonUserInfoKey
MPMoviePlayerPlaybackDidFinishNotification
的情况,但是如果是f.e.我的音频在后台播放,我打开飞机模式,我从未收到此通知;我只得到MPMovieFinishReasonPlaybackEnded
,我不知道如何将其与用户自行停止音频的情况分开。
答案 0 :(得分:5)
我试着寻找实际的来源,但我记得在某处读到如果音频播放停止(无论出于何种原因)它会杀死后台线程。写这个问题的人谈到可能为流提供一些空的音频内容以保持线程活着。您可以从回叫错误发送本地通知,通知用户音频遇到错误,必须从应用程序中手动重新启动。没有使用足够的API来知道在这种情况下哪个回调是最好的。如果我找到了我正在寻找的链接,我会更新。
编辑:这是Grant Pannell对audio streaming and multitasking的看法。