我正在从服务器传输音频文件。我正在处理这种情况,当互联网连接丢失并且播放器到达缓冲部分的末尾时(歌曲的某些部分没有被缓冲)。我已经实现了OnErrorListener,OnInfoListener和OnCompletionListener。 这是onInfo方法
@Override
public boolean onInfo(MediaPlayer mp, int what, int extra) {
if (what == MediaPlayer.MEDIA_INFO_BUFFERING_START && !Utils.isInternetConected()) {
//handle situation
}
return true;
}
在较新的设备上,这是在到达缓冲部分的末尾之前调用的。但是在较旧的设备上,onError和onInfo都不会被调用到达缓冲部分的末尾。只调用onComplete()。在较旧的设备上,我理解2.3.3 - 2.3.7(我在3台设备上测试过它。)MEDIA_INFO_BUFFERING_START在API级别9中引入,我的设备是API 9或10.有人可以告诉我为什么onInfo或onError不是调用旧设备并自动调用onCompletion? 提前致谢