AVPlayer在离线时到达缓冲区末尾时停止播放

时间:2017-03-16 13:56:16

标签: avfoundation avplayer audiotoolbox avplayeritem

我正在使用AVPlayer类通过将AVPlayerItem个实例加载到播放器中来传输远程(并且非常长)的MP3文件:

let player = AVPlayer(playerItem: myAVPlayerItemInstance)

我收听KVO更改和系统通知,以便在缓冲开始或结束时以及项缓冲区变空时进行检测。

如果我在线播放文件,即使在缓冲时我也可以毫无延迟地收听。我可以来回跳跃,使用滑块跳转到流中的任何位置等等。一切都很好。

如果我开始播放文件,然后在仅缓冲整个文件的一小部分后快速离线,我可以将时间滑块拖动到缓冲内容之外。然后播放器将暂停,因为没有更多内容可播放。如果我再上网,音频会自动重新开始播放。

到目前为止,非常好。

但是,如果我开始播放文件,然后在缓冲整个文件的一小部分后快速离线,然后让播放器播放到缓冲内容的末尾,就会发生奇怪的事情。玩家当然会暂停,因为没有更多的内容可以播放。但是,如果我现在上线,音频播放器将不会播放加载项目中的任何内容。我告诉玩家玩,并正确设置播放速率,但该项目不会播放。

为什么会发生这种情况?

0 个答案:

没有答案