は、複数のバリアント/レンディションでHLSのマニフェストを考える:AVAssetまたはAVPlayerItemからマスターマニフェストのHLSバリアントをすべて取得する方法は?
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1612430,CODECS="avc1.4d0020,mp4a.40.5",RESOLUTION=640x360
a.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=3541136,CODECS="avc1.4d0020,mp4a.40.5",RESOLUTION=960x540
b.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=5086455,CODECS="avc1.640029,mp4a.40.5",RESOLUTION=1280x720
c.m3u8
それはAVAssetまたはAVPlayerItemのいずれかから(例えば、帯域幅や解像度などの属性を持つ)3つのバリアントの配列を取得することは可能ですか?
AVPlayerItemでKVOを使用して現在再生中のAVPlayerItemTrackを取得することができますが、やはりバリエーションの完全なリストではなく、実際に再生されているトラックのみです。
アセットが最高品質で再生されているかどうかを知ることに興味があり、ユーザーが同時にセカンダリビデオストリームを開始するのに十分な帯域幅を持っているかどうかを判断できます。
あなたは 'AVAsset.trackGroups'プロパティをチェックしましたか?ドキュメントから、マッチするかもしれないように聞こえます。 –
@DaveWestonさて、トラックとトラックグループの両方をチェックしようとしましたが、loadValuesAsynchronously'を使用しているときでも、常に空の配列として戻ってきます: –