Android 如何使用媒体播放器显示进度对话框?

Android 如何使用媒体播放器显示进度对话框?,android,android-mediaplayer,progressdialog,Android,Android Mediaplayer,Progressdialog,以下媒体播放器中有一个问题,当您按“播放”时播放音频流。如果流不可用,程序没有任何响应,我如何解决此问题,尝试在对话框中取得进展,但解决方案不起作用,可能是我做错了什么,但当你点击时,进度条会先出现,然后立即消失,无需等待开始播放音乐 setDataSource预先提交了一个断开的链接,没有任何更改 使用进度对话框对媒体播放器进行编码: private class ProgressTask extends AsyncTask <Void,Void,Void>{ @Ov

以下媒体播放器中有一个问题,当您按“播放”时播放音频流。如果流不可用,程序没有任何响应,我如何解决此问题,尝试在对话框中取得进展,但解决方案不起作用,可能是我做错了什么,但当你点击时,进度条会先出现,然后立即消失,无需等待开始播放音乐

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();
        }  
        });
}
私有类ProgressTask扩展了AsyncTask{
@凌驾
受保护的void onPreExecute(){
progressbar.setVisibility(View.VISIBLE);
}
@凌驾
受保护的Void doInBackground(Void…arg0){
预加载();
返回null;
}
@凌驾
受保护的void onPostExecute(void结果){
MPplay();
progressbar.setVisibility(View.GONE);
}
}
公共空间预载(){
releaseMP();
mediaPlayer=新的mediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
试一试{
if(pdaStream.isChecked()){
主_流=”http://145.255.233.204:58000/radio_pda";             
}否则{
主_流=”http://145.255.233.204:58000/radio";
}
mediaPlayer.setDataSource(主流);
}捕获(IOE异常){
e、 printStackTrace();
}
Log.d(Log_标签,“prepareAsync”);
mediaPlayer.prepareAsync();;
}
公共游戏{
mediaPlayer.setOnPreparedListener(新的OnPreparedListener(){
@凌驾
已准备好公开作废(MediaPlayer mp){
mp.start();
}  
});
}

如果要查看视频何时可以播放,请使用此回调

如果要查看视频何时100%缓冲,请使用以下回调:


谢谢我意识到了我的错误,我没有在这个地方看到进度条
onPrepared(MediaPlayer mp)
//Called when the media file is ready for playback.
public abstract void onBufferingUpdate (MediaPlayer mp, int percent)