Wwise SDK 2023.1.9
|
此页面包含有关如何将 Wwise SDK 用于 OpenHarmony 平台的特定信息。
在下载 OpenHarmony SDK 之前,必须先注册项目(详见注册项目)以获取授权。在项目通过审批后,Audiokinetic Launcher 的 Deployment Platforms 列表中会显示 OpenHarmony 选项。
若要结合 OpenHarmony 平台使用 Wwise SDK,必须安装 HarmonyOS NEXT SDK。如需了解所需的版本,请参阅相应版本的 OpenHarmony 版本说明 。
若要在 OpenHarmony 上构建示例插件,需在 HarmonyOS NEXT SDK 中包含 CMake 工具。
Wwise SDK 预编译库采用以下方式编译:
后续可添加针对其他 ABI 的预编译支持。
您可以通过两种方式在 OpenHarmony 上部署和加载 SoundBank。
在构建 HAP 前,将 SoundBank 和媒体文件放在运行声音引擎的 OpenHarmony 模块的 src/main/resources/rawfile
子文件夹中。此位置的文件会在构建时打包到 HAP 中。
在此之后,应用程序必须在原生代码中执行以下操作:
NativeResourceManager
对象。SDK/samples/SoundEngine/OpenHarmony
目录下的示例 Low-Level I/O 挂钩 CAkDefaultIOHookDeferred
实例化。CAkDefaultIOHookDeferred::UseResourceManager()
并传递步骤 1 中创建的资源管理器对象。CAkDefaultIOHookDeferred::AddBasePath()
并传递相对于 rawfile 目录的路径(前缀 rawfile://
)。比如,若将 SoundBank 放在了 src/main/resources/rawfile/StreamingAssets/Wwise
中,则指定基本路径 rawfile://StreamingAssets/Wwise
。备注: 若不使用 Wwise SDK 中包含的示例 Low-Level I/O 挂钩,则须自行实现 I/O 挂钩以便使用 OpenHarmony 的 rawfile API 读取打包的文件。 因为 OpenHarmony 的 rawfile API 是只读的,所以带 |
SoundBank 可部署到设备文件系统中的任何位置。您可以通过 CAkDefaultIOHookDeferred::AddBasePath()
添加任意数量的目录。所有带 rawfile://
前缀的基本路径都会被解释为标准 POSIX 文件系统路径。相应的文件使用标准 POSIX 文件 I/O 函数读写。对于必须在写入模式下打开的文件,只能使用这些路径。
I/O 系统会按照相反顺序搜索给定路径下的文件(从最近添加的路径开始)。
有关如何实现 Low-Level I/O 子模块的说明,请参阅 Low-Level I/O 章节。
Wwise handles audio interruptions (such as incoming calls or alarms) automatically. Wwise suspends the sound engine during an interruption and reactivates it when the interruption ends.
By default, Wwise keeps playing back audio even when the app loses focus and is hidden from view. To stop playback when the app is out of focus, call AK::SoundEngine::Suspend
when the app is hidden, and AK::SoundEngine::WakeupFromSuspend
when the app is shown. You can register Event listeners for these transitions from ArkTS through the Window module, or from C/C++ using the Xcomponent module.
Refer to Integration Demo 示例 for an example of how to handle Xcomponent's SurfaceHide and SurfaceShow callbacks to suspend and resume the sound engine.
为了保证成功初始化 Communications 模块,请确保应用程序模块请求获取 ohos.permission.INTERNET
权限。在操作系统授予此权限后,Communications 模块便可打开相应的 TCP 和 UDP 端口以允许与 Wwise Profiler 进行通信。
有关如何初始化 Communications 模块的信息,请参阅 通信初始化 章节。
为了保证 Wwise Motion 能够正常工作,请确保应用程序模块请求获取 ohos.permission.VIBRATE
权限。在操作系统授予此权限后,Wwise Motion 便可触发设备发出相应的振动效果。
注意,OpenHarmony 设备的振动功能不怎么精细,所以无法提供精妙的高分辨率触觉反馈。在此平台上,最好将 Wwise Motion 用于固定强度的振动效果和短促的 UI 触觉反馈脉冲。