实现音乐与音效同时播放的例子很多,而且写的很复杂,我这里写这个目的是希望我很久以后再用到时可以在这个简单的程序基础上加工。
第一步:初始化MediaPlayer,Soundpool.
public void initSounds(){//初始化声音的方法
mMediaPlayer = MediaPlayer.create(this, R.raw.backsound);//初始化MediaPlayer
soundPool = new SoundPool(4, AudioManager.STREAM_MUSIC, 100);
soundPoolMap = new HashMap<Integer, Integer>();
soundPoolMap.put(1, soundPool.load(this, R.raw.right, 1));
}
要实现循环播放只需添
mMediaPlayer.setLooping(true);
第二步:实现播放功能
public void playSound(int sound, int loop) {
AudioManager mgr = (AudioManager)this.getSystemService(Context.AUDIO_SERVICE);
float streamVolumeCurrent = mgr.getStreamVolume(AudioManager.STREAM_MUSIC);
float streamVolumeMax = mgr.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
float volume = streamVolumeCurrent/streamVolumeMax;
soundPool.play(soundPoolMap.get(sound), volume, volume, 1, loop, 1f);
} 第三步:调用写好的函数,也是我最喜欢的。
1:播放
if(!mMediaPlayer.isPlaying()){
mMediaPlayer.start();//播放声
}
2:暂停
if(mMediaPlayer.isPlaying()){
mMediaPlayer.pause();//暂停声音
}
3: SoundPool播放
soundPool.playSound(1, 0);
4: SoundPool暂停
soundPool.pause(1);