使用 Android MediaPlayer 播放声音时出现问题
Posted
技术标签:
【中文标题】使用 Android MediaPlayer 播放声音时出现问题【英文标题】:Problems playing sounds with Android MediaPlayer 【发布时间】:2011-03-17 11:27:49 【问题描述】:我在使用 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,点击声音再次停止工作,但其他两个播放成功。
有人知道这里发生了什么吗?
【问题讨论】:
您是否收到任何错误消息?可能是 clicksound 太短,无法以您拥有的格式在 2.2 媒体播放器中播放。 【参考方案1】:这是我从原始资源中播放声音的功能:
protected MediaPlayer _mediaPlayer;
public void playFromResource(int resId)
if (_mediaPlayer != null)
_mediaPlayer.reset();
_mediaPlayer = MediaPlayer.create(this, resId);
_mediaPlayer.start();
【讨论】:
【参考方案2】:如果您只是发射非常短的样本(不是歌曲或长音轨),并且不需要在旅途中操纵它们,则应该使用 SoundPool。
【讨论】:
以上是关于使用 Android MediaPlayer 播放声音时出现问题的主要内容,如果未能解决你的问题,请参考以下文章
Android -- 多媒体播放之MediaPlayer使用内部实现简析
使用 Android MediaPlayer 播放声音时出现问题
在 Android 中是不是可以录制 MediaPlayer 播放的内容?
在 Android 的 MediaPlayer 上播放音频时遇到问题