0

我正在构建一个列表视图音板,我需要一个代码来在我单击一个项目时播放声音并在单击另一个项目时停止它,然后开始新的声音。我尝试了很多代码,但应用程序崩溃了。

4

2 回答 2

1
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
于 2014-03-25T00:59:14.713 回答
0

将您的媒体文件放在原始文件夹中,然后

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

当您单击 listView 中的项目时

@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();
}
于 2014-03-25T00:48:22.663 回答