目录

目标平台:

针对 Android 的相关信息

本页包含有关将 Wwise SDK 用于 Android 平台的特定信息。

平台要求

  • 您可以直接安装标准版 Android SDK Tools 及标准版 Android NDK。Wwise 目前使用 SDK Tools 26.1.1 和 NDK r17c。
Note.gif

备注:

  • 为了在 Android 上构建示例插件,您需要使用 ndk-build。
  • makefile 依赖 Android NDK 工具链(如 NDK_ROOT 环境变量所指)。

在 Windows 上,您可以根据所需平台和配置,使用 SDK/source/SoundEngine 文件夹中的 BuildAllAndroid.cmd 脚本(即 BuildAllAndroid.cmd armeabi-v7a debug)来构建 Android 库。这样会调用 ndk-build 及相应参数。 此脚本可在 3 种配置(Debug、Profile、Release)下构建 4 种支持的架构(v7a、x86、v8a-64 和 x86_64)。

使用“快速音频路径”(低延迟)

在最近的操作系统版本中,谷歌引入了“快速音频路径”。如果满足一些条件,这样做会旁通一些内部处理,极大地减少操作系统和硬件处理的延迟。请参阅 控制Android上的延迟 了解更多详情。

部署和加载 SoundBank

在 Android 中部署和加载 SoundBank 有三种方式:

  1. 将 SoundBank 当作 Android 应用程序包(APK)的一部分进行部署。
    在将应用程序部署至设备前,必须将 SoundBank 放入 Android NDK 工程的 assets 子文件夹,并通过 APK(或其他工具的等效过程)正常打包。为了从 APK 读取音频包文件,必须指定音频包相对于 APK 存档内标准 assets 目录的路径。为此,请调用 CAkDefaultIOHookBlocking::SetBasePath() 。此操作不会自动完成。
  2. 将 SoundBank 装入 Android Application Split Binary(又称为OBB)进行部署。 为了从 OBB 读取 SoundBank,必须确保音频包在 OBB 内的相对路径与主 APK 中的设置相同。
  3. 将 SoundBank 直接部署到 Android 设备文件系统中。 SoundBank 可部署到设备文件系统中的任何位置。您可以通过 CAkDefaultIOHookBlocking::AddBasePath() 添加任意数量的目录。

位于 $<Wwise>/SDK/samples/SoundEngine/Android 中的底层 I/O 的默认实现可访问 APK、OBB 和 POSIX 文件。您必须使用 JavaVM 和 NativeActivity 来调用 CAkDefaultIOHookBlocking::InitAndroidIO 函数,对 APK 和 OBB 文件解析器进行初始化。

Note.gif
备注: OBB 包必须解密,之后默认 Low-Level I/O 才能正常工作。否则需要编写自己的 IO。
Note.gif
备注: OBB 读取操作通过 libzip 执行,请检查 Libzip 下的授权。如果您不接受该授权,则可通过在编译选项中定义“REMOVE_LIBZIP”符号来禁用 LibZip。在这种情况下,您需要编写自己的 I/O hook 来读取 OBB 或在使用前解压 OBB。

IO 系统将在给定路径中逆序查找文件,先添加最新内容,最后添加 APK 内容。这样 DLC 内容便可替换 APK 内容了。

请参阅 Low-Level I/O 了解有关如何实现 Low-level I/O 子模块的信息。

Android 库特点

安装包中的 Wwise SDK 库采用以下编译方式:

  • 在 armeabi-v7a 架构上支持 NEON 指令集
  • 在 x86 架构上支持 SSE 指令集
  • 在 arm64-v8a 架构上支持 NEON 指令集
  • 在 x86_64 上支持 SSE 指令集