Android 音频池
来源:互联网 发布:zuk 系统升级软件 编辑:程序博客网 时间:2024/05/21 07:56
音频池(SoundPool)说白了就是同时播放几个音乐,像我们现实生活中的斗地主、闲来麻将等等,都是同时会有几个音乐播放,那就是采用了音频池。
下面我带大家写一个简单的音频池:
这里有五种声效,我们要做的是,让四个音效同时播放,并且当点到第五个音效狗的时候,第一个音效鸡的声音消失,那我们赶快来实现吧。
1、先写一个布局文件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.zking.g150820_android26_playmusic.PlayAnimalActivity"> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="playKFC" android:text="音效鸡" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="playTwo" android:text="音效Two" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="playThree" android:text="音效Three" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="playFour" android:text="音效Four" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="playDog" android:text="音效狗" /></LinearLayout>
2、把音频文件放入res的raw下,如下:
3、接下来就是写JAVA代码了
public class PlayAnimalActivity extends AppCompatActivity { private SoundPool soundPool; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_play_animal); //实例化音频池 soundPool = new SoundPool(4, AudioManager.STREAM_MUSIC,0); //给音频池设置加载完成的监听 soundPool.setOnLoadCompleteListener(new SoundPool.OnLoadCompleteListener() { @Override public void onLoadComplete(SoundPool soundPool, int i, int i1) { soundPool.play(i,1,1,1,100,1); } }); } public void playKFC(View view){ soundPool.load(this,R.raw.rooster,1); } public void playTwo(View view){ soundPool.load(this,R.raw.chimp,1); } public void playThree(View view){ soundPool.load(this,R.raw.crickets,1); } public void playFour(View view){ soundPool.load(this,R.raw.roar,1); } public void playDog(View view){ soundPool.load(this,R.raw.dogbark,1); } @Override protected void onDestroy() { super.onDestroy(); if(soundPool!=null){ soundPool.release(); soundPool=null; } }}
总结:
3 0
- Android 音频池
- Android-简单音频池
- Android音频池(SoundPool)
- Android 学习---音频学习 :SoundPool 音频池 的使用
- android 音频
- android音频
- Android 音频
- Android 音频
- Android 音频采集---原始音频
- Android-Soundpool(音频池)实例
- 基于网络音频的Android播放程序和音频池使用
- Android 音频采集(原始音频)
- Android 音频采集(原始音频)
- Android音频开发之尝试音频混合
- Android开发笔记-音频录制/播放&音频
- Android开发笔记-音频录制/播放&音频
- Android音频子系统,音频流(六)
- Android 音频源码目录
- 如何快速赚钱:Python爬虫
- linux下终端常用命令和vi命令修改文件及保存的使用方法
- 将FFFF:0~FFFF:F 中得字节型数据 复制到0:200 - 0:20F中
- 最大积水面积--宽度优先搜索的应用
- redis内存淘汰 图解
- Android 音频池
- Android音频池(SoundPool)
- 聊聊clean code
- java--web部分
- HTTP协议与HTTPS协议的区别
- java多线程(三) 线程的同步与通信
- Mac OS X下如何使用OpenGL
- 【CentOS7】下解决yum install mysql-server没有可用包的问题
- 利用管道获取控制台程序的标准输出