simple_adapter_lv.setAdapter(simpleAdapter); simple_adapter_lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { if (position==0){ mediaPlayer.create(Main3Activity.this, R.raw.music2).start();} else if (position==1){ mediaPlayer.create(Main3Activity.this, R.raw.music2).start();} else if (position==2){ mediaPlayer.create(Main3Activity.this, R.raw.music3).start();} else if (position==3){ mediaPlayer.create(Main3Activity.this, R.raw.music4).start();} //soundPool.play(music[position],1,1,0,0,1); } });如何从这段代码中拿到正在播放的MediaPlayer
时间: 2023-11-30 13:01:59 浏览: 68
3-10-2(列表之SimpleAdapter适配).7z
你可以在创建MediaPlayer对象时,将其赋值给一个变量。然后在onItemClick方法中,根据position的值确定当前播放的音乐,并通过MediaPlayer对象的isPlaying()方法判断当前是否正在播放音乐。如果正在播放,就把这个MediaPlayer对象返回。
示例代码:
```
// 在Activity中定义一个成员变量
private MediaPlayer mediaPlayer;
// 在创建MediaPlayer时,赋值给成员变量
mediaPlayer = MediaPlayer.create(Main3Activity.this, R.raw.music2);
// 在onItemClick方法中判断当前是否正在播放音乐,并返回MediaPlayer对象
simple_adapter_lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if (position == 0) {
if (mediaPlayer.isPlaying()) {
return mediaPlayer;
} else {
mediaPlayer = MediaPlayer.create(Main3Activity.this, R.raw.music2);
mediaPlayer.start();
}
} else if (position == 1) {
// ...
}
}
});
```
需要注意的是,如果当前MediaPlayer对象没有在播放,需要重新创建并启动它。否则返回的MediaPlayer对象会是一个已经停止播放的对象。
阅读全文