在Android中使用媒体播放器获得多种声音的正确方法是什么?



我有多个原始声音,我想在用户输入时播放。我使用文档中的示例:

MediaPlayer mediaPlayer = MediaPlayer.create(context, R.raw.sound_file_1);
mediaPlayer.start();

但是由于我有多个声音,我应该在每次想要播放不同的声音时执行 MediaPlayer.create(...(,还是应该实例化多个 MediaPlayer 对象并只调用我想播放的 start((?

我想我问的是在需要时实例化与保留在内存中的成本。

如果你想使用多个小声音,实际上最好使用 SoundPool:

AudioAttributes audioAttributes = AudioAttributes.Builder()
            .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
            .setUsage(AudioAttributes.USAGE_GAME)
            .build();
SoundPool soundPool = new SoundPool.Builder()
            .setAudioAttributes(audioAttributes)
            .build();
int id = soundPool.load(context, resourceId, 0);
soundPool.play(id, 1, 1, 0, 0, 1);

但是,如果您真的需要回答我的问题,我会说您应该将 MediaPlayer 保留在内存中,在运行时实例化它会减慢您的应用程序并延迟声音。

相关内容

  • 没有找到相关文章