0

во время воспроизведения удаленных HLS видео, Я повторно инициализирует AVQueue игрок, который уже инициализирован с элементами с помощьюпереинициализация AVQueuePlayer без Слова нежности создать новую AVPlayerLayer

(AVQueuePlayer *)initWithItems:(NSArray<AVPlayerItem *> *)items 

Однако, делая этот звук играет в фоновом режиме, но AVPlayerLayer застревает в последнем кадре предыдущего видео, видео не обновляется. Для того, чтобы убедиться в том, что видео обновляется, мне нужно, чтобы удалить предыдущий слой для UIView из видеоплеера, повторно создать новый AVPlayerLayer и назначить его на UIView для игрока, используя следующие:

[oldAVPlayerLayer removeFromSuperLayer] 
[newAVPlayerLayer playerLayerWithPlayer: myAVQueuePlayer] 
[myViewForPlayerLayer addSublayer : newAVPlayerLayer] 

Это вызывает мерцание на экране, что хорошо, если устройство было просто iPhone/iPad, но проблема связана с резким поведением Airplay, в результате чего UISlider для звука будет отображаться в пульте дистанционного управления. Есть ли способ повторно инициализировать AVQueuePlayer без повторного создания или переназначения AVPlayerLayer?

ответ

0

Законченное использованием AVPlayer вместо AVQueuePlayer, и используя метод

replaceCurrentItemWithPlayerItem 

Не вызывает сбой в ротацию, и сохраняет память, а так как элементы экземпляра, как и в случае необходимости.