【问题标题】:Media player taking too much time to prepare and start媒体播放器花费太多时间来准备和启动
【发布时间】:2017-05-12 03:57:05
【问题描述】:

我想播放 Mp3 URL,我使用了媒体播放器。它正在工作,但准备和开始需要太多时间,我已经参考了很多网站,但我没有得到任何满意的解决方案。

我遇到了这个问题,所以请大家帮忙解决它!

我的代码如下所示

try {
            player = new MediaPlayer();
            player.setAudioStreamType(AudioManager.STREAM_MUSIC);
            player.setDataSource(mArrayList.get(0).MUSIC_URL);
            player.prepare();
            player.start();
            seekbar.setMax(player.getDuration());
            seekUpdation();
        } catch (Exception e) {
            // TODO: handle exception
        }

【问题讨论】:

  • 能否请您发布您的代码
  • MUSIC_URL 有一个哪个 url 来自您的设备存储,您能分享一下这个网址吗
  • 您可以使用任何 MP3 url,例如 vprbbc.streamguys.net/vprbbc24.mp3
  • 我认为这不是编码问题的情况,因为通常当您从任何主机播放音频和视频文件时,它会首先将其存储到缓冲区中,然后在准备好缓冲区之后再将其存储开始从缓冲区访问数据,因此如果您的互联网连接速度很慢,则需要一些时间来处理。但是,如果您的互联网连接速度很快,那么它不会花费太多时间
  • 你的意思是首先我必须存储 MP3 音频,然后才能播放?

标签: android url mp3 android-mediaplayer


【解决方案1】:

尝试使用

   mMediaPlayer.prepareAsync();

如果你看到文档,解释会是这样的

 * Prepares the player for playback, asynchronously.
 *
 * After setting the datasource and the display surface, you need to either
 * call prepare() or prepareAsync(). For streams, you should call prepareAsync(),
 * which returns immediately, rather than blocking until enough data has been
 * buffered.

在你的情况下,你是流数据,所以需要使用 prepareAsync()

希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-08
    • 1970-01-01
    • 1970-01-01
    • 2016-05-07
    相关资源
    最近更新 更多