一个Android MediaPlayer对象一次播放多个声音

时间:2011-08-10 13:47:10

标签: android audio media-player

我有一个对象MediaPlayer媒体播放器。我用它来一个接一个地播放不同的声音。

mediaplayer = MediaPlayer.create(context, ResIdMusicONE);
mediaplayer.start();

// some user input

mediaplayer.release();
mediaplayer = null;

// some other user input

mediaplayer = MediaPlayer.create(context, ResIdMusicTWO);
mediaplayer.start();

// some user input

mediaplayer.release();
mediaplayer = null;

有时候工作正常。但有时这两种声音是同时播放的。在媒体播放器应该已经发布并且等于null的位置。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

如果我是你,我会使用SoundPool类。使用SoundPool,您可以设置同时播放的流的数量,因此通过将其设置为1,您可以反复调用play(),最近的play()调用将是您听到的唯一声音。

不久前看看my post。它在问题中有一个SoundPool类的例子。

修改 您是否尝试过创建新实例并在每次要启动新声音时调用prepare()?

mediaplayer = new MediaPlayer();
mediaplayer.setDataSource(path);
mediaplayer.prepare();
mediaplayer.start();

虽然现在我考虑过它,但我很确定如果你使用sdcard中的文件而不是你的资源,我只需要这样做......嗯。