Wwise SDK 2024.1.0
|
几乎所有操作系统都有针对以下事件的回调或通知:
Wwise 不会自动处理这些事件。主要原因是某些 OS API 不支持多个回调或通知接收器。因此, Wwise SDK 需要知道这些事件,以避免“吃掉”它们而不能发送给游戏。
有关如何处理用户音乐更换的信息,请阅读 处理用户音乐(BGM)和DVR 。
一般来说,所有游戏系统都可以将应用程序置于后台一段时间。Wwise 有三种可能操作,具体取决于您的选择或平台需求:
一般来说,在将应用程序转到后台并使用 Suspend(false) 时,游戏不得调用任何声音引擎 API。发布事件等操作仍有效,但会一直积累,并在系统被唤醒时全部同时播放。为了继续执行音频处理,在从系统收到正确通知时,请先调用 AK::SoundEngine::WakeupFromSuspend(),然后再调用 RenderAudio()。可以在调用 RenderAudio() 之前,让其他事件排队等候。
您应该阅读每个平台相关的制造商文档要求,以选择正确的操作。
在 Android 中,处理 App Lost/Gain Focus 和 App Pause/Resume 事件非常重要。Google 的要求规定,不在前台的应用程序应使用尽可能少的 CPU(最好完全不使用)。为此,可调用 Suspend(false) 。 另请参阅 针对 Android 的 BGM 详情 。
在 OpenHarmony 上,在应用转到后台时调用 AK::SoundEngine::Suspend
,在应用转到前台时调用 AK::SoundEngine::WakeupFromSuspend
。
Apple 要求在将应用程序转到后台时尽可能减少对 CPU 资源的使用。这将由 Wwise 自动处理。 另请参阅 针对 iOS 的 BGM 详情 。
macOS 并没有相关的官方规定,但最好跟其他平台保持一致:在应用程序进程处于非活跃状态时,使用 Suspend() 删减声音。具体会硬暂停(参数为 false)还是活动暂停(参数为 true),取决于游戏实现。
Linux 并没有相关的官方规定,但最好跟其他平台保持一致:在应用程序进程处于非活跃状态时,使用 Suspend() 删减声音。具体会硬暂停(参数为 false)还是活动暂停(参数为 true),取决于游戏实现。