のサブクラスを使用しており、ストリーミング URL を使用してAVQueuePlayer
新規追加するAVPlayerItem
と、アプリが約 1 ~ 2 秒間フリーズします。フリーズするとは、UI へのタッチに反応しないことを意味します。また、既に再生中の曲をキューに追加するとAVQueuePlayer
、最初の曲のストリーミング中に曲のプリロードが自動的に開始されます。これにより、最初の曲を追加したときと同じように、アプリは 2 秒間 UI のタッチに反応しなくなりますが、曲はまだ再生されています。つまりAVQueuePlayer
、明らかな「フリーズ」を引き起こしているメインスレッドで何かをしていることを意味します。
insertItem:afterItem:
を追加するために使用していAVPlayerItem
ます。テストして、これが遅延の原因となっている方法であることを確認しました. たぶん、キューに追加した瞬間にAVPlayerItem
アクティブ化されたときに何かが起こる可能性があります。AVQueuePlayer
このメソッド呼び出しを使用してストリーミング URL を取得するために、Dropbox API v1 ベータ版を使用していることを指摘する必要があります。
[[self restClient] loadStreamableURLForFile:metadata.path];
次に、ストリーム URL を受信したらAVQueuePlayer
、次のように送信します。
[self.player insertItem:[AVPlayerItem playerItemWithURL:url] afterItem:nil];
私の質問は次のとおりです。これを回避するにはどうすればよいですか? の助けを借りずに、自分でオーディオ ストリームのプリロードを行う必要がありAVPlayer
ますか? もしそうなら、どうすればいいですか?
ありがとう。