Медиаплеер Android останавливает звук при нажатии на другой элемент

Я создаю деку в виде списка, и мне нужен код для воспроизведения звука, когда я нажимаю на элемент, и останавливаю его, когда нажимается другой, а затем запускаю новый звук. Я пробовал много кода, но приложение вылетает.


person user3437592    schedule 25.03.2014    source источник


Ответы (2)


private MediaPlayer mMediaPlayer = null;

Вызовите playAudio() при нажатии элемента. он остановит предыдущее воспроизведение звука и воспроизведет новый.

public void playAudio(int audioId)
{
    // stop the previous playing audio
    if(mMediaPlayer != null && mMediaPlayer.isPlaying())
    {
        mMediaPlayer.stop();
        mMediaPlayer.release();
        mMediaPlayer = null;
    }
    mMediaPlayer = MediaPlayer.create(this, audioId);
    mMediaPlayer.start();
}

вызовите этот метод при щелчке элемента

 playAudio(R.raw.sound); // change this sound depends on your item
person Libin    schedule 25.03.2014

Поместите медиафайл в папку raw, а затем

 MediaPlayer song = MediaPlayer.create(this, R.raw.song1);

и когда вы нажимаете на элемент в своем спискеView

@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
     super.onListItemClick(l, v, position, id);
     song.release();
     song = MediaPlayer.create(this, R.raw.song2);
     song.start();
}
person wael    schedule 25.03.2014
comment
Я знаю, как запустить звук, но мне нужно, когда я нажимаю на другой элемент, прежний останавливается и начинается новый. - person user3437592; 25.03.2014