我正在尝试使用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();
答案 0 :(得分:0)
您在媒体播放器上拨打prepare()
,但您使用的create()电话会自动准备播放器,当您再次尝试拨打IllegalStateException
时,这会导致prepare()
,并且你被发送到你的catch()
(如果你以某种方式处理异常,你会注意到这一点,即打印堆栈跟踪)。
答案 1 :(得分: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();