gpt4 book ai didi

android - mediaPlayer 准备播放时如何显示进度条

转载 作者:行者123 更新时间:2023-11-30 04:13:19 25 4
gpt4 key购买 nike

这是我主要 Activity 中的代码:

private void initControls()
{
streamButton = (Button) findViewById(R.id.button_stream);
streamButton.setOnClickListener(new View.OnClickListener()
{
public void onClick(View view)
{
loading = (ProgressBar) findViewById(R.id.progressBar1);
Toast
.makeText(
MyActivity.this,
"The following stream is about to start" + station,
Toast.LENGTH_LONG).show();
player.playAudioFile(urlstring2);
streamButton.setEnabled(false);
notificate();
}
});
}

下面是我启动媒体播放器本身的代码:

public class player extends MyMainActivity{

static MediaPlayer player;
private static final String TAG = player.class.getSimpleName();



public static void playAudioFile(String urlstring2) {


player = new MediaPlayer();
try {
player.setDataSource(urlstring2);
loading.setVisibility(View.VISIBLE);
player.prepareAsync();
//player.start();

} catch (Throwable thr) {
Log.e(TAG, "could not play audio", thr);
loading.setVisibility(View.INVISIBLE);
}
player.setOnPreparedListener(new OnPreparedListener() {

@Override
public void onPrepared(MediaPlayer mp) {
player.start();
loading.setVisibility(View.INVISIBLE);
}
});

}

public static void releasePlayer() {
if (player != null) {
// Player-Ressourcen freigeben
player.release();
player = null;
}
}

我想要做的是在用户按下“播放”按钮时显示进度条(循环条),并且我需要它在媒体播放器开始播放时消失。atm 我只是让圆圈在玩家开始玩并且永远不会消失后显示......

编辑:我让它工作了。我确实像这样启动了播放器:player.prepare();代替 player.prepareAsync();所以进度条显示了一个 View 毫秒。

最佳答案

试试这个。

在按钮中启动进度条是这样的,

 streamButton.setOnClickListener(new View.OnClickListener()
{
public void onClick(View view)
{
ProgressDialog progressDialog=null;
progressDialog=ProgressDialog.show(context, "", "Playing...");
Toast
.makeText(
MyActivity.this,
"The following stream is about to start" + station,
Toast.LENGTH_LONG).show();
player.playAudioFile(urlstring2);
streamButton.setEnabled(false);
notificate();
}
});

而且你必须覆盖媒体播放器的 Prepared 监听器,这样你就可以像这样停止其中的进度条,

Player.setOnPreparedListener(new OnPreparedListener() {

@Override
public void onPrepared(MediaPlayer mp) {
progressDialog.cancel();

}
});

这样您就可以实现在您的 Mediaplayer 开始播放文件之前显示进度。

关于android - mediaPlayer 准备播放时如何显示进度条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10472005/

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