我有这两个按钮。我按第一个它播放一个mp3文件。但如果我按第二个和第一个mp3还没有完成,他们一起玩。我可以修复它吗?这是我的btn代码!!感谢
Button button = (Button) findViewById(R.id.btn);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v){
MediaPlayer mp = MediaPlayer.create(this, R.raw.myalo);
mp.start();
Toast.makeText(this, "Eisai sto myalo", Toast.LENGTH_SHORT).show();
}
});
Button button2 = (Button) findViewById(R.id.btn2);
button2.setOnClickListener(new View.OnClickListener() {
public void onClick(View v){
MediaPlayer mp = MediaPlayer.create(this, R.raw.thryleole);
mp.start();
Toast.makeText(this, "thryle ole trelenomai", Toast.LENGTH_SHORT).show();
}
答案 0 :(得分:0)
我的建议: 为创建的mediaplayer-methods使用两个不同的名称, 当开始播放歌曲时,在变量中写入已启动的mp的名称,然后按另一个按钮检查变量是否已填满并在启动新的<{1}}运行任务(存储在变量中)之前停止< / p>
答案 1 :(得分:0)
您可以通过在启动之前检查MediaPlayer是否正在播放来轻松实现此目的。你想做这样的事情:
Button button = (Button) findViewById(R.id.btn);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v){
if (mp.isPlaying() == false){
MediaPlayer mp = MediaPlayer.create(olympiakos.this, R.raw.myalo);
mp.start();
Toast.makeText(olympiakos.this, "Eisai sto myalo", Toast.LENGTH_SHORT).show();
}
}
});
Button button2 = (Button) findViewById(R.id.btn2);
button2.setOnClickListener(new View.OnClickListener() {
public void onClick(View v){
if (mp.isPlaying() == false){
MediaPlayer mp = MediaPlayer.create(olympiakos.this, R.raw.thryleole);
mp.start();
Toast.makeText(olympiakos.this, "thryle ole trelenomai", Toast.LENGTH_SHORT).show();
}
}
});
如果用户在MediaPlayer仍在播放时单击按钮,则无效,因此它将继续播放正在播放的内容。你可以改为调用mp.stop()并启动新的声音文件。这样,无论忽略点击,它都会停止当前的声音,无论我们走多远,都会开始新的声音。