0

我的问题是,如果 mp3 已经在播放,你如何关闭 ProgressDialog?

请检查我到目前为止尝试过的内容:

mediaPlayer.setDataSource(timelessFuture);
mediaPlayer.prepare(); 

// gets the song length in milliseconds from URL
mediaFileLengthInMilliseconds = mediaPlayer.getDuration(); 
progressDialog = ProgressDialog.show(this, "Downloading", "Please wait while podcast is being downloaded...");

if(!mediaPlayer.isPlaying()){
    mediaPlayer.start();
    play.setCompoundDrawablesWithIntrinsicBounds(R.drawable.button_pause, 0, 0, 0);
}   else {
    mediaPlayer.pause();
    play.setCompoundDrawablesWithIntrinsicBounds(R.drawable.button_play, 0, 0, 0);
}

primarySeekBarProgressUpdater();

我在这里缺少什么?

4

2 回答 2

0

when playing starts, use

progressDialog.dismiss();
于 2013-04-17T12:41:38.267 回答
0

而不是mediaPlayer.prepare();你可以使用mediaPlayer.prepareAsync();which 异步工作。

但随后您需要实施OnPreparedListener您的活动或服务。之后你还需要说mediaPlayer.setOnPreparedListener(this);。所以基本上当媒体播放器准备好,准备好时,它会进入下面的方法。所以你可以像下面这样关闭你的进度对话框。

@Override
public void onPrepared(MediaPlayer mp) {
    mediaPlayer.start();
    progressDialog.dismiss();
} 
于 2013-04-18T13:24:18.750 回答