4

最初のアイテムの再生が終了したときに次のアイテムのみをロードする自動方法に AVQueuePlayer任せるのではなく、配列内の avplayeritems を選択的に事前バッファリングする方法があるかどうか誰か教えてください。AVQueuePlayer

AVQueuePlayer4 つの短いムービー クリップのシーケンスをロードしています。配列を再生するように指示する前に、それらを事前にキャッシュしたいと考えています。実際に avqueueplayer の真髄を知り、必要に応じて事前バッファリングを制御する方法はありますか?

AVQueuePlayer現在、デフォルトの遅延読み込み動作では、再生中に次のクリップを読み込もうとしているため、クリップが適切に再生されていない状態で、再生中にチャギングが発生しています。シミュレーターではなく、実際のデバイスに展開されたiPadでこれを行っています。

基本的に必要な各ビデオファイルのロードを手動で開始する mpmovieplayer を呼び出すことでこれを行うことができます。次に、通知を[player prepareToPlay];監視し、値をテストして完全にロードされたかどうかを確認し、次に伝えることで、ロードの完了を確認できます。再生する mpmovieplayer。で同様のことを効果的に行うにはどうすればよいでしょうか?mpmovieplayerLoadstateDidChangeloadStateAVQueuePlayer

これは可能ですか、それとも の主な欠点の 1 つを発見しましたAVQueuePlayerか?


スティーブンの素晴らしい提案ですが、必要なのは、個々のアイテムを明示的にメモリにロードし、 「配列内のすべてのアイテムがロードされるまで配列内の最初のアイテムを再生しない」ようplayerObserverに指示できるようにする必要があることです。AVQueuePlayer現在、最初の項目が終了するまで、配列の 2 番目の項目でさえロードを開始する方法がないようです!

AVQueuePlayerわずかに別の問題として、同じソース ビデオ ファイルを 2 つ配列にロードした場合 (2 つの完全に別々のファイルとして参照さAVPlayerItemsれる必要があります)、その場所でビデオ クリップを再生するときに、どこに奇妙な点があるかにも気付きました。最初にクリップを再生するときは問題ありませんが、同じクリップを (別の としてAVPlayerItem) 再度再生すると、ビデオの特定のポイントまで非常に速く再生され、最終的に通常の速度で再生が開始されます。そこから。

他の誰かがこの動作に気づきましたか?

4

2 に答える 2

6

Apple Developer Support は、AVQueuePlayer がビデオ項目をバッファリングしないことを確認しました。

于 2013-04-10T19:42:24.637 に答える