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);
  }
 }
}
已邀请:
您提供的网址不是有效的网址。它显示404 NOT FOUND.SO,这为您造成了问题。
不知道确切的问题就很难回答。如果在UI线程上执行此操作,则可能还会导致应用程序崩溃,因为对ѭ1的调用可能会花费很长时间。使用流媒体时,最好使用
prepareAsync()
及其关联的侦听器。 如前所述,URL也提供404。
我在上面的代码中做了很少的更改。看看这个。
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;
}

要回复问题请先登录注册