Android-Soundpool(音频池)实例

效果图:
Android-Soundpool(音频池)实例_第1张图片

//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);

    }
}

“`

你可能感兴趣的:(Android-Soundpool(音频池)实例)