通过 PS4 和 Xbox One 的 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 中,我们可以看到每个声音都输出至单独的总线和输出。这是 Xbox One 和 PS4 上的常见情况。(注意,中间的音乐总线被省略了。)
在 Wwise 支持的其他平台上均没有 DVR 功能,所以我们要做一些不同处理。在这种情况下,如果不希望游戏音乐缺失,您必须正确地将其输出。您仅需正确地将音频设备 Unlink(取消链接),即可解决该问题。在 Master Bus 的 Property Editor 中,也允许将 Audio Device 属性取消链接. 在下面的示例中,我们将 Non Recordable Bus 输出至普通系统输出。在 Xbox One 和 PS4 中,它仍然输出至 DVR_Bypass,因此它的链接图标有一半是橙色。这就是我们在 Integration Demo 工程中的处理方式。这种情况下,代码不需要调用 AK::SoundEngine::AddOutput
来初始化输出,因为系统输出总是在启动时初始化。
播放这两种声音时,我们看到两个音频源信号分别通过独立的总线,但是它们最终混合在同一个系统输出中。