播放远程HLS视频时, 我正在重新初始化AVQueue播放器,它已经使用
初始化了项目(AVQueuePlayer *)initWithItems:(NSArray<AVPlayerItem *> *)items
然而,通过在后台播放此声音,但AVPlayerLayer卡在上一个视频的最后一帧,视频不会更新。为了确保视频得到更新,我需要删除前一层视频播放器的UIView,重新创建新的AVPlayerLayer并使用以下内容将其分配给UIView for player:
[oldAVPlayerLayer removeFromSuperLayer]
[newAVPlayerLayer playerLayerWithPlayer: myAVQueuePlayer]
[myViewForPlayerLayer addSublayer : newAVPlayerLayer]
这会导致屏幕上的闪烁,如果设备只是iPhone / iPad,这是可以的,但问题是Airplay行为突然出现,导致UISlider声音显示在遥控器中。 有没有办法重新初始化AVQueuePlayer而无需重新创建或重新分配AVPlayerLayer?
答案 0 :(得分:0)
使用AVPlayer而不是AVQueuePlayer结束,并使用方法
replaceCurrentItemWithPlayerItem
不会引起airplay中的故障,并且因为项目在需要时被实例化,所以也会保存内存。