Exoplayer 在满缓冲区上缓冲

Alq*_*raf 5 android exoplayer

我正在开发一个使用 ExoPlayer 播放 mp4 视频的应用程序。我已经成功设置它并播放一些视频,但有一些我不太明白的地方。当视频完全缓冲并且我向前查找时,播放器进入缓冲状态并需要一些(非常短的)时间来恢复播放。满缓冲区的时间是多少?我知道 exoplayer 不会缓冲之前的帧,但为什么它在前进时也会重新缓冲?我已将延迟跟踪到 TrackRenderers 上的“doSomeWork()”方法,但我仍然不知道如何“修复”它。我目前正在使用 ExoPlayer 演示中的代码和视频的 ExtractorRendererBuilder。

还有其他人遇到过这种情况吗?

谢谢。

pel*_*ide 1

“缓冲”主要有两个原因。

  1. 如果播放器可以查找内存中的帧,那么它会进行线性搜索以找到关键帧并跳转到它。线性搜索需要一点时间,具体取决于内存中的帧数
  2. 如果该帧不在内存中,则 exoplayer 必须从网络/磁盘将帧下载到内存。这显然需要更长的时间。