2017-05-16 4 views
0

Je joue un fichier m3u8 crypté et je dois envoyer une nouvelle valeur de mise à jour "mykey" après un certain temps au lecteur.Mettez à jour mon AVURLAsset pendant la lecture de la vidéo (swift)

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

Comment puis-je accéder à l'AVURLAsset à partir du lecteur plus tard pour mettre à jour ma valeur?

Je n'ai pas trouver quoi que ce soit sous ...

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

Répondre

1

Il suffit d'appeler le replaceCurrentItem (avec :) fonction de AVPlayer, Documentation here

let newAvItem = AVPlayerItem(asset: newAvAsset) 
avPlayer.replaceCurrentItem(with: newAvItem) 
+0

Si je remplace l'élément en cours, la livestream coupera pour un 1sec pour obtenir le nouvel article, mais et ne veut pas cela. Avez-vous une autre solution? – jboisjoli

+0

Je ne pense pas qu'il existe un moyen de le faire, le joueur doit arrêter de jouer l'élément actuel, chercher un nouvel élément et commencer à charger et jouer – Scriptable