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