在 Android 中,SoundPool 是一个用于播放短音频片段的工具类,适用于游戏、多媒体应用等场景。以下是使用 SoundPool 播放音效的基本步骤:

1. 初始化 SoundPool:
   - 在你的 Activity 或 Fragment 中,首先需要初始化 SoundPool。
    SoundPool soundPool;
    int duangSoundId;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // 初始化 SoundPool
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            soundPool = new SoundPool.Builder().build();
        } else {
            soundPool = new SoundPool(1, AudioManager.STREAM_MUSIC, 0);
        }

        // 加载音效文件并获取其资源ID
        duangSoundId = soundPool.load(this, R.raw.duang_sound, 1);
    }

   - 上述代码中,R.raw.duang_sound 是放置在 res/raw 目录下的音频文件(例如 duang_sound.mp3)。

2. 播放音效:
   - 在需要播放音效的地方,调用 SoundPool 的 play 方法。
    // 播放音效
    soundPool.play(duangSoundId, 1.0f, 1.0f, 1, 0, 1.0f);

   - play 方法的参数依次为:音效资源ID、左声道音量、右声道音量、优先级(无效果,一般设为1)、循环次数(0表示不循环,-1表示无限循环)、播放速率(1.0表示正常速率)。

3. 释放资源:
   - 在 onDestroy 方法中释放 SoundPool 占用的资源。
    @Override
    protected void onDestroy() {
        super.onDestroy();
        if (soundPool != null) {
            soundPool.release();
            soundPool = null;
        }
    }

这是一个简单的使用 SoundPool 播放音效的例子。请注意,SoundPool 主要用于播放较短的音频片段,对于较长的音频文件,更推荐使用 MediaPlayer。


转载请注明出处:http://www.pingtaimeng.com/article/detail/15236/Android