Android媒体播放器

时间:2011-12-22 11:33:27

标签: android audio media-player state-diagram

我正在尝试使用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();

2 个答案:

答案 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();