Обновите мой AVURLAsset во время воспроизведения видео (быстро)

я играю в зашифрованный файл m3u8, и мне нужно отправить новое значение обновления «mykey» через определенное время проигрывателю.

let headers = ["Authorization": "mykey"]
let avAsset = AVURLAsset(url: videoURL, options: ["AVURLAssetHTTPHeaderFieldsKey": headers])
let avItem = AVPlayerItem(asset: avAsset)
let avPlayer = AVPlayer(playerItem: avItem)

как я могу получить доступ к AVURLAsset из плеера позже, чтобы обновить свое значение?

Я не нашел ничего под...

self.avPlayer.items()[0].asset...

person jboisjoli    schedule 16.05.2017    source источник


Ответы (1)


Просто вызовите функцию replaceCurrentItem(with:) AVPlayer, документация здесь

let newAvItem = AVPlayerItem(asset: newAvAsset)
avPlayer.replaceCurrentItem(with: newAvItem)
person Scriptable    schedule 16.05.2017
comment
Если я заменю текущий элемент, прямая трансляция прекратится на 1 секунду, чтобы получить новый элемент, но я этого не хочу. У вас есть другое решение? - person jboisjoli; 16.05.2017
comment
Я не думаю, что есть какой-либо способ сделать это, игрок должен остановить воспроизведение текущего элемента, найти новый элемент и начать загрузку и воспроизведение. - person Scriptable; 16.05.2017