我正在制作一款游戏,每次手机震动时都会播放一首声音。 在我的活动的onCreate中使用SoundPool并加载声音是否有意义,或者每次都可以创建媒体播放器,如下所示:
private void onShake() {
MediaPlayer mp= MediaPlayer.create(this, whipSound[currentWhip][force]);
mp.start();
}
我的猜测是SoundPool更好,因为声音只加载一次。我是对的吗?
由于
于连
答案 0 :(得分:1)
您可以在onShake
方法之外创建mediaPlayer,然后重置并在每次摇动时启动它:
MediaPlayer mp= MediaPlayer.create(this, whipSound[currentWhip][force]);
...
private void onShake() {
mp.reset();
mp.start();
}
//or
private void onShake() {
try {
mp.stop();
mp.prepare();
} catch (IllegalStateException e) { /* Ignore */
} catch (IOException e) {/* Ignore */ }
try {
mp.start();
} catch (IllegalStateException e) {
Log.e(TAG, "MediaPlayer failed ", e);
}
}
答案 1 :(得分:1)
正如预期的那样,SoundPool要快得多......