【问题标题】:Android mediaplayer stream not playingAndroid 媒体播放器流未播放
【发布时间】:2012-05-14 11:21:38
【问题描述】:

我正在尝试使用互联网广播流,但在某些流中我什么也得不到:

05-14 13:16:13.480: E/MediaPlayer(2088): error (1, -2147483648)
05-14 13:16:13.480: W/System.err(2088): java.io.IOException: Prepare failed.: status=0x1
05-14 13:16:13.480: W/System.err(2088):     at android.media.MediaPlayer.prepare(Native Method)
05-14 13:16:13.480: W/System.err(2088):     at com.darko.mk.RadioTresActivity$2.run(RadioTresActivity.java:141)
05-14 13:16:13.480: W/System.err(2088):     at java.lang.Thread.run(Thread.java:1019)

有些电台工作正常,但有些根本不播放。

这是我给出错误的代码:

public void playRadio(final String source) {
        new Thread(new Runnable() {

            public void run() {
                try {
                    mediaPlayer.release();
                    mediaPlayer = new MediaPlayer();
                    mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
                    mediaPlayer.setDataSource(source);
                    mediaPlayer.prepare(); //line 141 that gives the error
                    mediaPlayer.start();
                } catch (IllegalArgumentException e) {
                    e.printStackTrace();
                } catch (IllegalStateException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }).start();

    }

可能是什么问题?以下是源示例:http://217.16.69.17:8000/metropolis.mp3

【问题讨论】:

  • 你用的是什么来源?
  • @AndroSelva 这里是来源link
  • 您是否尝试过任何其他链接而不是您在此处指定的链接?
  • @AndroSelva 是的,例如这个链接正在工作178.32.57.58:8012
  • 这是同一个流类型还是普通的mp3文件

标签: android stream media-player


【解决方案1】:

Android documentation

“对于流,你应该调用prepareAsync(),它会立即返回,而不是阻塞直到缓冲足够的数据。”

iplayer.setOnPreparedListener(new OnPreparedListener() {
    public void onPrepared(MediaPlayer mp) {
        mp.start();
    }
});
iplayer.prepareAsync();

【讨论】:

    【解决方案2】:

    要使用 Android 媒体播放器流式传输音频,您应该在收到 onPreparedListner 回调后开始播放音频。因为将数据加载到媒体播放器需要时间。如果您开始播放媒体播放器而不收听 onPreparedListner 媒体播放器将出现异常。

    【讨论】:

      猜你喜欢
      • 2017-10-08
      • 1970-01-01
      • 2012-03-19
      • 2011-09-19
      • 2014-01-29
      • 2012-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多