こんにちは。セキュアAVFoundationマスターの@toshi0383 です。
調子乗りました、ここ数年の新参者です。
斬新なユーチューブプレイヤーアプリとか作って有名になりたいと思うこと、ありませんか?私は半年に1回くらいあります。
ユーチューブなら特にセキュアにすることもないんですけど、以下のような記事を見つけたので、興味本位でAVAssetResourceLoaderの挙動を検証してみました。
http://stackoverflow.com/questions/9000614/how-to-let-avplayer-retrieve-playlist-secured-by-ssl
http://qiita.com/satoshi0212/items/6e662dd05d1f64fcc2bc
こういうとき、普通はローカルプロキシ立ててループバックするところなのですが、AVAssetResourceLoaderでイケるというのです。ほんとにい?
コードはこちらです。Platforms State of the Union - WWDC 2016 の一番低いビットレートのプレイリストをサンプルとして使いました。
https://github.com/toshi0383/StreamPlaybackSampler
結論から言うと、AVAssetResourceLoaderを通した場合、HLSコンテンツの再生はできませんでした。
m3u8と1つ目のtsは取れてきているし、特にエラーログも出ません。なぜ。。
2016-07-27 17:44:59.501 HLSTest[19147:1838663] -[ResourceLoaderController resourceLoader:shouldWaitForLoadingOfRequestedResource:]
2016-07-27 17:44:59.502 HLSTest[19147:1838663] URL:hello://devstreaming.apple.com/videos/wwdc/2016/102w0bsn0ge83qfv7za/102/0640/0640.m3u8
2016-07-27 17:44:59.502 HLSTest[19147:1838663] currentOffset:0
2016-07-27 17:44:59.503 HLSTest[19147:1838663] requestedOffset:0
2016-07-27 17:44:59.503 HLSTest[19147:1838663] requestedLength:9223372036854775807
2016-07-27 17:45:00.233 HLSTest[19147:1838722] data.length:15983
2016-07-27 17:45:00.234 HLSTest[19147:1838722] httpres.expectedContentLength:15983
2016-07-27 17:45:00.239 HLSTest[19147:1838663] -[ResourceLoaderController resourceLoader:shouldWaitForLoadingOfRequestedResource:]
2016-07-27 17:45:00.239 HLSTest[19147:1838663] URL:hello://devstreaming.apple.com/videos/wwdc/2016/102w0bsn0ge83qfv7za/102/0640/0640_00001.ts
2016-07-27 17:45:00.239 HLSTest[19147:1838663] currentOffset:0
2016-07-27 17:45:00.239 HLSTest[19147:1838663] requestedOffset:0
2016-07-27 17:45:00.239 HLSTest[19147:1838663] requestedLength:9223372036854775807
2016-07-27 17:45:00.528 HLSTest[19147:1838701] data.length:1639736
さらにググったところ、AVAssetResourceLoaderはtsファイルには対応していないとの情報を見つけました。なんじゃそれ。
http://stackoverflow.com/questions/29752028/unknown-error-12881-when-using-avassetresourceloader
結局よくわからないので、デベロッパフォーラムに投稿しました。
反応待ちの状態なのですが、誰か詳しい人いないかなーと思って公開しました。
以上になります。
進展あったらまた追記します。