Android中SoundPool播放音频示例
2017-02-22 09:08
453 查看
SoundPool能加载一批声音资源到内存中,并支持同时播放多个音频文件。
创建SoundPool的示例代码如下:
SoundPool播放音频前,需要先加载对应的音频文件,示例代码如下:
加载完音频后,就可以进行播放,示例代码如下:
最后,释放音频的示例代码如下:
创建SoundPool的示例代码如下:
............. public BeatBox(Context context) { mAssetManager = context.getAssets(); if (Build.VERSION.SDK_INT >= 21) { //SDK_INT >= 21时,才能使用SoundPool.Builder创建SoundPool SoundPool.Builder builder = new SoundPool.Builder(); //可同时播放的音频流 builder.setMaxStreams(MAX_SOUNDS); //音频属性的Builder AudioAttributes.Builder attrBuild = new AudioAttributes.Builder(); //音频类型 attrBuild.setLegacyStreamType(AudioManager.STREAM_MUSIC); builder.setAudioAttributes(attrBuild.build()); mSoundPool = builder.build(); } else { //低版本的构造方法,已经deprecated了 mSoundPool = new SoundPool(MAX_SOUNDS, AudioManager.STREAM_MUSIC, 0); } loadSounds(); } .............
SoundPool播放音频前,需要先加载对应的音频文件,示例代码如下:
public void soundPoolPreload() throws IOException { for (Sound sound : mSounds) { //sound中含有Assets中的音频文件地址 //利用AssetManager的接口得到音频文件的afd AssetFileDescriptor afd = mAssetManager.openFd(sound.getAssetPath()); //SoundPool加载音频文件后,将返回一个int类型的id //该id与对应音频文件一一对应 //load接口的后一个参数表示优先级 int soundId = mSoundPool.load(afd, 1); sound.setSoundId(soundId); sound.setBeLoaded(true); } }
加载完音频后,就可以进行播放,示例代码如下:
public void play(Sound sound) { //得到音频文件对应的id Integer soundId = sound.getSoundId(); if (soundId == null) { return; } //参数为:音频ID、左声道音量、右声道音量、优先级、是否循环及播放速率 mSoundPool.play(soundId, 1.0f, 1.0f, 1, 0, 1.0f); }
最后,释放音频的示例代码如下:
public void release() { mSoundPool.release(); }
相关文章推荐
- Android中SoundPool播放 本地小音频
- android中使用soundpool播放音频
- Android 音频播放之SoundPool的使用和封装
- Android音频播放之SoundPool 详解
- Android SoundPool播放音频
- Android音频播放之SoundPool 详解
- Android 音频播放之SoundPool的使用和封装(自定义声音资源)
- Android学习04音频的播放之SoundPool与MediaPlayer
- Android中的音频播放(MediaPlayer和SoundPool)
- Android 音频播放之SoundPool的使用和封装
- Android --- 多媒体应用(SoundPool播放音频)
- Android SoundPool播放音频
- 从头学Android之多媒体--使用SoundPool播放音频
- Android音频播放之SoundPool
- Android音频播放(SoundPool与 MediaPlayer)
- 25、从头学Android之多媒体--使用SoundPool播放音频
- 一看就会Android之使用SoundPool播放多个短小的音频,如按键提示音,消息提示音,游戏声音等
- 【Android开发】多媒体应用开发-使用SoundPool播放音频
- Android多媒体应用使用SoundPool播放音频
- Android声音播放之SoundPool