安卓使用SoundPool音频池预加载音频,实现多音频,小音频的快速多音轨播放
来源:互联网 发布:福建预算软件 编辑:程序博客网 时间:2024/04/29 17:13
全栈工程师开发手册 (作者:栾鹏)
安卓教程全解
安卓使用SoundPool音频池预加载音频,实现多音频,小音频的快速多音轨播放。
你可以把SoundPool理解成一个多音频的音频播放器,可以分别控制每个音轨上的音频同时播放。
主要可以对音轨进行如下操作。
play(track3, 1, 1, 0, 2, 1); //参数:音轨,左声道音量(倍数),右声道音量(倍数),优先级,次数(-1表示无数次),速率(倍速)setLoop(track1, 2); //设置循环播放次数setRate(track2, 1); //设置播放速率setVolume(track1, 1, 1); //设置音量stop(track1); //停止pause(track2); //暂停resume(track2); //恢复
在activity的窗口恢复事件中加开始预加载音频,在暂停事件中视频这些音频,避免内存占用。
SoundPool sp; @Override protected void onResume() { super.onResume(); //创建一个Sound Pool int maxStreams = 10; sp = new SoundPool(maxStreams, AudioManager.STREAM_MUSIC, 0); //load方法可以从asset中,包资源中,文件路径,file descriptor中加载音频 final int track1 = sp.load(this, R.raw.music1, 0); //返回每个音频流的id final int track2 = sp.load(this, R.raw.music2, 0); final int track3 = sp.load(this, R.raw.music3, 0); Button track1Button = (Button)findViewById(R.id.soundpool_buttonTrack1); Button track2Button = (Button)findViewById(R.id.soundpool_buttonTrack2); Button track3Button = (Button)findViewById(R.id.soundpool_buttonTrack3); Button stopButton = (Button)findViewById(R.id.soundpool_buttonStop); Button chipmunkButton = (Button)findViewById(R.id.soundpool_buttonChipmunk); //播放第一个音轨的音频 track1Button.setOnClickListener(new OnClickListener() { public void onClick(View v) { sp.play(track1, 1, 1, 0, -1, 1); } }); //播放第二个音轨的音频 track2Button.setOnClickListener(new OnClickListener() { public void onClick(View v) { sp.play(track2, 1, 1, 0, 0, 1); } }); //播放第三个音轨的音频 track3Button.setOnClickListener(new OnClickListener() { public void onClick(View v) { sp.play(track3, 1, 1, 0, 0, 0.5f); } }); //停止所有音轨的音频播放 stopButton.setOnClickListener(new OnClickListener() { public void onClick(View v) { sp.stop(track1); sp.stop(track2); sp.stop(track3); } }); //音频加速 chipmunkButton.setOnClickListener(new OnClickListener() { public void onClick(View v) { sp.setRate(track1, 2f); } }); } @Override protected void onPause() { super.onPause(); sp.release(); //不再需要时,释放音频资源,释放后必须重新load }
阅读全文
0 0
- 安卓使用SoundPool音频池预加载音频,实现多音频,小音频的快速多音轨播放
- 使用音频引擎MITA实现多音源输入的源代码
- 使用soundPool播放音频
- 使用SoundPool播放音频
- SoundPool(播放小音频)
- android音频播放SoundPool的使用
- Assets的使用和SoundPool播放音频
- android 音频播放 SoundPool
- Android SoundPool播放音频
- Android SoundPool播放音频
- SoundPool播放音频资源
- Android音频播放--SoundPool
- Android 学习---音频学习 :SoundPool 音频池 的使用
- android下使用SoundPool 播放小文件音频
- Android中SoundPool播放 本地小音频
- Android之多媒体--使用SoundPool播放音频
- 使用SoundPool 同时播放多个音频
- Android中使用SoundPool来播放音频
- python学习_3
- 概率论第四章-随机变量的数字特征
- 唯快不破:TCP/IP详解--TIME_WAIT状态存在的原因
- 写给 Android 开发者的混淆使用手册
- JAVA8新特性之(函数式接口)
- 安卓使用SoundPool音频池预加载音频,实现多音频,小音频的快速多音轨播放
- HTTP协议状态码详解(HTTP Status Code)
- pytorch加载已训练好的word-embedding
- UE4 对象类型Class及内存管理(1)
- 狄克斯特拉算法python
- 对接金蝶凭证K3(java对接)
- 在pycharm 下安装tensorflow cpu版本
- javaScript数据类型你都弄明白了吗?绝对干货
- Deepin 深度Linux操作系统英伟达显卡驱动安装及晟兴三维数字地球安装