【问题标题】:Stream mp3 from link从链接流式传输 mp3
【发布时间】:2014-04-22 04:38:28
【问题描述】:

我正在尝试构建一个可以从网络传输 mp3 内容的应用程序。当我运行此代码时,我没有收到任何错误,但没有播放音频。有什么帮助吗?谢谢

       private MediaPlayer mediaPlayer;



@Override
public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

initView();
try {

    mediaPlayer.setDataSource("my link.mp3"); // 
    mediaPlayer.prepareAsync();
    //mediaPlayer.prepare(); // 
 if(! mediaPlayer.isPlaying())
 {
  mediaPlayer.start();
 }

    } catch (Exception e) {

    e.printStackTrace();

    }
}




private void initView() {

mediaPlayer = new MediaPlayer();


}

}

【问题讨论】:

    标签: android mp3 android-mediaplayer


    【解决方案1】:
     private MediaPlayer mediaPlayer;
    @Override
    public void onCreate(Bundle savedInstanceState) {
    
    super.onCreate(savedInstanceState);
    
    setContentView(R.layout.activity_main);
    
    initView();
    try {
    
        mediaPlayer.setDataSource("my link.mp3"); // 
       // mediaPlayer.prepareAsync();
       mediaPlayer.prepare(); 
    

    // 如果你想要异步操作,这个方法会阻塞 UI 然后使用 mediaPlayer.prepareAsync();

      mediaPlayer.start();
    
    
        } catch (Exception e) {
    
        e.printStackTrace();
    
        }
    }
    

    【讨论】:

      【解决方案2】:

      试试这个:

        ProgressDialog progressDialog = ProgressDialog
                      .show(this, "Loading ", "Please Wait...");
              progressDialog.setCancelable(false);
          MediaPlayer player = new MediaPlayer();
                  player.setAudioStreamType(AudioManager.STREAM_MUSIC);
                  try {
                      player.setDataSource("http://my link.mp3");
                      player.setOnErrorListener(this);
                      player.setOnPreparedListener(this);
                      player.prepareAsync();
                  } catch (IllegalArgumentException e) {
                      Toast.makeText(YourActivity.this,
                              "Internet Access is not Provided", 0).show();
                      e.printStackTrace();
                  } catch (IllegalStateException e) {
                      Toast.makeText(YourActivity.this,
                              "Internet Access is not Provided", 0).show();
                      e.printStackTrace();
                  } catch (IOException e) {
                      Toast.makeText(YourActivity.this,
                              "Internet Access is not Provided", 0).show();
                      e.printStackTrace();
                  }
      
      
          @Override
          public void onPrepared(MediaPlayer play) {
              if (progressDialog != null && progressDialog.isShowing()) {
                  progressDialog.dismiss();
              }
              play.start();
          }
      
          @Override
          public boolean onError(MediaPlayer arg0, int arg1, int arg2) {
              if (progressDialog != null && progressDialog.isShowing()) {
                  progressDialog.dismiss();
              }
              if (player != null) {
                  player.release();
                  player = null;
              }       
              return false;
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-03-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多