【问题标题】:MediaPlayer - resuming from connection state changeMediaPlayer - 从连接状态更改恢复
【发布时间】:2012-09-26 00:36:51
【问题描述】:

假设如下:

  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 连接并从第一个连接“切换”播放到下一个连接?

【问题讨论】:

    标签: android android-mediaplayer


    【解决方案1】:

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

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

    添加setOnBufferingUpdateListener监听器,通过这个方法可以知道缓存了多少百分比。

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

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

    【讨论】:

    • 也许是因为它根本不适合我,我什至不再为这种方法烦恼了。我目前正在播放 mp3。
    • 这是一个神话。我还使用了自定义媒体播放器,但结果是一样的。有时它会缓冲,有时它不会。在您的最后一个问题中,创建新的 MediaPlayer 连接是什么意思?你的意思是创建一个新实例还是设置一个新的数据源?在这两种情况下,我认为你必须杀死以前的媒体播放器对象并开始一个新的对象,因此我怀疑是否有可能无缝地流式传输你的音频。
    猜你喜欢
    • 2018-09-12
    • 2017-12-16
    • 2016-04-07
    • 1970-01-01
    • 2021-09-02
    • 2020-06-17
    • 2011-08-29
    • 2021-01-24
    • 2012-05-23
    相关资源
    最近更新 更多