2017-02-23 13 views
2

AVURLAssetをロードするときに、メディアロード要求にカスタムHTTPヘッダーを追加する必要があります。AVAssetResourceLoaderDelegateresourceLoader(:shouldWaitForLoadingOfRequestedResource:)です。AVAssetResourceLoaderDelegateロード要求にカスタムHTTPヘッダーを追加する方法

AVAssetResourceLoadingRequestrequestは不変なプロパティなので、addValue(...)を呼び出すことはできません。

(すなわち行われる要求がカスタムヘッダーを持っていません)があり、理論的には、元の要求に加えて、必要なヘッダーとして使用することができAVAssetResourceLoadingRequestredirect要求プロパティは、ですが、効果がないようです。

resourceLoader(:shouldWaitForLoadingOfRequestedResource:)コールバックはloadingRequest.requestが発送された後に呼び出されていると思われます。

編集2:だからAVURLAssetは、1つのカスタムクッキーを追加することができますAVURLAssetHTTPCookiesKeyオプションキーを、持っていないではなく、任意のHTTPヘッダ、それはそうです。 resourceLoader(:shouldWaitForLoadingOfRequestedResource:)メソッドの実装で

答えて

1

、次のコードのようなものが必要です:

// 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 

をそれは奇妙なインターフェースのようなものだとドキュメンテーションは明確かもしれないが、私はそれはあなたが必要なものは基本的だと思います。

+0

デイブ、あなたの答えに感謝します。最終的には、ここで説明するように、組み込みプロキシサーバーを使用することに決めました。https://github.com/kevinjameshunt/AVPlayer-HTTP-Headers-Example –

関連する問題