3

これは非常に奇妙なバグです。

AVPlayerリモートサーバーからビデオをストリーミングするために使用する各セルのtableViewがあります(Vineのようなタイムラインを考えてください)。そのため、スクロールすると、再利用されるセルが新しいビデオでプレーヤーを再構成します。

問題は、非常に速く前後にスクロールして、同じビデオを画面に出入りさせると、AVPlayer によって送信される要求が最終的に変更され、HTTP ヘッダーIf-None-Matchとが含まれるようになりますIf-Modified-Since。体系的にサーバーに304 Not Modified応答を返させます。

これは、AVPlayer の playerItem を満足させるようには見えず、ステータスが に変わりますAVPlayerItemStatusFailed(興味深いことに、AVPlayer のステータスはまだAVPlayerStatusReadyToPlayです)。エラーはAVErrorUnknown(-11800) で OSStatus -12983 です (これはどこにも文書化されておらず、iOS SDK 全体のヘッダーには含まれていません)。

それが奇妙なことです。次に何をしようとも、AVPlayer とその playerItem は取り返しのつかないほど焼き尽くされてしまいます。別のアセットで再構成しても、このステータスを返すだけで黒いフレームが表示されます。さらに奇妙なことに、別の AVPlayer、AVPlayerItem 、およびAVAsset を初期化しても、再生されなくなり、アプリを強制終了して再起動する必要があります。

この時点で、私はかなり無知です。ここで何が起こっているか分かりますか?プレーヤーが接続にこれらのヘッダーを含めないようにすると修正されますが、要求シリアライザーは公開されません。

4

2 に答える 2