Android多媒体--SoundPool

来源:互联网 发布:兄弟连mysql视频教程 编辑:程序博客网 时间:2024/06/07 07:00
  • SoundPool是用来播放短促声音的对象,他最大支持存放20个短促的声音
  • 具体使用的代码请参见下面的demo示例
public class MainActivity extends AppCompatActivity implements View.OnClickListener {    private Button button;    private SoundPool soundPool;    private Map<String,Integer> poolMap;    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        init();        poolMap = new HashMap<String, Integer>();//容器        // 第一个参数为音频池最多支持装载多少个音频,就是音频池的大小,最大容量为不超过20        // 第二个参数指定声音的类型,在AudioManager类中以常量的形式定义,        // 一般指定为AudioManager.STREAM_MUSIC即可;        // 第三个参数为音频的质量,默认为0,这个参数为预留参数,现在没有实际意义,为扩展预留字段,一般传0即可        soundPool = new SoundPool(1, AudioManager.STREAM_MUSIC, 0);        // 装载音频进音频池,并且把ID记录在Map中        poolMap.put("test", soundPool.load(this, R.raw.ce, 1));        soundPool.setOnLoadCompleteListener(new SoundPool.OnLoadCompleteListener() {            @Override            public void onLoadComplete(SoundPool soundPool, int sampleId,                                       int status) {                // 每次装载完成均会回调                // 当前装载完成ID为map的最大值,即为最后一次装载完成                if (sampleId == poolMap.size()) {                    // 进入应用播放四次声音                    //第一个参数是歌曲的ID,第二个和第三个参数是左右声道的音量,值为0f--1.0f                    //第四一个参数是音频的质量,暂时没有什么意义,给0就可以                    //第五个参数是循环的次数,0为播放一次,-1为循环播放,如给3就是播放4次                    //第六个参数是播放的速率,值为0--2之间,1表示正常播放                    MainActivity.this.soundPool.play(poolMap.get("test"), 1.0f, 1.0f, 0, 3,                            1.0f);                }            }        });    }    private void init() {        button= (Button) findViewById(R.id.button);        button.setOnClickListener(this);    }    @Override    public void onClick(View v) {        switch (v.getId()){            case R.id.button:                if (soundPool != null) {                    soundPool.play(poolMap.get("test"), 1.0f, 1.0f, 0, -1, 1.0f);                }                break;        }    }}
0 0
原创粉丝点击