Unity FMOD 音效失真变形

  • 【1】SampleRate差异导致的失真
  • 【2】OpenSL的支持导致的音效抖动和延迟问题

【1】SampleRate差异导致的失真

环境:Unity 2017.4.14f1 (64-bit), FMOD Studio 1.10.02
原因:SampleRate初始化设置与实际音效存在差异导致音效失真
解决方法:配置合适的Default Settings的SampleRate以及代码默认值,比如44100
注:SampleRate Platform Default:Editor:48000, Mobile:24000
注意FMOD Setting配置,以及代码默认值,如下

     // 默认值(48000)可依据实际修改// --------   Sample Rate ----------------------public int GetSampleRate(FMODPlatform platform){return GetSetting(SampleRateSettings, platform, 48000);}

【2】OpenSL的支持导致的音效抖动和延迟问题

问题转自 Unity FMOD音效抖动和延迟问题解决方案 , 记录下,并未遇到及验证

问题描述

声音延迟问题可以分为两种:一种是抖动问题,例如一个音效本来是如下的序列:1234567,抖动的效果就是1-2-3-4-5-6-7,其中’-'表示声音的停顿,就像游戏界面的卡帧现象一箱。另一种现象就是延迟现象,还是上面你的例子,延迟后的效果就是–1234567,表现就是点击一个按钮播放声音时要等一会音效才会出来。

问题出现的原因

这个可以参考 http://km.oa.com/articles/show/192778?kmref=search 的介绍,因为android系统默认使用OpenSL进行音频输出,而各个厂商对OpenSL的支持不是完美的,因此默写机型会出现这些问题。
在我们项目的开发过程中,遇到有问题的机型包括:魅族MX3, samsung GT-S7898,
samsung GT-S7562i, 华为G7, 荣耀4X 和 红米2A。

问题解决方案和代码设置

