Android-Soundpool(音频池)实例

来源:互联网 发布:京东运营和淘宝运营 编辑:程序博客网 时间:2024/05/16 16:22

效果图:
这里写图片描述

//SoundPool(声音池),所处于"android.media.SoundPool"包下,主要用于播放一些较短的声音片段,支持从程序的资源或文件系统加载。与MediaPlayer相比,SoundPool的优势在于CPU的资源占用量低、反应延迟小,并且可以加载多个音频到SoundPool中,通过资源ID来管理。另外SoundPool还支持执行设置声音的品质、音量、播放比率等参数。package com.example.android26_medioplay;import android.media.AudioManager;import android.media.SoundPool;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;/** * 音频池 * 可以播放多个音乐 大小不超过1M */public class SoundPollActivity extends AppCompatActivity {    private SoundPool soundPool;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_sound_poll);        //参数1:表示最多可播放声音个数        //参数2:声音的类型        //参数3:播放质量目前为0        soundPool = new SoundPool(4, AudioManager.STREAM_MUSIC,0);        //设置加载完成事件        soundPool.setOnLoadCompleteListener(new SoundPool.OnLoadCompleteListener() {            @Override            public void onLoadComplete(SoundPool soundPool, int i, int i1) {                //播放                //参数1:声音ID                //参数2:左声道(1,有声音 0无声音)                //参数3:右声道                //参数4:优先级                //参数5:循环                //参数6:速率                soundPool.play(i,1,1,1,-1,1);            }        });    }    public void chike(View view){        soundPool.load(this,R.raw.rooster,1);    }    public void two(View view){        soundPool.load(this,R.raw.crickets,1);    }    public void three(View view){        soundPool.load(this,R.raw.roar,1);    }    public void four(View view){        soundPool.load(this,R.raw.chimp,1);    }    public void dog(View view){        soundPool.load(this,R.raw.dogbark,1);    }}

“`

1 0