gpt4 book ai didi

java - MP3 媒体播放器上的加载对话框准备()

转载 作者:行者123 更新时间:2023-12-01 12:04:15 25 4
gpt4 key购买 nike

我是 Android 开发领域的新人。我有一个 mp3 音频播放器代码,可以从 url 播放 mp3。我想在媒体播放器准备缓冲时显示加载对话框

这是我的代码,我在准备时显示一个对话框,但它连续运行并且无法播放 mp3。我不知道在哪里定义 smp.setOnPreparedListener。请告诉我我可以在播放功能或外部播放功能中定义它吗?请帮助我这是我的代码。提前致谢

//播放MP3功能

public void  playSong(int naatindex){
// Play song
try {

mp.reset();
mp.setDataSource(naatpaths[naatindex]);
tv = (TextView) this.findViewById(R.id.mywidget);
tv.setSelected(true); // Set focus to the textview
tv.setText(naattitles[naatindex]);
mp.prepare();
mp.start();
// Changing Button Image to pause image
btnPlay.setImageResource(R.drawable.btn_pause);
// set Progress bar values
songProgressBar.setProgress(0);
songProgressBar.setMax(100);
// Updating progress bar
updateProgressBar();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}

这是我的 mp.setOnPreparedListener 代码

ProgressDialog progressDialog = ProgressDialog.show(this, 
"Loading Title", "Loading Message");
mp.setOnPreparedListener(new OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
if (progressDialog != null && progressDialog.isShowing()){
progressDialog.dismiss();
}
mp.start();
}
});

最佳答案

在 playSong() 中,您调用:

mp.prepare();
mp.start();

如果您直接启动播放器,它会崩溃,因为它可能尚未准备好播放。试试这个:

MediaPlayer mp = new MediaPlayer();
mp.setDataSource(naatpaths[naatindex]);
mp.setOnPreparedListener(new OnPreparedListener(){

@Override
public void onPrepared(MediaPlayer mp) {
mp.start();
if (progressDialog != null && progressDialog.isShowing())
progressDialog.dismiss();

}
});
mp.prepareAsync(); //this will prepare file a.k.a buffering
songProgressBar.setProgress(0);
songProgressBar.setMax(100);
// Updating progress bar
updateProgressBar();

如果仍然无法播放,请检查直播地址。它可能已经死了。还可以尝试记录播放器的状态。还要检查堆栈跟踪是否有任何异常。

关于java - MP3 媒体播放器上的加载对话框准备(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27755924/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com