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
原创粉丝点击