私のiOSアプリは、ウェブからメディアをストリーミングするAVPlayer
を使用してバッファリングした後のリカバリされていません。私はバッファリング(playbackBufferEmpty
)のようなイベントを検出するためにKVOを使用しており、キャッチアップされています(playbackLikelyToKeepUp
)。しかし、私は奇妙なバグに気づいた。ほとんどのネットワークの減速の間に、playbackBufferEmpty
KVOがヒットし、それが回復すると、playbackLikelyToKeepUp
KVOが期待どおりにヒットしました。私は(ある周波数で)AVPlayer
が一定時間バッファして復旧したことに気づいた、playbackLikelyToKeepUp
、オーディオは多分1-3秒間再生し、それがが再びplaybackBufferEmpty
KVOを押すことなくbuffering- であるかのように、オーディオは再び再生を停止します。そして、これから回復しません。AVPlayerは
TL; playbackBufferEmpty
(10-20秒) - >playbackLikelyToKeepUp
- > 1-3秒間再生 - >再生を停止しますが、KVOはヒットしません。
最悪の場合、AVPlayer
は、バッファリングから回復するときと同じように自動再生を開始せず、AVPlayer
を手動で停止/再開するまではサイレント状態です。それは、私がストリームするたびに、多かれ少なかれ発生します。これはAVPlayer
の既知の問題ですか?これは私が見ることができる3番目のKVOイベントですか?またはこれをデバッグする方法に関するヒント?ありがとう!
EDIT:追加情報: AVPlayer
のerror
プロパティはnil
この問題が発生したとき、status
プロパティは再生する準備ができている、とrate
プロパティが1 AKA奇妙他に何も私の知る限りとして、起こっていないです伝えることができます。