Version: Unity 6.0 (6000.0)
语言 : 中文
立体混响声音频
音频参考

开发立体混响声音频解码器

立体混响声解码器是将立体混响声音频格式解码为特定输出格式(例如立体声或环绕声)的音频组件。此格式取决于扬声器配置(菜单:编辑 (Edit) > 项目设置 (Project Settings) > 音频 (Audio) > 默认扬声器模式 (Default Speaker Mode)),除非平台会重载此设置。

虽然 Unity 支持立体混响声音频,但默认情况下不提供内置解码器。相反,必须选择第三方解码器或使用您自己的解码器插件。

设置立体混响声音频解码器插件

您可以像设置空间音响一样设置立体混响声音频解码器。但是,AudioPluginInterface.h 文件中的以下参数特定于立体混响声音频解码器插件:

UnityAudioEffectDefinitionFlags_IsAmbisonicDecoder

在插件扫描阶段,UnityAudioEffectDefinitionFlags_IsAmbisonicDecoder 标记会通知 Unity 这是立体混响声解码器效果。要使插件作为立体混响声解码器工作,需要在效果的描述位字段中设置一个标记:

`````
definition.flags |= UnityAudioEffectDefinitionFlags_IsAmbisonicDecoder;
`````

Unity 会在项目设置窗口(菜单:编辑 (Edit) > 项目设置 (Project Settings) > 音频 (Audio) > 立体混响声解码器插件 (Ambisonic Decoder Plugin))中将您的插件列为选项。

UnityAudioAmbisonicData struct

UnityAudioAmbisonicData 结构类似于 Unity 传递到空间音响中的 UnityAudioSpatializerData 结构,并包含一个 ambisonicOutChannels 整数。

ambisonicOutChannels 整数

立体混响声解码器放在 Unity 音频管线中非常靠前的位置,ambisonicOutChannels 会告知插件 Unity 需要使用多少个输出声道。ambisonicOutChannels 会自动设为 DefaultSpeakerMode 的声道数。

例如,如果播放具有 4 个声道的一阶立体混响声音频剪辑,并且扬声器模式为立体声(只有 2 个声道):

  • 立体混响声解码器的进程回调将传入 4,以进行传入和传出声道计数。

  • ambisonicOutChannels 字段会自动设置为 2。

  • 插件会将其空间化数据输出到前 2 个声道,并将另外 2 个声道清零。

开发立体混响声音频解码器插件的步骤

按照以下步骤为 Unity 开发自己的立体混响声音频解码器插件:

  1. 使用原生音频插件 SDK 创建自定义音频插件。

  2. 在效果的描述位字段中设置一个标记:

    definition.flags |= UnityAudioEffectDefinitionFlags_IsAmbisonicDecoder;
    
  3. 配置完插件后,请编译文件。确保在首选平台上可编译。

  4. 或者,将文件转换为 .dll 文件。

  5. 将插件文件移动到 Unity 项目的 Asset 文件夹中。

有关如何在 Unity 中使用立体混响声音频插件的更多信息,请参阅立体混响声音频

Unity 立体混响声支持的格式

Unity 立体混响声源框架可以支持一阶立体混响声。插件接口包含用于支持双耳立体声、四声道输出的信息,但由插件自行决定支持哪些输出。

最初,立体混响声解码器插件支持一阶立体混响声源和双耳立体声输出。不支持二阶立体混响声。

框架中未提供任何特定于不同立体混响声格式的内容。如果剪辑的格式与立体混响声解码器插件的预期格式相匹配,立体混响声应该可以正常工作。Unity 的首选立体混响声格式是 B 格式(按照 ACN 组件排序并采用 SN3D 标准化)。

其他信息

有关如何开发插件的信息,请参阅原生音频插件 SDK空间音响 SDK。还必须下载 Audio 插件 SDK

立体混响声音频
音频参考