游戏中的声音, 可分为音乐和音效, 较长的音乐可作为游戏的背景音乐,迅即的音效,时间短但要求反应迅速.

一、 android  中,迅即的音效采用 android.media.SoundPool 实现, 该类将声音文件加载到内存中,出于性能考虑, 一般只将短于7秒的声音文件用它播放.

1. 加载声音文件 通过 load(Context c, int resId,  int  priority) 方法

2.  播放声音文件通过 play(int sundID,  float leftVolume,  float  rightVolume,  int  priority,  int  loop,  float   rate)  方法,这里soundID: 播放的音乐ID, leftVolume: 左声道音量, rightVolume:  右声道音道, priority:  优先级,0为最低, loop: 循环次数,0 不循环,-1 为永远循环, rate: 回放速度, 取值在0.5~2.0 之间, 1为正常速度.

暂停 为pause( int  streamID) 方法.

-----------------------------------------------------

以下为一个SoundPool 示例,主要代码为:

public void initSoundPool() { // 初始化声音池sp = new SoundPool(5, // maxStreams参数,该参数为设置同时能够播放多少音效AudioManager.STREAM_MUSIC, // streamType参数,该参数设置音频类型,在游戏中通常设置为:STREAM_MUSIC0 // srcQuality参数,该参数设置音频文件的质量,目前还没有效果,设置为0为默认值。);spMap = new HashMap<Integer, Integer>();spMap.put(1, sp.load(this, R.raw.attack02, 1));spMap.put(2, sp.load(this, R.raw.attack14, 1));
}public void playSound(int sound, int number) { // 播放声音,参数sound是播放音效的id,参数number是播放音效的次数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), // 播放的音乐idvolumnRatio, volumnRatio, 1, // 优先级,0为最低number, // 循环次数,0无不循环,-1无永远循环1 // 回放速度 ,该值在0.5-2.0之间,1为正常速度);}b1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {playSound(1, 1); // 播放第一首音效,循环一遍Toast.makeText(MyActivity.this, "播放音效1", Toast.LENGTH_SHORT).show();}});b1Pause.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {sp.pause(spMap.get(1));Toast.makeText(MyActivity.this, "暂停音效1", Toast.LENGTH_SHORT).show();}});

具体代码请参见  SoundPool_3_1   工程

示意图:

二、背景音乐播放技术

背景音乐通常播放时间较长,文件 占用空间大, 通常使用MediaPlayer类, 及声音控制类 AudioManager

MediaPlayer 类是Android 用来控制音频、视频的类. 它有一个状态图,如下所示,Idle状态为 空闲状态,当加载了音频资源后进入Initialized 状态,之后调用prepare() 进入prepared 状态. 至于其他状态这里不多介绍了,可自行查阅 API.

相关示例代码请参见   Audio_3_2 工程, 示意图如下:

android 游戏中的声音相关推荐

  1. Android - 游戏中的声音

    Android 3D游戏开发 第三章 介绍游戏中的声音.音效.存储技术,以及2D场景绘制的利器-SurfaceView 按照声音的功能不同,可以把它分为音乐和音效两部分. SoundPool类用于管理 ...

  2. 使用Wwise在3D RPG游戏中的声音设计思路

    使用Wwise在3D RPG游戏中的声音设计思路 https://blog.audiokinetic.com/zh/how-to-use-wwise-in-3d-rpg-game/ 大家好,随着Wwi ...

  3. 游戏中重复声音的音效种类划分

    无论什么类型的游戏,在背景音乐中都会出现重复的现象,为了使重复变得悄无声息,让玩家无法察觉,则需要依靠音效的强大功能,具体可分为以下几个方面: 接口声音;这个声音是用来游戏音效接口的,在整个游戏界面声 ...

  4. python游戏背景音乐循环_Python:pygame游戏编程之旅六(游戏中的声音处理)

    一款人性化的游戏中缺少不了声音,比如角色挂时惨叫一声,或PK时武器交锋的声音,还有就是英雄出场时的背景音乐,无不涉及到声音,本节我们就来看一下pygame中如何控制声音,下面是一个例子,但博客上传不了 ...

  5. android系统设置中修改声音与振动,声效设置全在这了解手机声音和振动选项

    镜花水月 声音类别划分 不同品牌手机的" 声音和振动"选项大同小异,本文我们以荣耀V30为例讨论(图1).Android系统的声音输出主要来自媒体(对应听歌.看视频和玩游戏时的音量 ...

  6. 游戏中的声音播放(1)

    好的游戏,一定离不开美妙的音乐支持,但是每款机型对声音的支持能力多有所不同,因此可以在使用之前先探测一下该款手机支持的多媒体格式,当然这个步骤不是必须的.       下面的代码是针对E680i编写的 ...

  7. android 模拟器声音设置,逍遥安卓模拟器运行游戏过程中没有声音怎么解决

    有用户反映,使用逍遥安卓模拟器运行游戏过程中突然没有了声音,重新加载之后还是这样,这是为什么呢?针对这一问题,小编整理了具体的解决方法,大家可以学习保存. 逍遥安卓模拟器运行游戏过程中没有声音怎么解决 ...

  8. libgdx教程_使用libgdx进行Android游戏开发–一天中的原型,第1a部分

    libgdx教程 在本文中,我将绕开游戏引擎和组件的构建模块,并演示如何使用libgdx库快速制作游戏原型. 您将学到什么: 创建一个非常简单的2D Shooter Platformer游戏. 完整的 ...

  9. libgdx开发指南_使用libgdx进行Android游戏开发–一天中的原型,第1a部分

    libgdx开发指南 在本文中,我将绕开游戏引擎和组件的构建模块,并演示如何使用libgdx库快速制作游戏原型. 您将学到什么: 创建一个非常简单的2D Shooter Platformer游戏. 完 ...

最新文章

  1. xlrd.biffh.XLRDError: Excel xlsx file; not supported
  2. 谷歌 AI 编舞师,连张艺兴最喜欢的 Krump 都不在话下
  3. NandFlash详述【转】
  4. “智慧城市”背后的安全隐患
  5. mondb 常用命令学习记录
  6. 模型难复现不一定是作者的错,最新研究发现模型架构要背锅丨CVPR 2022
  7. python爬百度翻译-python爬虫实现百度翻译
  8. 垂死挣扎还是涅槃重生 -- Delphi XE5 公布会归来感想
  9. pandas concat_pandas合并几百个csv只需要一分钟?(含代码,拿去即可用)
  10. winform 统计大量数据重复的元素个数_DAY10——推断统计之概率与概率分布:常见的离散型概率分布...
  11. java 单链表反转_Java实现单链表翻转详解
  12. 百度地图 json 区域 数据_获取百度地图可视区域范围的数据
  13. win7将html设为桌面背景,win7系统将桌面背景设置为自己心仪类型的方法
  14. EasyUI使用基础教程
  15. 【4分频电路 -verilog】
  16. 有没有计算机网课,有没有电脑录制视频工具可以录制网课?
  17. Gvim计数器模板经典练习
  18. 全倒装超微间距COB(COB微间距)显示主导新型显示技术。
  19. 如何倾听客户之声?你需要的不仅仅是调研
  20. 惯性导航算法(五)-等效旋转矢量+双子样算法

热门文章

  1. Ganymed ssh小使用
  2. 使用hexo在butterfly主题中开启看板娘配置教程(包括模型展示)
  3. Android逆向工程 初篇 1
  4. 计算机现代教育三大特征,现代教育技术作业1
  5. VUE项目开发,使用canvas实现图片签名编辑手写板功能
  6. 蓝桥杯java组多少分能拿奖_记 2019蓝桥杯校内预选赛(JAVA组) 赛后总结
  7. 【2020年第七次人口普查】省市县三级人口基本情况
  8. EmEditor正则匹配中文
  9. WordPress自定义文件上传路径的方法
  10. 分享111个ASP上传下载源码,总有一款适合您