效果图:
//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);
}
}
“`