当前位置:网站首页>Unity 之 音频类型和编码格式介绍
Unity 之 音频类型和编码格式介绍
2022-07-31 17:26:00 【陈言必行】
Unity 之 音频类型和编码格式介绍
Inspector窗口显示多个导入设置。这些设置决定了:加载行为,压缩行为,质量,采样率,以及是否支持双声道音频。
一,加载音频文件
Unity可通过以下3中设置可以指定音频文件的加载方式:
- Preload Audio Data(预加载音频数据):开启则音频数据在场景初始化期间自动加载,禁用则键加载推迟到需要使用音频文件时。
- Load In Background (在后台加载):开启则在后台加载完成之前是阻塞主线程,关闭则是后台异步加载。
- Load Type(加载类型):通过加载类型近一步控制加载音频文件,后面会详细说。
二,Load Type:加载类型
Decompress On Load(加载时解压缩): 此设置压缩磁盘上的文件以节省空间,并在首次加载时将其解压到内存中。这是加载音频文件的标准方法,应该在大多数情况下使用。
解压文件需要一段时间,这会导致加载过程中的额外开销,但会减少播放音频文件时所需的工作量。
Compressed In Memory(内存中保持压缩状态):此设置在加载音频时只是将其从磁盘复制到内存中。只有在播放音频文件时,才会在运行期间对其进行解压缩。
这将在播放音频剪辑是牺牲运行时CPU,但在音频剪辑保持休眠状态是,提高了加速度,减少了运行时内存消耗。
因此,此选项最适合频繁使用的大型音频文件,或者在内存上晕倒难以置信的瓶颈,并且愿意牺牲一下CPU周期来播放音频剪辑
Streaming(流): 此设置将在运行时加载,加密和播放文件,具体做法是逐步将文件推过一个小缓冲区,在缓冲区中一次只存在整个文件的一小部分。
此方法对特定音频剪辑使用的内存量最小,但运行时CPU使用的内存量最大。由于文件的每个回放实例都需要自己的缓冲区,因此此设置有一个不幸的缺点,即多次引用音频剪辑,会导致内存中同一音频剪辑的多个副本必须单独处理,如果胡乱使用,会导致运行时CPU成文。因此此选项最后用于定期播放的单实例音频剪辑,这种音频剪辑不需要与自身的其他实例或甚至与其他流式音频剪辑重叠。例如,此设置最后与背景音乐和环境音效一起使用,这些音效需要在场景的大多数时间里播放。
小结: 默认情况下,弃用Preload Audio Data,禁用Load In Background以及使用Decompress On Load的加载类型会导致场景加载时间过长,但可以确保在需要时理解准备好场景中的每个音频剪辑。当需要音频剪辑时,不会有加载延迟,音频剪辑将在调用Play()时播放。缩短场景加载时间的一个很好的折中方法是,为以后才需要的音频剪辑弃用Load In Background,但这不应该用于场景初始化后不久就需要的音频剪辑。然后通过AudioClip.LoadAudioData() 和 AudioClip.UnloadAudioData()手动控制音频数据加载的时间。可以在一个场景中使用所有方法,已达到最佳性能。
三,编码格式与品质级别
Unity 支持3种音频剪辑编码格式,在Inspector面板汇总查看音频剪辑属性是,由Compression Format选项决定哪种格式:
Compressed :压缩算法取决于使用目标平台
- Vorbis:有损压缩。Ogg全称应该是OGG Vorbis是一种新的音频压缩格式,类似于MP3等现有的音乐格式。但有一点不同的是,它是完全免费、开放和没有专利限制的
- MP3:有损压缩。同样位速率(Bit Rate)编码的OGG与MP3相比听起来更好一些。MP3格式是受专利保护的。
- PCM:无损未压缩,提供接近模拟音频效果。它以更大的文件大小换取更高的音频质量,适用于极短且需要高清晰度是。
- ADPCM:有损压缩,此格式在大小和CPU消耗方面比PCM高效的多,但压缩会产生相当大的噪声。适用于爆炸,冲击声音,则可以忽略噪声。

边栏推荐
- INeuOS industrial Internet operating system, the equipment operational business and "low code" form development tools
- 使用互相关进行音频对齐
- 牛客网刷题(三)
- 几款永久免费内网穿透,好用且简单(内网穿透教程)
- 【愚公系列】2022年07月 Go教学课程 021-Go容器之切片操作
- A common method and the use of selenium
- Flex布局详解
- Concurrency, Timing and Relativity
- Smart Trash Can (8) - Infrared Tube Sensor (Raspberry Pi pico)
- 保证接口数据安全的10种方式
猜你喜欢

2022 Android interview summary (with interview questions | source code | interview materials)

杰理语音芯片ic玩具芯片ic的介绍_AD14NAD15N全系列开发

九齐ny3p系列语音芯片替代国产方案KT148A性价比更高420秒长度

上传图片-微信小程序(那些年的坑记录2022.4)

useragent在线查找

组合学笔记(六)局部有限偏序集的关联代数,Möbius反演公式

自动化测试—web自动化—selenium初识

35 MySQL interview questions and diagrams, this is also easy to understand

go基础部分学习笔记记录

Huawei mobile phone one-click to open "maintenance mode" to hide all data and make mobile phone privacy more secure
随机推荐
【Yugong Series】July 2022 Go Teaching Course 022-Dictionary of Go Containers
UserAgent 解析
【码蹄集新手村600题】不通过字符数组来合并俩个数字
【NLP】什么是模型的记忆力!
【源码解析】BeanFactory和FactoryBean
AcWing 1282. 搜索关键词 题解((AC自动机)Trie+KMP)+bfs)
go记录之——slice
INeuOS industrial Internet operating system, the equipment operational business and "low code" form development tools
GP 6 overall architecture study notes
【愚公系列】2022年07月 Go教学课程 022-Go容器之字典
go mode tidy出现报错go warning “all“ matched no packages
Taobao/Tmall get Taobao password real url API
MySQL---aggregate function
新型电信“套路”,我爸中招了!
中文编码的设置与action方法的返回值
Flutter gets the height of the status bar statusbar
无主复制系统(2)-读写quorum
How to install CV2 smoothly in Anaconda
Intelligent bin (9) - vibration sensor (raspberries pie pico implementation)
宁波大学NBU IT项目管理期末考试知识点整理