包含此页的版本:
不含此页的版本:
此页面仅提供有关 Web 平台中的音频功能的信息。若要了解如何在 Unity 项目中使用音频,请参阅音频概述。
因为 Unity 使用Unity 中的 FMOD音频构建在名为 FMOD 的中间件之上。FMOD 与 Unity 引擎集成,用于创建和播放交互式音频。
请参阅术语表要管理平台的音频,Web 平台支持有限的音频功能,其中仅包括基本功能。FMOD 依赖于线程,其中WebGL一种在 Web 浏览器中呈现 2D 和 3D 图形的 JavaScript API。Unity Web 构建选项允许 Unity 将内容发布为 JavaScript 程序,这些程序使用 HTML5 技术和 WebGL 渲染 API 在 Web 浏览器中运行 Unity 内容。更多信息
请参阅术语表API 不支持。因此,Unity 使用基于内部 Web 音频 API 的实现,使浏览器能够处理音频播放和混合。
注意:Google Chrome 的新自动播放政策会阻止音频和视频在某些条件下自动播放。例如,虽然您的游戏可能设置为在游戏加载后立即自动播放一些背景音乐,但除非您单击或点击网站,否则它不会自动播放。如需详细了解如何启用或停用此政策,请参阅 Google Chrome 中有关 Chrome 中自动播放政策的文档。
Unity Web 支持以下 API 类:
| 类 | WebGL 支持状态 |
|---|---|
| 音频源 | WebGL 支持一些 API。有关具体支持详细信息,请参阅 AudioSource。 |
| 音频监听器 | 支持所有 API。 |
| 音频剪辑 | WebGL 支持一些 API。有关具体支持详细信息,请参阅 AudioClip。 |
| 混音器 | WebGL 支持一些 API。有关具体支持详细信息,请参阅混音器。 |
| SystemInfo.supports音频 | 浏览器为 WebGL 提供音频支持。出于这个原因,SystemInfo.supportsAudio总是正确的。 |
| 麦克风 | 不支持。 |
AudioSource API 支持基本的位置音频播放,包括:
Unity WebGL 支持以下 AudioSource API:
| 设置 | 描述 |
|---|---|
| 夹 | 确定音频剪辑Unity 中音频数据的容器。Unity 支持单声道、立体声和多声道音频资产(最多 8 个声道)。Unity 可以导入 .aif、.wav、.mp3 和 .ogg 音频文件格式,以及 .xm、.mod、.it 和 .s3m 跟踪器模块格式。更多信息 请参阅术语表接下来播放。 |
| 多普勒级 | 设置 AudioSource 的多普勒比例。 |
| ignoreListenerPause | 允许 AudioSource 忽略AudioListener.pause并继续播放音频。 |
| ignoreListenerVolume (忽略监听器卷) | 忽略最终用户的 AudioSource 音量。 |
| 正在播放 | 如果AudioSource.clip正在播放。 |
| 圈 | 允许应用程序循环AudioSource.clip. |
| 最大距离 | 设置最大距离,其中AudioSource.clip停止衰减或变得听不见。 |
| 最小距离 | 设置 AudioSource.clip 不再增加音量的最小距离。声音开始衰减超过最小距离。 |
| 静音 | 将 AudioSource 静音。 |
| 投 | 设置AudioSource.clip.WebGL 仅支持正间距值。 |
| playOnAwake | 在唤醒时播放 AudioSource。 |
| 滚降模式 | 设置 AudioSource 随距离的衰减。 |
| 时间 | 设置播放位置(以秒为单位)。 |
| 时间样本 | 设定脉冲编码调制 (PCM) 样本中的播放位置。 |
| 速度更新模式 | 设置 AudioSource 是在固定更新循环还是动态更新循环中更新。 |
| 卷 | 设置 AudioSource 的音量(0.0 到 1.0)。 |
| 暂停 | 暂停AudioSource.clip. |
| 玩 | 播放AudioSource.clip. |
| 播放延迟 | 播放AudioSource.clip以秒为单位指定的延迟。 |
| PlayOneShot 游戏 | 播放 AudioClip 并按 volumeScale 缩放 AudioSource 音量。 |
| 播放计划 | 在指定的时间播放 AudioSource。 |
| 设置计划结束时间 | 设置计划的时间AudioSource.clip结束。 |
| 设置计划启动时间 | 设置计划的时间AudioSource.clip开始。 |
| 停 | 停止播放AudioSource.clip. |
| 取消暂停 | 取消暂停AudioSource.clip. |
| 播放剪辑点 | 扮演一个AudioSource.clip在世界空间的给定位置。 |
注意:因为音频数据是在浏览器中解码的decodeAudioData,音频文件的运行时采样率可能与序列化音频数据 (44100Hz) 不同,因为浏览器将匹配BaseAudioContext采样率,通常与设备音频驱动程序设置保持一致。考虑到这一点,我们建议验证AudioClip.frequency值,或使用AudioSource.time执行寻道作时。
Unity WebGL 以 AAC 格式导入 AudioClip 文件,大多数浏览器都支持这种格式。Unity WebGL 支持以下 AudioClip API:
| 性能 | 描述 |
|---|---|
| 频率 | 剪辑的采样频率(以赫兹为单位)。 |
| 长度 | AudioClip 的长度(以秒为单位)。 |
| 负载状态 | 返回与 AudioClip 关联的音频数据的当前加载状态。 |
| 样品 | AudioClip 的长度(以样本为单位)。 |
| 负载类型 | 夹子的加载类型。您可以在检查器一个 Unity 窗口,显示有关当前选定游戏对象、资产或项目设置的信息,允许您检查和编辑值。更多信息 请参阅术语表. |
| 方法 | 描述 | 其他信息 |
|---|---|---|
| 音频剪辑.创建 | 使用指定的名称和长度创建 AudioClip。 | Unity WebGL 部分支持AudioClip.Create.浏览器不支持动态流,因此使用AudioClip.Create,将 Stream 设置为 false。 |
| 音频剪辑.设置数据 | 在 AudioSource.clip 中设置示例数据。 | Unity WebGL 部分支持AudioClip.SetData.只能对 加载类型(Load Type) 设置为 加载时解压缩(Decompress on Load) 的压缩音频文件使用此方法。请参阅压缩音频。 |
| 音频剪辑.获取数据 | 从 AudioSource.clip 检索包含示例数据的数组。 | Unity WebGL 部分支持AudioClip.GetData.只能对 加载类型(Load Type) 设置为 加载时解压缩(Decompress on Load) 的压缩音频文件使用此方法。请参阅压缩音频。 |
注意:要在 Linux 上支持音频剪辑,请确保您已安装 ffmpeg 包。
Unity Web 支持 Audio Mixer 资源的某些功能。
您可以使用 Web 上的混音器执行以下作:
注意:音量是您在 Web 上唯一可以更改的属性。不支持其他属性和音效。
要在 Unity 中将压缩音频与 WebGL 一起使用,请将 AudioClip loadType 设置为以下选项之一:
您还可以在 Unity 编辑器中更改这些设置。若要更改设置,请选择音频片段,然后将检查器窗口中的“载入类型”设定为首选选项(“载入时解压缩”或“在内存中压缩”)。
| 压缩一种存储数据的方法,可减少所需的存储空间量。请参阅纹理压缩、动画压缩、音频压缩、构建压缩。 请参阅术语表方法 |
描述 | 考虑 |
|---|---|---|
| 压缩内存中 | 使用它来压缩磁盘上的音频,并在加载到应用程序内存后保持压缩状态。 | 压缩音频可能会导致延迟,并且在音频播放方面精度较低。但是,压缩音频在应用程序中使用的内存比解压缩音频少。最佳做法是使用CompressedInMemory对于不受精度影响的音频,例如背景音乐。 |
| 卸压加载 | 使用它来压缩磁盘上的音频,类似于 CompressedInMemory,并在加载到应用程序内存时解压缩。 | 与压缩音频相比,解压缩音频使用大量内存,但延迟更低,音频灵活性更高。用DecompressedOnLoad对于受精度影响的音频(例如,字符对话框或声音效果)。 |
iOS 设备上的静音模式开关在 Web 版本中的压缩和未压缩音频剪辑上的行为不同。在静音模式下,在 iOS 设备上听不到未压缩的声音,因为 WebKit 对此音频节点类型的分类与MediaElementSourceNode,用于CompressedInMemory听 起来。有关详细信息,请参阅 WebKit 问题 #262781。
如果将音频片段的loadType自DecompressOnLoad,则在处于静音模式的 iOS 设备上将听不到该剪辑。要确保无论静音模式如何播放音频,请设置音频剪辑loadType自CompressedInMemory.此问题仅发生在 Web 版本中。
如果您需要在场景场景包含游戏的环境和菜单。将每个唯一的场景文件视为一个独特的关卡。在每个场景中,你放置你的环境、障碍物和装饰品,基本上是将你的游戏设计和构建成碎片。更多信息
请参阅术语表开始时,建议在临时场景中完全加载声音,并加法加载目标场景。
出于安全原因,浏览器不允许音频播放,直到最终用户通过鼠标单击、触摸事件或按键与应用程序网页交互。使用加载屏幕允许最终用户与应用程序交互,并在主要内容开始之前开始音频播放。