2017-05-04 265 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