下次自动登录
现在的位置:
& 综合 & 正文
Android:游戏中添加音频
游戏开发中,通过资料和书籍了解到在有两种播放音频形式可以用在我们的游戏开发中,
第一个:MediaPlayer 类 ;第二个:SoundPool 类!
PS:当然还有一个JetPlayer 但是 播放的文件格式比较麻烦
Android OS中,如果你去按手机上的调节音量的按钮,会分两种情况,
一种是调整手机本身的铃声音量,一种是调整游戏,软件,音乐播放的音量
MainActivity.instance.setVolumeControlStream(AudioManager.STREAM_MUSIC);
设定调整音量为媒体音量,当暂停播放的时候调整音量就不会再默认调整铃声音量了
一、 MediaPlayer 播放音频的实现步骤:
1. 调用MediaPlayer.create(context, R.raw.himi); 利用MediaPlayer类调用create方法并且传入通过id索引的资源音频文件,得到实例;
2. 得到的实例就可以调用 MediaPlayer.star();
二、 SoundPlayer 播放音频的实现步骤:
new出一个实例 ;
new SoundPool(4, AudioManager.STREAM_MUSIC, 100);第一个参数是允许有多少个声音流同时播放,第2个参数是声音类型,第三个参数是声音的品质;
2.loadId = soundPool.load(context, R.raw.himi_ogg, 1);
3. 使用实例调用play方法传入对应的音频文件id即可!
下面讲下两个播放形式的利弊:
使用MediaPlayer来播放音频文件存在一些不足:
例如:资源占用量较高、延迟时间较长、不支持多个音频同时播放等。
这些缺点决定了MediaPlayer在某些场合的使用情况不会很理想,例如在对时间精准度要求相对较高的游戏开发中。
最开始我使用的也是普通的MediaPlayer的方式,但这个方法不适合用于游戏开发,因为游戏里面同时播放多个音效是常有的事,用过MediaPlayer的朋友都该知道,它是不支持实时播放多个声音的,会出现或多或少的延迟,而且这个延迟是无法让人忍受的,尤其是在快速连续播放声音(比如连续猛点按钮)时,会非常明显,长的时候会出现3~5秒的延迟,【使用MediaPlayer.seekTo() 这个方法来解决此问题】;
相对于使用SoundPool存在的一些问题:
1. SoundPool最大只能申请1M的内存空间,这就意味着我们只能使用一些很短的声音片段,而不是用它来播放歌曲或者游戏背景音乐(背景音乐可以考虑使用JetPlayer来播放)。
2. SoundPool提供了pause和stop方法,但这些方法建议最好不要轻易使用,因为有些时候它们可能会使你的程序莫名其妙的终止。还有些朋友反映它们不会立即中止播放声音,而是把缓冲区里的数据播放完才会停下来,也许会多播放一秒钟。
3. 音频格式建议使用OGG格式。使用W***格式的音频文件存放游戏音效,经过反复测试,在音效播放间隔较短的情况下会出现异常关闭的情况(有说法是SoundPool目前只对16bit的W***文件有较好的支持)。后来将文件转成OGG格式,问题得到了解决。
4.在使用SoundPool播放音频的时候,如果在初始化中就调用播放函数进行播放音乐那么根本没有声音,不是因为没有执行,而是SoundPool需要一准备时间!?。当然这个准备时间也很短,不会影响使用,只是程序一运行就播放会没有声音罢了,所以我把SoundPool播放写在了按键中处理了、备注4的地方
怎么才知道一首歌曲播放完
PlaybackCompleted状态:文件正常播放完毕,而又没有设置循环播放的话就进入该状态,并会触发OnCompletionListener的onCompletion()方法。此时可以调用start()方法重新从头播放文件,也可以stop()停止MediaPlayer,或者也可以seekTo()来重新定位播放位置。
注意:1、 别忘记绑定操作! mp.setOnCompletionListener(this);
2、如果你设置了循环播放
mp.setLooping(true); 的话,那么永远都不会***到播放完成的状态!!!!这里一定要注意!
在初始化的时候不要忘记setFocusableInTouchMode(true);触屏模式获取焦点,比较类似 setFocusable(true);
----setFocusable(true);//此方法是用来响应按键!如果是自己定义一个继承自View的类,重新实现onKeyDown方法后,只有当该View获得焦点时才会调用onKeyDown方法,Actvity中的onKeyDown方法是当所有控件均没有处理该按键事件时,才会调用.
&&&&推荐文章:
【上篇】【下篇】查看: 2060|回复: 9
骑士, 积分 2138, 距离下一级还需 862 积分
精华0帖子威望1 点积分2138 点注册时间最后登录
自己下了几个老的SS游戏,里面的音频文件都是mp3和ogg文件,但是刻录游戏碟的时候要把mp3和ogg文件转变成wave文件才行,自己转成wave文件之后刻录游戏碟,发现游戏里面有爆音现象,实在难以忍受!不知道各位有什么好的软件把mp3和ogg文件转变成wave格式啊?
另外再问一个问题:就是刻录SS游戏是否要把mp3和ogg文件转变成wave格式,不转变格式直接刻录是否可以呢?
先谢谢了 .
战士, 积分 1056, 距离下一级还需 444 积分
精华0帖子威望0 点积分1056 点注册时间最后登录
Fair Stars Audio Converter
默认为44100HZ即可
ISO+MP3刻盘的方法如下:
战士, 积分 1056, 距离下一级还需 444 积分
精华0帖子威望0 点积分1056 点注册时间最后登录
改区域用这个软件
Saturnpatch.exe
佣兵, 积分 732, 距离下一级还需 18 积分
精华0帖子威望0 点积分732 点注册时间最后登录
千千静听不也可以转换W***E吗?
求败者, 积分 22121, 距离下一级还需 7879 积分
精华0帖子威望0 点积分22121 点注册时间最后登录
去这个站下,下来的基本都是iso+wav和APE,速度还不错,不过只能单任务
战士, 积分 1056, 距离下一级还需 444 积分
精华0帖子威望0 点积分1056 点注册时间最后登录
其实老外比较喜欢用ISO+mp3(ogg)的格式上传光盘镜像,上传的快,下载的也快
有的SS游戏的音轨(W***)占了很大的空间,这种方法能把这种游戏从5、6百M降到几十M
求败者, 积分 22121, 距离下一级还需 7879 积分
精华0帖子威望0 点积分22121 点注册时间最后登录
如果只是MP3格式的ROM,即使用模拟器玩,下来也要先转换成wav,否则cue都无法mount.
骑士, 积分 2138, 距离下一级还需 862 积分
精华0帖子威望1 点积分2138 点注册时间最后登录
谢谢了自己有空试一下
Powered by
扫描二维码
下载 A9VG 客户端(iOS, Android)后使用快捷导航没有帐号?
查看: 955|回复: 82
求盖伦怎么才能玩好 如何帮助队友
[火星游客]*1MhPG
3速+狂徒3+分叉+日炎
多少级了?
我比尔30,现在玩新区
[山西游客]*sT6Mp
前期攻击&&后期肉
[福建游客]*Rd7Li
多兰戒子也行
多兰出门&&中期 3速&&2多兰& &火衣&&粪叉
[浙江游客]*azVsY
或者多兰剑
多兰盾都可以啊
初装要求不高
关键是打法
火衣可以不要 性价比对盖伦不是很高
火衣主要是给木木 和乌龟用的
就是堆肉啊
躲草丛 谁来Q谁
让对手不敢出来
我出过5狂徒的盖伦
后期秒回60+到70+血 好像
盖伦输出不怎么重要 Q的沉默 大招秒少血就好了
盖伦的输出 顺风局才会出现
逆风不可能玩输出
队伍里输出有得是
盖伦暴击低
没必要走输出
盖伦的Q1及 100+伤害 +沉默
可以限制对手 帮助队友了
中间攒几个人头
打法不只一种
办肉的或走狂徒+粪叉
[四川游客]*1qCIw
那到底你想给他推荐什么呢
还是很重要吧
/{dx没看视频儿么&&哥 有四把多兰啊
他们都是菜
5狂徒 您挺能打的嘛
他们在说2个不同的打发
但是两位帅哥在掐呢
[火星游客]*1q1Gy
出门多兰剑,回家补鞋子,然后3多兰+3速鞋,粪叉狂徒荆棘军团盾再狂徒。我玩盖伦是这样出装的。盖伦需要有输出否则你的队友就惨了。
盖伦没输出直接被无视,人家灭完你队友轻松杀你。5狂徒盖伦真心会被喷
逆风必须有输出
没输出逆风就不用继续了
盖伦的输出装很有效率,同样装备盖伦比剑圣蛮王输出更高
现在都买眼的,进草丛没有价值
闪避鞋不能叠加的,而且不久会被取消
[上海游客]*1ddFm
有盖伦在,前期还打成逆风。已经坑死了,再坑也无所谓了。
有盖伦在,前期必定要打的强势。
前期盖伦走双人路呀,必定是压人拿血的。
直接进草丛。然后等对面压线过来,Q一下,虚弱,一起点。
[江苏游客]*1sfEG
有那么难吗
有需要+我QQ我用图片详细告诉你
[火星游客]*vYWG8
四多兰,相当拉风,要想牛逼就得四多兰
听哥哥我的,中期四多兰,后期6个闪避鞋,你无敌了
前期攻击&&后期肉
3速+狂徒3+分叉+日炎
比尔机沃特
多少级了?
我比尔30,现在玩新区
我出门带多兰可以吗
需要金钱:1100
手机盒子客户端点击或扫描下载
Powered by