Unity3D的音效相关介绍
大家好,今天小白给大家分享下我最近遇到的与unity音频相关的两个问题以及解决方式,欢迎一起交流学习。
一、关于声音的多普勒等级?
1、问题引入
在制作音乐播放器时,有一项是为了展示3D声音的效果,需要在移动端触摸以拖动音频源,在拖动音频源过程中,会发现有轻微的杂音,起初没有引起注意。后来展示时同事提出:在移动的过程中为什么有杂音呢?于是接下来,就详细了解Audio Source中与音频相关的一些参数。
在Audio Source的3D Sound Settings栏有个Dropper Level参数,根据Unity圣典给出的解释是:
Determines how much doppler effect will be applied to this audio source (if is set to 0, then no effect is applied).决定了多少多普勒效应将被应用到这个音频信号源。(如果设置为0,就是无效果)
在Unity中,将鼠标放在Doppler Level处,可以看到:Specifies how much the pitch is changed based on the relative velocity between AudioListener and AudioSource. 根据AudioListener和AudioSource之间的相对速度指定音高的变化程度。
好了,到这里我们应该就明白了,移动音频源过程中产生杂音的根本原因了,即:多普勒效应。
2、什么是声音的多普勒效应?
生活中声音的多普勒效应非常容易感受到,嗡嗡的火车声是最令人深刻的。那么声波的多普勒效应的原理到底是什么呢?
我们知道人能听到声音的原因是声波传递到了耳朵中,而能分辨出音调的高低是因为波的频率的不同。
那么现在假设我们站在某处不动,一辆车也在某处鸣笛那么此时声音的传播就是正常的!但当这辆车高速向我们驶来时,就好像“波在赶着波”这就导致我们单位时间接收到的波峰变多了,也就成为了频率变高了!同理当这辆车加速原理我们时,就相当于波“加速远离”我们,导致我们单位时间“接收的波峰”变少了,也就是频率变低了!这就会使我们听到三种音调不同的声音!
其实简单来说就是当声源和测试者的相对位置靠近时,测试者听到的声音的频率增大;而相对位置增加时,测试者听到得声音的频率就会变小。其实道理很简单的。(当移动音频源(AudioSource)时,它与AudioListener之间的相对距离在改变,所以会产生多普勒效应,从而改变了听到的声音的频率,就出现了所谓的杂音。)
3、怎么解决?
知道了产生问题的原因,根据Unity圣典:Determines how much doppler effect will be applied to this audio source (if is set to 0, then no effect is applied),将Dropper Level设置为0,这时再移动音频源,就不会因为多普勒效应产生杂音了。
二、关于音频播放时声音卡顿现象?
1、问题描述
在音频播放过程中,出现了声音卡顿很严重的现象,起初并没有这种问题,后来仔细回想了之前的操作,发现是出于减小apk的体积的目的,修改了音频的加载方式(Load Type),从之前的:DeCompress On Load(默认的)修改到了Streaming,就导致了声音播放卡顿的现象。
2、Unity中音频剪辑加载方式?
Load Type:(加载类型)
DecompressOnLoad : 音效文件加载后为解压缩状态,好处是耗费CPU少。
CompressedInMemory :音效文件在内存中保持压缩状态,占用内存少,但是耗费CPU,当使用该音效时首先要CPU对其进行解压,然后才能使用。
Streaming:当播放该音效时,从磁盘以流的形式加载音效数据,好处,占用内存最少,因为只有很少的缓冲数据占用内存。
3、问题解决
将LoadType修改成默认值即可解决音频剪辑播放卡顿现象。
三、总结
本篇主要是简单介绍了遇到的两个与音效相关的问题,简单整理了下分享出来,欢迎一起交流学习。
Unity3D的音效相关介绍相关推荐
- pthread相关介绍
pthread相关介绍 int pthread_create(pthread_t *tid, const pthread_attr_t *attr, void*(*start_routine)(voi ...
- axios队列 vue_(十三 )Vue 封装axios(四种请求)及相关介绍
Vue 封装axios(四种请求)及相关介绍 首先axios是基于promise的http库 promise是什么? 1.主要用于异步计算 2.可以将异步操作队列化,按照期望的顺序执行,返回符合预期的 ...
- python映射类型-python映射类型的相关介绍
映射类型是一类可迭代的键-值数据项的组合,提供了存取数据项及其键和值的方法,在python3中,支持两种无序的映射类型:内置的dict和标准库中的collections.defaultdict类型. ...
- Android Pmem相关介绍
http://fangjian0518.blog.163.com/blog/#m=0 Android Pmem相关介绍 2011-10-18 09:40:26| 分类: Android PMEM | ...
- Android O 前期预研之二:HIDL相关介绍
在上一篇博客里,大致介绍了下Android O 中treble计划的一些背景与相关基本架构,这一篇中跟大家一起来探讨下HIDL相关的内容. Android HAL类型 在此之前的ANDROID版本当 ...
- 程序如何在两个gpu卡上并行运行_深度学习分布式训练相关介绍 - Part 1 多GPU训练...
本篇文章主要是对深度学习中运用多GPU进行训练的一些基本的知识点进行的一个梳理 文章中的内容都是经过认真地分析,并且尽量做到有所考证 抛砖引玉,希望可以给大家有更多的启发,并能有所收获 介绍 大多数时 ...
- mysqld命令相关介绍
https://www.cnblogs.com/shymen/p/8850655.html mysqld命令相关介绍 mysqld --verbose --help 显示服务器选项和可配置变量一览 从 ...
- 什么是写一个java类,Java什么是类?class的相关介绍
本章给大家带来Java什么是类?class的相关介绍,让大家了解关于类(class)的一些知识.有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助.class Point{ construc ...
- Nginx工作原理及相关介绍
Nginx工作原理及相关介绍 一.Nginx工作原理与模块介绍 1.Nginx基本工作原理 NGINX以高性能的负载均衡器,缓存,和web服务器闻名.Nginx由内核和模块组成,其中,内核的设计非常微 ...
- C++访问控制符内容相关介绍
C++编程语言是一个功能强大,应用广泛的计算机语言.不过在这一语言中,还有许多比较高深的内容值得我们去深入的研究.在这里就先为大家介绍一下C++访问控制符的相关概念.C++访问控制符有三个privat ...
最新文章
- nginx 配置信息
- 精通python能干什么-转行做数据分析,是否需要精通python?
- CybersecurityVentures:中小企业将是SIEM市场增长的下一波热点
- vnctf——babyvm
- Android安全教程(2)---Fiddler简易使用教程之使用
- Android APP层 ShellUtils
- 在操作系统重启后恢复应用程序的工作状态
- SSM-springMvc配置文件
- android drawLayout抽屉布局
- 数字视频内容行业调研报告 - 市场现状分析与发展前景预测
- 常见危险函数和特殊函数(二)----变量覆盖
- linux命令80字符,Linux终端:用cat命令查看不可见字符
- python静态检查工具哪个好用_介绍几款 Python 类型检查工具
- r4烧录卡内核安装_R4 Wood内核怎么用?R4烧录卡Wood R4内核详细使用教程
- ODBC连接MySQL数据库、TLex配置ODBC
- 技术问答-26 线程的状态 新建 准备 运行 休眠 停止
- curl 访问 IPv6 url
- git出现error: invalid object for ‘xxxxx‘
- 根号分治练手题 西比拉先知系统 题解
- iPhoneX炫彩壁纸背景demo(含动效)
热门文章
- Stanford CS224N: PyTorch Tutorial (Winter ‘21) —— 斯坦福CS224N PyTorch教程 (第三部分)
- EPUB电子书专用阅读软件
- 贪心算法及常见例子(附python实现代码)
- python身份证照片识别信息
- Eplan 2.7 ”没有可用加密狗“问题
- python 安装包时出现:SyntaxError: invalid syntax
- 管理小故事精髓 100例(转)
- 英伟达登录界面卡住_一汽夏利重组;东风贪腐案行贿者名单? 众泰被申请预重整;尼古拉承认造假;理想英伟达德赛西威将合作;宋PLUS上市[9月17日]...
- php换行字符串,PHP中字符串的连接和换行
- 后续:安装ORK功能包踩坑之路和解决方案