我需要在AVURLAsset
AVAssetResourceLoaderDelegate
加载resourceLoader(:shouldWaitForLoadingOfRequestedResource:)
时向媒体加载请求添加自定义HTTP标头。
AVAssetResourceLoadingRequest
' s request
是一个不可变的属性,因此无法在其上调用addValue(...)
。
redirect
上的AVAssetResourceLoadingRequest
请求属性,理论上可以用作原始请求加上必要的标题,但它似乎没有效果(即请求是制作没有自定义标题。)
修改:正如我所怀疑的那样,resourceLoader(:shouldWaitForLoadingOfRequestedResource:)
回调是在调度loadingRequest.request
后调用的。
修改2 :所以AVURLAsset
确实有AVURLAssetHTTPCookiesKey
选项键,这样就可以添加自定义Cookie,但不会添加任意HTTP标头。
答案 0 :(得分:1)
在resourceLoader(:shouldWaitForLoadingOfRequestedResource:)
方法的实现中,您应该具有类似以下代码的内容:
// somehow create the URLRequest that you need with the correct headers
let redirectRequest: URLRequest
loadingRequest.redirect = redirectRequest
loadingRequest.finishLoading
// tell the resource loader that you know how it should handle the request
return true
这是一个奇怪的界面,文档可能更清晰,但我认为这基本上是你需要的。