我在GridView中有MediaPlayer,onItemClickListener
有案例。
我只为所有案例/文件使用了一个MediaPlayer实例。但是有了我的代码,就会发生这种情况:我在第一个按钮上启动mp。我想玩第二个按钮。会发生什么,当我点击第二个按钮MP停止然后我必须再次点击播放它。
有什么方法可以避免这种情况吗?
这是我的代码:
if (mPlay.isPlaying()) {
mPlay.reset();
} else {
mPlay = MediaPlayer
.create(ActivityM.this, R.raw.sound1);
mPlay.start();
}
所有案例的代码都相同,唯一的区别是文件。
我也尝试了mPlay.stop(); mPlay.Pause(); mPlay.seekTo(0);
等,但同样的事情发生了。
答案 0 :(得分:2)
在Switch Case
事件中使用onItemClickListener onItemClick(.....)
,例如
grid.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position,
long arg3) {
switch(position){
case 0:
mPlay = MediaPlayer.create(ActivityM.this, R.raw.sound1);
break;
case 1:
mPlay = MediaPlayer.create(ActivityM.this, R.raw.sound2);
break;
case 2:
mPlay = MediaPlayer.create(ActivityM.this, R.raw.sound3);
break;
.... so on
default:
break;
}
}
});
希望这会对你有所帮助。