0

假设如下:

  1. 应用程序将 MediaPlayer 数据源设置为远程 URL。(http://example.com/podcast.mp3)。
  2. MediaPlayer 开始通过 3G 流式传输 mp3。它缓冲的数据比正在播放的数据多一点,以确保缓冲没有暂停。
  3. 设备短暂失去连接。MediaPlayer 已流式传输 40% 的文件,并缓冲了 50% 的文件。
  4. 设备通过 WIFI 或 3G 重新连接。
  5. MediaPlayer 目前没有,据我所知继续缓冲 mp3。
  6. 一旦媒体播放器达到 50%,它就会停止。

不幸的是,如果不使用代理,就不可能同时下载和流式传输 MP3(或者是吗?)。话虽如此,一旦它达到停顿点,是否可以通过新连接继续播放 mp3(如果可能,无缝连接?)。是否可以查看缓冲了多少 mp3?是否有可能,一旦重新建立连接,创建一个新的 MediaPlayer 连接并从第一个连接“切换”播放到下一个连接?

4

1 回答 1

1

我不能回答你所有的问题,只是把我认为我知道的东西放在这里。

是否可以查看缓冲了多少 mp3?

添加 setOnBufferingUpdateListener 监听器,在这个方法中你可以知道缓冲了多少百分比。

public void onBufferingUpdate(MediaPlayer mp, int percent) {
    Log.i(TAG, "onBufferingUpdate - percent=" + percent);

}

以上内容适用于某些流,但不适用于其他流。我仍在试图找出原因。

于 2012-09-26T02:06:01.080 回答