2011-04-20 67 views
1

我有此代碼爲現場直播的一個問題:你是給Android音頻流播放代碼有什麼問題?

package cm.ex.wwd; 

import android.app.Activity; 
import android.media.AudioManager; 
import android.media.MediaPlayer; 
import android.os.Bundle; 
import android.util.Log; 

public class AudioStream extends Activity { 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    String url = "http://www.songblasts.com/songs/hindi/t/three-idiots/01-Aal_Izz_Well-(SongsBlasts.Com).mp3"; 
    MediaPlayer mp = new MediaPlayer(); 
    try { 
    mp.setDataSource(url); 
    mp.setAudioStreamType(AudioManager.STREAM_MUSIC); 
    mp.prepare(); 
    mp.start(); 
    } catch (Exception e) { 
    Log.i("Exception", "Exception in streaming mediaplayer e = " + e); 
    } 
} 
} 
+2

實際上有什麼問題? – milind 2011-04-20 05:48:17

+1

嘿,請首先檢查您的網址它不工作.. – 2011-04-20 05:57:05

+0

乾草檢查此鏈接將解決它http://blog.pocketjourney.com/2008/04/04/tutorial-custom-media-streaming-for-androids-mediaplayer/ – 2011-04-20 05:53:31

回答

1

網址是不是一個有效one.it正顯示出404 NOT FOUND.so它是爲you.give一個有效的

創設問題
0

不知道確切的問題很難回答。如果您在UI線程上執行此操作,則可能會遇到應用程序崩潰,因爲調用prepare()可能需要很長時間。在使用流媒體時,最好使用prepareAsync()和關聯的偵聽器。

正如前面提到的,也是URL給出了404

0

我已經做在上面的代碼中變化不大。看看這一個。

player = new MediaPlayer(); 
    player.setAudioStreamType(AudioManager.STREAM_MUSIC); 
    try { 
     player.setDataSource("http://www.hubharp.com/web_sound/BachGavotte.mp3"); 
     player.setOnErrorListener(this); 
     player.setOnPreparedListener(this); 
     player.prepareAsync(); 
    } catch (IllegalArgumentException e) { 
     e.printStackTrace(); 
    } catch (IllegalStateException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    }  
} 
@Override 
public void onDestroy() { 
    super.onDestroy(); 
    player.release(); 
    player = null; 
} 
@Override 
public void onPrepared(MediaPlayer play) { 
    play.start(); 
} 
@Override 
public boolean onError(MediaPlayer arg0, int arg1, int arg2) { 
    return false; 
}