2017-05-04 243 views
4

我可以在AV播放器中正常播放正常的HLS視頻,沒有任何問題。但是,如何播放AES-128加密的HLS視頻?如何在AVPlayer中播放AES-128加密的HLS視頻

+1

難道你只是將訪問密鑰添加到播放請求的標題中? – SeanLintern88

+0

我不這麼認爲。但讓我試試! –

+0

不,它不起作用。我嘗試將頭文件中的解密密鑰添加爲授權 –

回答

6

要解碼AES-128 /類似的加密HLS視頻,只需將'授權'添加到您的標頭。

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

謝謝@ SeanLintern88幫助我解決這個問題。

+0

非常感謝!出於某種原因,似乎這已經在起作用,似乎AVPlayer應該能夠解密開箱即用的AES-128加密流(密鑰在播放列表中指定)。在我們的例子中,問題是我們忘記在播放列表中的IV字符串之前添加0x。除非我完全錯誤。 – Jonny

+0

非常感謝。 AVPlayer實際上播放加密的內容,而不需要標題。要在HTTPS之上添加另一層安全性,您應該使用cookie。當用戶檢索m3u8文件時設置一個cookie,並且AVPlayer會自動在file.key請求中使用該cookie。 – nhenrique

相關問題