问题的解决方案和上面的帖子介绍的方法类似,但是在Unity中有点特殊。还是要在FMOD初始化之前设置好FMOD的输出方式。
问题是Unity本身自带的音频系统也是使用FMOD的,该FMOD模块使用了FMOD_OUTPUTTYPE_AUDIOTRACK这种输出方式,因此当我们将我们使用的FMOD设置成这种输出方式后,所有的音效都会听不见。
因此我们使用的输出方式是sys.setOutput(FMOD.OUTPUTTYPE.AUTODETECT,添加的部分代码如下:

#if UNITY_ANDROID && !UNITY_EDITOR { FMOD.System sys = null; ERRCHECK(system.getLowLevelSystem(out sys)); if (null != sys) { if (FMOD.RESULT.OK != sys.setOutput(FMOD.OUTPUTTYPE.AUDIOTRACK)) { sys.setOutput(FMOD.OUTPUTTYPE.AUTODETECT); }} }
#endif

注意这点代码需要在FMOD.Studio.System.initialize函数之前执行,否则不生效。
PS: 下面的方案是之前的方案,该方案针对出问题的机型设置DSP Buffer的大小,可以解决卡顿的问题,但是会带来延迟的问题,延迟会在0.5s左右。上面的方案目前位置没有发现其他问题。暂时把不好的解决方案也贴在下面。

之前 问题解决方案

DSP BUFFER SIZE的设置需要在FMOD.Studio.System::initialize函数之前执行,我的习惯是在FMOD_StudioSystem.cs中FMOD_StudioSystem::Init函数中进行设置,设置代码如下:

#if UNITY_ANDROIDFMOD.System lowLevelSystem;result = system.getLowLevelSystem(out lowLevelSystem);if (result != FMOD.RESULT.OK){ FMOD.Studio.UnityUtil.LogError("Unable to get lowlevel system");}if (lowLevelSystem != null){ FMOD.OUTPUTTYPE outputType; lowLevelSystem.getOutput(out outputType); result = lowLevelSystem.setDSPBufferSize(2048, 4); if (result != FMOD.RESULT.OK) { Debug.LogError("ERROR: Set DSP Buffer size error:" + result); } }
#endif

Unity FMOD 音效失真变形相关推荐

  1. Unity引擎音效系统简介

    Unity引擎音效系统简介 音频文件设置选项: Force To Mono:多声道转单声道 Normalize:当强制转为单声道时,混合过程中被标准化. Load In Background:在后台加 ...

  2. Unity资源-音效初识

    比特率(bit/s) 音视频的数字信号单位,值越大,信号传递越快,对应的文件也越大,内存占用也会大. 单声道和多声道 Unity大部分音效使用场景不需要用到多声道和立体声,类似于场景环绕或者山洞等环境 ...

  3. UNITY中FMOD音效插件使用

    在UNITY中使用FMOD插件,直接控制音乐,音效. FMOD下载 FMOD STUDIO的版本与插件要保持一致. FMOD STUDIO使用教程 UNITY引入package FMOD - Edit ...

  4. Unity 骨骼动画模型变形

    目录 一.问题描述 二.问题截图 三.解决办法 检查办法1: 检查办法2: 一.问题描述 从Maya导出骨骼动画至Unity后,在播放动画时的某一帧发生形变.产生变形的原因,是由于模型权重问题导致骨骼 ...

  5. Unity插件——Mega-Fires Mesh变形插件使用心得

    插件使用--Mega-Fires Mesh变形插件使用心得 一,开发环境 二,插件使用前准备工作 三,使用流程 四,Mega-Fires的常见组件介绍 1.Bend:弯管 2.Bubble:泡沫 3. ...

  6. Unity添加音效与音效衰减

    unity音效 unity支持的音频格式有WAV.AIFF.Ogg Vorbis.Mp3等,Mac/PC平台音频会被压缩成Ogg Vorbis格式,这种格式的音质不会降低:移动端会被压缩成MP3格式, ...

  7. Unity学习——音效系统+音频过滤器+音频混响区+音频管理器

    音频源(Audio Source)和音频监听器(在Main Camera下面) 声明:      AudioSource audio001; 关联:      audio001 = this.GetC ...

  8. 关于 Unity 音乐音效管理

    本文转载自:http://blog.csdn.net/microsoftMSDNNET/article/details/47273239 在实战项目中,音乐音效的好坏肯定是一个玩家对此项目评定的一个因 ...

  9. 关于Unity音乐音效管理

    在实战项目中,音乐音效的好坏肯定是一个玩家对此项目评定的一个因素之一.所以,有必要对音乐音效做出一个统一的管理. 首先,我把几个音效放到了Resouces的Audios文件夹下,方便动态加载. 之后, ...

最新文章

  1. 锦上添花DataGrid!
  2. 从 LRU Cache 带你看面试的本质
  3. mini2440通过JLink烧写BootLoader到Nor Flash
  4. 李宏毅线性代数11: 正交(Orthogonality)
  5. 学Java发展前景好的三个原因
  6. 注册表被黑客篡改 怎样修复_使用快速注册表黑客设置Office 2007配色方案
  7. python元类单例_python面向对象和元类的理解
  8. elemen-UI 组件:input输入框 的 样式、代码、效果图对比 - 应用篇
  9. android tab pageview,Android Fragment在ViewPager中到底经历了什么?
  10. python pandas series_Python数据分析-pandas之Series
  11. delphi mysql 加密_Delphi对Access文件加密
  12. 可以掉落和滑动的星星
  13. CREO:CREO软件之零件【模型】之操作、基准、形状、扫描、工程、编辑、曲面的简介及其使用方法(图文教程)之详细攻略
  14. Codevs_P1907HDU_P1565 方格取数3(最大流)
  15. [乡土民间故事_徐苟三传奇]第四一回_放牛娃巧娶富家女
  16. 互联网:互联网进入下半场,这场赛怎么比?
  17. 整数、长整型、浮点型、字符串
  18. 载谭 Binomial Sum:多项式复合、插值与泰勒展开
  19. 关于促销活动页面测试的那些事儿
  20. 价格奥秘-在超市遇见亚当斯密--第二章 谁在决定一支铅笔的价格?

热门文章

  1. 2021城阳一中高考成绩查询,2021年青岛高考状元是谁分数多少分,历年青岛高考状元名单...
  2. KNN算法原理通俗理解
  3. 深入浅出KNN算法(一) KNN算法原理
  4. 3D模型欣赏:甲壳虫 汽车 材质处理细致 划痕真实
  5. sourceInsight4破解笔记
  6. 最短路径 Dijkstra算法
  7. Mac环境下生成ssh密钥
  8. J2EE之旅(入门)
  9. boot返回码规范 spring_SpringBoot自定义异常体系和错误码规范定义(个人经验总结)...
  10. 职场十大杀手追袭白领健康。