2

私は、それぞれ 5 秒から 15 秒の範囲のオーディオ ファイルの大規模なコレクションをストリーミングする必要があるアプリに取り組んでいます。ファイル間のロード時間をできるだけ短縮したいと考えています。

主な質問: 現在のファイルが最後のセグメントを再生している間に、(HLS を介して) 次のファイルのバッファリングを開始する方法はありますか?

AVQueuePlayer は、iOS 側でこれに対する適切なソリューションですか?

私は HTTP ライブ ストリーミングと AV Foundation の両方に慣れていないので、詳細な説明をいただければ幸いです。

関連する質問: ラジオ アプリはどのように曲間の遅延なくオーディオをストリーミングしますか?

4

1 に答える 1

1

はい、AVQueuePlayerHTTP プロトコル経由でインターネットからストリーミングされた一連のオーディオを再生するための適切なソリューションです。

私はAVQueuePlayerかなり長い間使用しており、優れた結果が得られ、曲間の遅れはありません. の使用方法の簡単な例を次に示しますAVQueuePlayer

NSURL *url1 = [NSURL URLWithString:[urlsToPlay objectAtIndex:0]];
NSURL *url2 = [NSURL URLWithString:[urlsToPlay objectAtIndex:1]];
NSURL *url3 = [NSURL URLWithString:[urlsToPlay objectAtIndex:2]];

self.item1 = [[AVPlayerItem alloc] initWithURL:url1];
self.item2 = [[AVPlayerItem alloc] initWithURL:url2];
self.item3 = [[AVPlayerItem alloc] initWithURL:url3];

self.radioPlayerURLs = [[NSArray alloc] initWithObjects:self.item1,self.item2, self.item3, nil];
self.onDemandPlayer  = [AVQueuePlayer queuePlayerWithItems:self.radioPlayerURLs];
[self.onDemandPlayer play];

詳細については、Apple のドキュメントを参照してください。

AV財団

AVQueuePlayer

于 2013-04-25T14:21:15.237 に答える