通过 PS4、PS5、Xbox One 和 Xbox Series X 的 DVR 功能录制受版权保护的音乐通常是不允许的。这些平台提供有专门的虚拟设备来单独管理音乐并防止进行录音。在 Wwise 中,这也意味着需要在单独的层级中为音乐混音。我们在 Integration Demo 工程中实现了这个功能。您可以查看 NonRecordable_Bus,以及 RecordableMusic 和 NonRecordableMusic 声音的设置。代码方面可以查看 DemoBGM.cpp。
NonRecordableMusic(不可录制音乐)被输出到 Non Recordable Bus(不可录制总线),该总线将其信号输出到 DVR_Bypass 输出中,如下所示:
在代码方面,为实现该效果所需的处理非常简单。游戏必须使用 Audio Device ShareSet 名称调用 AK::SoundEngine::AddOutput()
来初始化输出。
在 Wwise 的 Advanced Profiler 中,我们可以看到每个声音都输出至单独的总线和输出。在支持的平台上一般都是如此。(注意,中间的音乐总线被省略了。)
在 Wwise 支持的其他平台上均没有 DVR 功能,所以我们要做一些不同处理。在这种情况下,如果不希望游戏音乐缺失,您必须正确地将其输出。您仅需正确地将音频设备 Unlink(取消链接),即可解决该问题。在 Master Bus 的 Property Editor 中,也允许将 Audio Device 属性取消链接. 在下面的示例中,我们将 Non Recordable Bus 输出至普通系统输出。不过对于支持的平台,其仍会输出到 DVR_Bypass。正因如此,Link(链接)图标才有一半是橙色的。这就是我们在 Integration Demo 工程中的处理方式。这种情况下,代码不需要调用 AK::SoundEngine::AddOutput
来初始化输出,因为系统输出总是在启动时初始化。
播放这两种声音时,我们看到两个音频源信号分别通过独立的总线,但是它们最终混合在同一个系统输出中。