播放时是否每秒都会调用OnBufferingUpdate事件?

时间:2015-01-08 08:03:49

标签: android android-mediaplayer

我目前正在为Android编写应用程序,包括一个媒体播放器。由于我想向用户显示播放器的当前状态,我想保持当前播放的时间并更新缓冲进度。

在实现接口MediaPlayer.OnBufferingUpdate之后,我意识到,即使在缓冲完成之后,也会每隔一秒调用一次。然后它会每秒报告100的百分比。

我现在的问题:

是否在某处指定了此行为?我可以安全地使用MediaPlayer.OnBufferingUpdate事件来更新我的播放时间,还是应该自己实现一个计时器以保持更新?是否还有其他可以使用的事件,即在播放时每秒钟调用一次(未在PAUSEFINISH之后触发)?

我在这里找到了这个问题,LINK - Android: onBufferingUpdate() not called after reaching 100% - @ ThaMe90指向文档 - 但我不知道这里应该是什么“bug”......

1 个答案:

答案 0 :(得分:4)

好吧,由于documentation,此方法“调用以更新缓冲中的状态”,因此当您达到100%时,缓冲状态不应再更新(这是有道理的我是对的吗?)。

不幸的是,有一种疾病,它消耗了为Android平台开发软件的过程 - OEM根据需要修改这个平台。我很确定这是其中一个例子。

我测试的是在不同的设备上调用此方法,这是我观察的结果:

  • onBufferingUpdate方法在所有三星设备上达到100%后被调用(重度修改后的操作系统)
  • onBufferingUpdate方法在所有Moto G上达到100%后不再调用 略微修改了Android

嗯,它看起来像一个bug,它成为三星设备上的一个功能;)

It's not a bug, it's a feature