我在使用Android MediaPlayer播放声音时遇到了一些奇怪的问题。
在我的View构造函数中,我这样做:
clickSound = MediaPlayer.create(context, R.raw.ggclick);
rightSound = MediaPlayer.create(context, R.raw.right);
wrongSound = MediaPlayer.create(context, R.raw.wrong);
然后当我想播放声音时:
if(prefs.getBoolean("playClick", true))
clickSound.start();
这些文件都是非常短的WAV文件,这曾经有用。我最近将手机升级到2.2(FRG83G),我认为这是clickSound停止工作的时候。其他两个仍在工作。
我尝试将咔嗒声转换为ogg,然后三个都工作了。为了保持一致性,我将另外两个切换到ogg,再次点击声音停止工作,但其他两个成功播放。
有谁知道这里发生了什么?
答案 0 :(得分:2)
这是我从原始资源播放声音的功能:
protected MediaPlayer _mediaPlayer;
public void playFromResource(int resId)
{
if (_mediaPlayer != null)
{
_mediaPlayer.reset();
}
_mediaPlayer = MediaPlayer.create(this, resId);
_mediaPlayer.start();
}
答案 1 :(得分:1)
如果您只是拍摄非常短的样本(不是歌曲或长曲目),并且不需要在旅途中操作它们,则应该使用SoundPool。