1

我正在从服务器流式传输音频文件。我正在处理互联网连接丢失并且播放器到达缓冲部分的末尾(歌曲的某些部分未缓冲)的情况。我已经实现了 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 ?提前致谢

4

0 回答 0