2014-01-28 23 views
1

以下媒体播放器在播放音频流时遇到问题,如果流不可用,没有任何来自程序的响应,我如何解决此问题,尝试进行进度对话框,但是解决方案不起作用,也许我做了错误的事情,但是当你点击进度条先出现,然后立即消失而无需等待开始播放音乐。如何显示媒体播放器的进度对话框?

setDataSource预先提交了一个断开的链接,没有任何改变。

代码媒体播放进度对话框:

private class ProgressTask extends AsyncTask <Void,Void,Void>{ 
     @Override 
     protected void onPreExecute(){ 
      progressbar.setVisibility(View.VISIBLE); 
     } 

     @Override 
     protected Void doInBackground(Void... arg0) { 
      preload(); 
      return null; 
     } 

     @Override 
     protected void onPostExecute(Void result) { 
      MPplay(); 
      progressbar.setVisibility(View.GONE);    

     } 
    } 

public void preload() { 
    releaseMP(); 
    mediaPlayer = new MediaPlayer(); 
    mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); 
    try { 
     if(pdaStream.isChecked()){ 
      Main_stream = "http://145.255.233.204:58000/radio_pda";    
     }else{ 
      Main_stream = "http://145.255.233.204:58000/radio"; 
     } 
    mediaPlayer.setDataSource(Main_stream); 
    } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    Log.d(LOG_TAG, "prepareAsync"); 
     mediaPlayer.prepareAsync();; 
    } 

public void MPplay(){ 
    mediaPlayer.setOnPreparedListener(new OnPreparedListener() { 
     @Override 
     public void onPrepared(MediaPlayer mp) { 
      mp.start(); 
     } 
     }); 
} 

回答

1

如果你想看到在视频准备播放时可使用此回调。 http://developer.android.com/reference/android/media/MediaPlayer.OnPreparedListener.html

onPrepared(MediaPlayer mp) 
//Called when the media file is ready for playback. 

如果你想看到影片时100%的缓冲,使用此回调:http://developer.android.com/reference/android/media/MediaPlayer.OnBufferingUpdateListener.html

public abstract void onBufferingUpdate (MediaPlayer mp, int percent) 
+0

感谢我意识到我的错误,我没有看到的地方进度条 – user3064772

相关问题