开发者

MediaPlayer vs SoundPool for only 1 simultaneous stream

I'm working on a game in which one single sound is played each time the phone is shaked. Does it make sense to use a SoundPool and load sounds in the onCreate of my activity, or is it ok to create a media开发者_如何学Pythonplayer each time, as shown below:

private void onShake() {
    MediaPlayer mp= MediaPlayer.create(this, whipSound[currentWhip][force]);   
    mp.start();
}

My guess is that SoundPool is better because the sounds are loaded only once. Am I right?

Thanks

Julien


As expected, SoundPool is much faster...


You can create the mediaPlayer outside the onShake method, and then reset and start it on every shake:

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);
   }
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