一种使用MediaPlayer,使用这种方式通常是播放比较长的音频,如游戏中的背景音乐。
代码如下:
- private MediaPlayer mPlayer = null;
- mPlayer = MediaPlayer.create(this,R.raw.music);
- mPlayer.setLooping(true);
- mPlayer.start();
另一种是使用SoundPool进行播放,通常都是播放短音效,比如枪声或者水滴声。
首先需要设置左声道和右声道的音量:
- private AudioManager am =null;
- float audioMaxVolumn;
- float audioCurrentVolumn;
- float volumnRatio;
- am = (AudioManager)this.getSystemService(this.AUDIO_SERVICE);
- audioMaxVolumn = am.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
- audioCurrentVolumn = am.getStreamVolume(AudioManager.STREAM_MUSIC);
- volumnRatio = audioCurrentVolumn/audioMaxVolumn;
-
- private SoundPool soundPool = new SoundPool(2,AudioManager.STREAM_MUSIC,0);
- private Map<Integer,Integer> map = new HashMap<Integer,Integer>();
- map.put(0,soundPool.load(this,R.raw.right,1));
- map.put(1, soundPool.load(this,R.raw.wrong,1));
- soundPool.play(
- map.get(key),
- volumnRatio,
- volumnRatio,
- 1,
- 0,
- 1);
Android播放音频的两种方式
原文:http://www.cnblogs.com/Free-Thinker/p/5141995.html