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 ...
最新文章
- 组织级项目管理实例分享——来自项目管理群的讨论
- html表格以及form表单部分标签的使用
- FlexiBO:基于成本感知的深度神经网络多目标优化
- java RSA 加签验签【转】
- 磁盘使用分析器linux,ncdu:基于ncurses库的磁盘使用分析器
- [渝粤教育] 中国地质大学 中国文化地理 复习题
- 扫雷小游戏-纯网页版
- RS485总线传输协议
- 2011年12月13日 timeout 与 refused windows clipbrd
- Halcon找圆系列(1)如何检测圆形
- adjacent angle_adjacent angle是什么意思_adjacent angle怎么读_adjacent angle翻译_用法_发音_词组_同反义词_邻角-新东方在线英语词典...
- 【算法】leetcode887鸡蛋掉落题之方法二解析
- 企业证书更新与说明/羊毛口子:美团实体跑腿拍照撸1~20元
- VMware Workstation虚拟机备份及磁盘空间回收
- linux weblogic 内存溢出,weblogic10内存溢出解决方法
- win10系统英雄联盟老是重新连接服务器,更新win10系统后lol进不去游戏怎么回事 win10lol重新连接进不去怎么办...
- UI设计的15个设计要点,让你的作品更完美
- matlab里面nargin,Matlab中的nargin命令
- 2023国自然已审核,预祝8月上榜
- 纯干货!Java后端开发十二条经验分享!