嗯,我有一個帶聲音的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