2012-05-14 206 views
2

我試圖用互聯網廣播流的工作,但在某些流我什麼也沒得到,除了這一點:Android的媒體播放器流不打

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

+0

你使用什麼樣的來源? –

+0

@AndroSelva這裏是源[鏈接](http://217.16.69.17:8000/metropolis.mp3) – Darko

+0

你嘗試了其他的鏈接而不是你在這裏指定的鏈接嗎? –

回答

1

Android documentation

「對於流,你應該叫prepareAsync(),它立即返回,而不是阻止,直到有足夠的數據有已被緩衝。「

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

要使用Android的媒體播放器,流音頻,你應該開始播放音頻,一旦你收到onPreparedListner callback.As將數據加載到媒體播放器需要一定的時間。如果你開始播放的媒體播放器,而不用聆聽onPreparedListner媒體播放器將異常。