1_OpenGL ES 游戏声音
1.1 音效
音效特点——快、短
android.media.SoundPool(加载到内存,一般小于7秒的声音用于该技术)
SoundPool(int maxStreams, int streamType, int srcQuality)
maxStreams 最多同时能够播放多少音效
streamType 设置音频类型,在游戏中通常设置为:AudioManager.STREAM_MUSIC
srcQuality 设置音频文件的质量,目前还没有效果,设置为0为默认值。
//加载
int android.media.SoundPool.load(Context context, int resId, int priority)
context 上下文
resId 声音资源ID
priority 优先级,现在没有用,设置为1
如:
sp.load(this, R.raw.attack02, 1)
//播放
int android.media.SoundPool.play(int soundID, float leftVolume, float rightVolume, int priority, int loop, float rate)
soundID //播放的音乐id 也就是int android.media.SoundPool.load(Context context, int resId, int priority) 反回的ID
leftVolume //左声道音量
rightVolume //右声道音量
priority //优先级,0为最低
loop //循环次数,0无不循环,-1无永远循环
rate //回放速度,该值在0.5-2.0之间,1为正常速度
如:
AudioManager am=(AudioManager)this.getSystemService(this.AUDIO_SERVICE);//实例化AudioManager对象
float audioMaxVolumn=am.getStreamMaxVolume(AudioManager.STREAM_MUSIC); //返回当前AudioManager对象的最大音量值
float audioCurrentVolumn=am.getStreamVolume(AudioManager.STREAM_MUSIC);//返回当前AudioManager对象的音量值
float volumnRatio=audioCurrentVolumn/audioMaxVolumn;
sp.play(
spMap.get(sound), //播放的音乐id
volumnRatio, //左声道音量
volumnRatio, //右声道音量
1, //优先级,0为最低
number, //循环次数,0无不循环,-1无永远循环
1 //回放速度,该值在0.5-2.0之间,1为正常速度
);
//暂停
void android.media.SoundPool.pause(int streamID) 暂停
streamID //音乐id,也就是int android.media.SoundPool.load反回的ID