Help us understand the problem. What is going on with this article?

AVAssetResourceLoaderでHLSの再生検証

More than 3 years have passed since last update.

こんにちは。セキュア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コンテンツの再生はできませんでした。
sss.png

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

結局よくわからないので、デベロッパフォーラムに投稿しました。
反応待ちの状態なのですが、誰か詳しい人いないかなーと思って公開しました。

以上になります。
進展あったらまた追記します。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away