0

我正在尝试使用 MediaPlayer 对象播放声音,但尽管我尽了最大努力,但我似乎无法让它工作。声音只是拒绝播放。

这是一个简短的声音,应该在触摸屏幕时播放,这意味着它必须重复很多次,没有太多延迟。知道了这一点,我遵循了状态图http://developer.android.com/reference/android/media/MediaPlayer.html。我似乎看不出我的方法调用顺序到底出了什么问题。

MediaPlayer mp = MediaPlayer.create(this.getContext(), R.raw.select2);
try {
    mp.prepare();
    mp.start();                 
    Log.e("debug","sound played");
    }
catch(Exception e) {}
mp.stop();
4

2 回答 2

0

您调用媒体播放器prepare(),但您使用的create()调用会自动准备播放器,这会导致IllegalStateException当您再次尝试调用prepare()时,您会被发送到您的catch()(如果您以某种方式处理异常,您会注意到这一点,即打印堆栈跟踪)。

于 2011-12-22T11:58:16.707 回答
0
MediaPlayer player = MediaPlayer.create(this.getContext(), R.raw.select2);

我们通过设置音乐播放器的一些属性来配置音乐播放器,如下所示

player.setWakeMode(getApplicationContext()PowerManager.PARTIAL_WAKE_LOCK);
player.setAudioStreamType(AudioManager.STREAM_MUSIC);
player.setOnPreparedListener(this);
player.setOnCompletionListener(this);
player.setOnErrorListener(this);
try {
   player.prepare();
   player.start();                 
   Log.e("debug","sound played");
}  catch(Exception e) {}
  player.stop();
于 2015-07-21T11:50:13.077 回答