嗯,我有一个带声音的ListView。当我点击其中的一首歌曲时,它开始播放该歌曲,但当我点击其他歌曲时,它仍在播放。我想要做的是当我按下另一个时,停止发出声音。我谷歌,找到解决方案完全相同的问题,但它不会为我工作。我得到错误,它说:“MediaPlayer类型中的方法setDataSource(String)不适用于参数(int)”。我只是不知道如何得到具体的位置,哪个项目行被点击。这是我在onListItemClick()方法现在有:onListItemClick()开始/停止歌曲
@Override
public void onListItemClick(ListView parent, View v, int position, long id) {
Minions s = (Minions) mSounds.get(position);
MediaPlayer mPlayer;
final boolean isPlaying = false;
if(!isPlaying){
mPlayer = new MediaPlayer();
mPlayer.setDataSource(s.getSoundResourceId());
mPlayer.prepare();
mPlayer.start();
isPlaying = true;
}else{
isPlaying = false;
mPlayer.stop();
mPlayer.reset();
mPlayer.setDataSource(s.getSoundResourceId());
mPlayer.prepare();
mPlayer.start();
isPlaying = true;
}
mPlayer.setOnCompletionListener(new OnCompletionListener() {
public void onCompletion(MediaPlayer mPlayer) {
mPlayer.release();
isPlaying = false;
}
});
}
以获得职位使用“职位” – Lele