是否可以使用AVPlayer URL发送cookie?我有一个AES加密的直播流,需要一个密钥才能解密。它会点击服务器,只有会话在那里服务器返回密钥。所以我想要将phpsessionid和网址一起发送给AVPlayer。
有可能吗?我看到了AVURLAssetHTTPHeaderFieldsKey
。我不知道这是不是我要设置的。如果这样做怎么办?
答案 0 :(得分:3)
在你的情况下,苹果的FPS(FairPlay Streaming)将起作用。 FairPlay Streaming是DRM(数字版权管理)支持,您可以在其中获取内容密钥以及内容数据,并且需要通过支持AES-128加密的委托。请参阅下面我在下面分享的链接
答案 1 :(得分:2)
This is how you can set Signed Cookies (Headers) in AVPlayer URL Request :
fileprivate func setPlayRemoteUrl() {
if playUrl.isEmpty { return }
let cookiesArray = HTTPCookieStorage.shared.cookies!
let values = HTTPCookie.requestHeaderFields(with: cookiesArray)
let cookieArrayOptions = ["AVURLAssetHTTPHeaderFieldsKey": values]
let assets = AVURLAsset(url: videoURL! as URL, options: cookieArrayOptions)
let item = AVPlayerItem(asset: assets)
player = AVPlayer(playerItem: item)
playerLayer = AVPlayerLayer(player: player)
playerLayer?.videoGravity = AVLayerVideoGravityResizeAspectFill
playerLayer?.contentsScale = UIScreen.main.scale
layer.insertSublayer(playerLayer!, at: 0)
}
答案 2 :(得分:1)
我自己还没有真正尝试过,但似乎有一个API可以让你用AVURLAsset
创建options
。其中一个可能的选项键是AVURLAssetHTTPCookiesKey
。你可能想看一下。