android多媒体SoundPool

之前学习过了MediaPlayer用于播放手机音乐,但是在手机中很多的提示音并不是使用MediaPlayer来播放的比如短信铃声,通知铃声,,android中使用SoundPool来播放小的音频文件;

下面一起学习SoundPool的使用 【1】先搭界面设置一个按钮用于播放

【2】得到SoundPool

查看API,得知要得到SoundPool根据版本不同有两种方式 21版本以前使用 SoundPool pool =new SoundPool(int maxStreams, int streamType, int srcQuality)

21版本之后:使用Builder来生成

【3】调用load方法加载音频

【4】调用play方法 public final int play (int soundID, float leftVolume, float rightVolume, int priority, int loop, float rate)

参数介绍 Parameters soundIDa soundID returned by the load() function leftVolume left volume value (range = 0.0 to 1.0)左声道 rightVolumeright volume value (range = 0.0 to 1.0)右声道 priority stream priority (0 = lowest priority)优先级 loop loop mode (0 = no loop, -1 = loop forever)循环与否 rate playback rate (1.0 = normal playback, range 0.5 to 2.0)播放返回的速度

注意事项

如果你的没有声音,那是因为加载音频需要时间,不要把load和play放在一起

下面是源码

{private Button mButton;private SoundPool pool = null;private int id;(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mButton = (Button) findViewById(R.id.button_sound);//必须放在外面因为加载音频需要时间不然会没有声音id= initSound();mButton.setOnClickListener(new View.OnClickListener() {(View v) {playSound();}});}() {pool.play(id, 1, 1, 0, -1, 1);}() {if (Build.VERSION.SDK_INT > 21) {SoundPool.Builder builder = new SoundPool.Builder();builder.setMaxStreams(2);AudioAttributes.Builder builder1 = new AudioAttributes.Builder();builder1.setLegacyStreamType(AudioManager.STREAM_MUSIC);builder.setAudioAttributes(builder1.build());pool = builder.build();} else {//21版本以前使用SoundPool(int maxStreams, int streamType, int srcQuality)pool = new SoundPool(2, AudioManager.STREAM_MUSIC, 0);}return pool.load(getApplicationContext(), R.raw.outgoing, 1);}}

孤单寂寞与被遗弃感是最可怕的贫穷

android多媒体SoundPool

相关文章:

你感兴趣的文章:

标签云: