这是我的主要活动中的代码:
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;
}
}
}
我想要做的是当用户按下“播放”按钮时显示progressBar(cicling one),我需要它在媒体播放器开始播放时消失。 atm我只是在播放器播放后才开始播放圈子并且永远不会消失...
编辑:我让它发挥作用。 我确实发起了这样的玩家:player.prepare(); player.prepareAsync()的insteas; 因此,进度条显示了一个视图毫秒。
答案 0 :(得分:1)
试一试。
按钮点击此处启动进度条,如下所示
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开始播放该文件。
答案 1 :(得分:0)
添加代码以隐藏此行之后的ProgressBar:
player.start();
还有你的拦截块。一旦玩家正在玩或不能玩,这应该会消失。
如果您添加用于显示ProgressBar的代码,我现在也可以帮助您隐藏它。
答案 2 :(得分:0)
回到最后将此问题标记为已解决,因此我将之前编辑的内容复制到我的问题中。
我得到了它的工作。我确实发起了这样的玩家: player.prepare(); player.prepareAsync()的insteas;所以进度条 以毫秒为单位显示。