使用Android MediaPlayer播放声音时出现问题

3

我遇到了一些在安卓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就不再起作用了,但其他两个还能正常使用。
我试过将click sound切换成ogg格式,这样三个都能用。为了保持一致性,我把另外两个也换成了ogg格式,结果click sound又不能用了,但其他两个仍能成功播放。
有人知道这里发生了什么吗?

你有收到任何错误信息吗?可能是因为你的clicksound在2.2媒体播放器中以你所拥有的格式太短而无法播放。 - Eric Nordvik
2个回答

3

这是我的函数,用于从原始资源播放声音:

protected MediaPlayer _mediaPlayer;  

public void playFromResource(int resId)     
     {
     if (_mediaPlayer != null)
         {
         _mediaPlayer.reset();
         }
     _mediaPlayer = MediaPlayer.create(this, resId);
     _mediaPlayer.start();
     } 

1
如果你只是播放非歌曲或长音轨的短样本,并且不需要在操作期间进行处理,那么你应该使用SoundPool。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接