我有一个应用程序,它使用Android MediaPlayer功能在点击ImageButton时播放声音效果,如下所示:
final MediaPlayer LowTomPlayer = MediaPlayer.create(HomeScreen.this, R.raw.low_tom);
ImageButton btn_low_tom = (ImageButton) findViewById(R.id.low_tom);
btn_low_tom.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(LowTomPlayer.isPlaying())
{
LowTomPlayer.pause();
LowTomPlayer.start();
}
else
LowTomPlayer.start();
}
});
唯一的问题是,因为我告诉它在效果播放时暂停,然后重新开始,它不会改变任何东西。
有问题的声音效果大约是一秒钟,所以如果用户敲击按钮在该时间内再次播放声音,那么它就不会出现。我希望它能够在播放时停止效果,然后在用户再次单击按钮时从头开始重新播放。
我所知道的是没有能力阻止媒体播放器而不将其清除为未初始化。我要问的是,如果有人能够在没有创建大量不同媒体播放器的情况下找出具有相同效果的语法。
如果有什么不清楚,请问。提前致谢。
答案 0 :(得分:0)
final MediaPlayer LowTomPlayer = MediaPlayer
.create(this, R.raw.low_tom);
try {
LowTomPlayer.prepare();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
ImageButton btn_low_tom = (ImageButton) findViewById(R.id.low_tom);
btn_low_tom.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (LowTomPlayer.isPlaying()) {
LowTomPlayer.pause();
} else
LowTomPlayer.start();
}
});
试试这段代码。