Android ExoPlayer实例的推荐缓冲区和拒绝器数据持续时间以及更改这些数据的影响

Android ExoPlayer实例的推荐缓冲区和拒绝器数据持续时间以及更改这些数据的影响,android,video,exoplayer,Android,Video,Exoplayer,ExoPlayer示例附带以下默认值: mPlayer=ExoPlayer.Factory.newInstance(渲染器计数,10005000) 其中1000为minBufferMs,5000为minRebufferMs。从文件中: minBufferMs-必须缓冲的数据的最短持续时间 播放在用户操作(如搜索)后开始或恢复 minRebufferMs-必须缓冲的数据的最短持续时间 在播放器调用拒绝器(即拒绝器)后恢复播放 这是由于缓冲区耗尽而发生的,而不是由于用户这样的操作 开始播放或查找)

ExoPlayer示例附带以下默认值:

mPlayer=ExoPlayer.Factory.newInstance(渲染器计数,10005000)

其中1000为
minBufferMs
,5000为
minRebufferMs
。从文件中:

minBufferMs-必须缓冲的数据的最短持续时间 播放在用户操作(如搜索)后开始或恢复

minRebufferMs-必须缓冲的数据的最短持续时间 在播放器调用拒绝器(即拒绝器)后恢复播放 这是由于缓冲区耗尽而发生的,而不是由于用户这样的操作 开始播放或查找)


这些似乎是合理的默认设置,但可能与播放器的平均视频长度有关?在我的应用程序中,平均视频约为24秒,但是,在某些情况下,视频可能为1秒或这些值实际上与视频的总长度无关-它们与您希望缓冲的量有关,以确保在视频缓冲更多视频时不必暂停视频即可播放

如果您的视频非常短,如您的1秒示例中所示,那么这可能是一种边缘情况,可能值得尝试一些不同的值

不过,我认为任何推荐值都只是推荐值,而且上面的默认值似乎并不合理。您可以尝试更改这些值,但问题是您的结果将反映测试期间出现的网络、CPU负载等情况


自适应比特率视频也会使水变得有点浑浊,因为播放器也会在比特率之间切换,以尝试找到当前网络条件下的最高质量比特率。同样,1秒持续时间的视频是一种边缘情况,对于这种情况,自适应比特率视频可能没有多大意义,除非它们是连续视频流的一部分,并且您希望能够使所有视频的比特率保持相似。

这些值实际上与视频的总长度无关-它们与您希望缓冲的量有关,以确保在视频缓冲更多视频时无需暂停视频即可进行播放

如果您的视频非常短,如您的1秒示例中所示,那么这可能是一种边缘情况,可能值得尝试一些不同的值

不过,我认为任何推荐值都只是推荐值,而且上面的默认值似乎并不合理。您可以尝试更改这些值,但问题是您的结果将反映测试期间出现的网络、CPU负载等情况

自适应比特率视频也会使水变得有点浑浊,因为播放器也会在比特率之间切换,以尝试找到当前网络条件下的最高质量比特率。同样,1秒持续时间的视频是一种边缘情况,对于这种情况,自适应比特率视频可能没有多大意义,除非它们是连续视频流的一部分,并且您希望能够保持所有视频的比特率相似