游戏音乐MediaPlayer和SoundPool常用的一些方法
2013-04-22 20:50
423 查看
Android游戏中常用的两种播放音乐的方式:第一:MediaPlayer,第二:SoundPool。第一种比较适合用于游戏的背景音乐,第二种适用于游戏音效(例如:子弹打中敌机出现的爆炸声)。SoundPool类播放的音乐文件不能大于1M,所以背景音乐选择SoundPool不太适合,那为什么游戏音效不选择MediaPlayer呢?因为在快速连续点击播放的情况下,MediaPlayer会出现延迟的情况,这样就会影响的游戏的用户体验(子弹打中敌机后过了几秒才发生音效)。
下面是一些SoundPool类常用的一些方法
MediaPlayer
//实例音乐播放器 mediaPlayer = MediaPlayer.create(context, R.raw.bgmusic); //设置循环播放(设置了循环,“OnCompletionListener”监听器无法监听音乐是否播放完成) mediaPlayer.setLooping(true);//设置循环播放 //获取音乐文件的总时间 musicMaxTime = mediaPlayer.getDuration(); //绑定音乐完成监听器 mediaPlayer.setOnCompletionListener(this); //开始播放 mediaPlayer.start(); //暂停播放 mediaPlayer.pause(); //停止播放 mediaPlayer.stop(); //实例管理类 AudioManager am = (AudioManager) MainActivity.instance.getSystemService(Context.AUDIO_SERVICE); //设置当前调整音量大小只是针对媒体音乐进行调整 MainActivity.instance.setVolumeControlStream(AudioManager.STREAM_MUSIC); //设置音乐的声音大小 am.setStreamVolume(AudioManager.STREAM_MUSIC, vol, AudioManager.FLAG_PLAY_SOUND); //快进和倒退 参数1:快进或倒退的时间 mediaPlayer.seekTo(time) //得到当前音乐播放的时间点mediaPlayer.getCurrentPosition()
SoundPool
SoundPool与MediaPlayer不同的是他是实例化对象 SoundPool sp = new SoundPool(int maxStreams, int streamType, int srcQuality)下面是一些SoundPool类常用的一些方法
//参数1:允许播放声音的最大值 参数2:声音类型 参数3:声音品质 SoundPool sp = new SoundPool(int maxStreams, int streamType, int srcQuality) //加载音乐文件获取其数据ID 参数1:context 参数2:资源ID 参数3:标识优先考虑的声音 int soundId_long = sp.load(context, int resId, 1); //参数1:音乐文件数据ID 参数2:左声道 0.0-1.0 参数3:右声道0.0-1.0 参数4:音乐流的优先级,0最低 // 参数5:音乐播放的次数(-1 无限循环,0表示普通播放一次,其他正整数就代表循环播放的次数) 参数6:播放速率(0.5-2.0,1代表正常播放) sp.play(soundID, leftVolume, rightVolume, priority, loop, rate) //暂停 音乐文件数据ID sp.pause(int streamID) //停止 音乐文件数据ID sp.stop(int streamID) //释放soundpool的资源 sp.release() //设置循环的次数 参数1:音乐文件数据ID 参数2:循环的次数 setLoop(int streamID,int loop) //设置播放速率 参数1:音乐文件数据ID 参数2:速率值(0.5-2.0) setRate(int streamID,float rate) //设置声音 参数1:音乐文件数据ID 参数2:左声道 参数3:右声道 setVolume(int streamID,float leftVolume,float rightVolume)
相关文章推荐
- anrdroid+unity游戏开发之c#一些常用“方法”
- anrdroid+unity游戏开发之c#一些常用“方法”
- SoundPool&&mediaplayer播放音乐
- Spark一些常用的数据处理方法-3.MLlib的模型(还没写完)
- 前端常用的一些方法
- 【Android游戏开发之八】游戏中添加音频-详解MediaPlayer与SoundPoo!并讲解两者的区别和游戏中的用途!
- 【Cocos2d-X(2.x) 游戏开发系列之一】cocos2dx(v2.x)与(v1.x)的一些常用函数区别讲解!在2.x版CCFileData类被去除等
- Android MediaPlayer 常用方法介绍
- commons-io中操作文件的一些常用方法
- 游戏常用到的sdk及接口方法文档
- ExecutorService常用方法和newFixedThreadPool创建固定大小的线程池
- VC中的一些常用方法(20条)
- ionic 开发当中,有一些常用的方法。
- ExecutorService常用方法和newFixedThreadPool创建固定大小的线程池
- jquery的一些常用方法
- iOS 字符串NSString 的一些常用方法
- Android API学习播放器SoundPool 和 MediaPlayer
- Nginx 一些常用的URL 重写方法
- Android MediaPlayer 常用方法介绍 .
- 一些非常有用的JAVA常用方法(1)