Ios AVQueuePlayer-在缓冲项目时保持活动状态
在缓冲远程AVPlayerItem时,是否可以保持AVQueuePlayer处于活动状态 当前,当项目进入缓冲时,播放停止,所有由MPNowPlayingFocCenter设置的信息将被删除-锁定屏幕、命令中心、外部设备等 我已经测试了AVPlayer/AVQueuePlayer一段时间了,似乎唯一的选择是:Ios AVQueuePlayer-在缓冲项目时保持活动状态,ios,objective-c,audio,streaming,avqueueplayer,Ios,Objective C,Audio,Streaming,Avqueueplayer,在缓冲远程AVPlayerItem时,是否可以保持AVQueuePlayer处于活动状态 当前,当项目进入缓冲时,播放停止,所有由MPNowPlayingFocCenter设置的信息将被删除-锁定屏幕、命令中心、外部设备等 我已经测试了AVPlayer/AVQueuePlayer一段时间了,似乎唯一的选择是: 观察远程AVPlayerItem的播放备份缓冲区 当observer触发时,插入带有空mp3文件的新AVPlayerItem 继续观察远程项目的缓冲区,一旦它点击了playbackLike
有没有其他方法可以实现这一点?我使用了两个
AVPlayer
实例来保持播放活动
第一个实例保存远程AVPlayerItem
和第二个空声音文件,只有几毫秒长。加载时,您可以一直查找空项
当远程项目进入缓冲区时,暂停它并播放空文件。由于已经结束,它将保持播放会话处于活动状态。只需将actionAtItemEnd
设置为AVPlayerActionAtItemEndNone
即使这样做有效,当远程项目的缓冲区更改为playbackLikelyToKeepUp
并交换播放器时,您也可以体验一些wierd行为。远程项目可以跳回playbackufferty
,播放器交换逻辑可能陷入无休止的循环
我通过延迟缓冲区更新解决了这个问题:
-(void)setPendingBuffer:(PlayerItemBuffer)pendingBuffer {
_pendingBuffer = pendingBuffer;
if (self.bufferDispatchTimer.valid) {
[self.bufferDispatchTimer invalidate];
}
self.bufferDispatchTimer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(bufferDispatchTimerDidFire) userInfo:nil repeats:NO];
}
你有没有找到一种方法来保持对遥控器的缓冲?