Version

menu_open
link
Wwise SDK 2024.1.0
Android-Specific Information

This page contains information that is specific to using the Wwise SDK for the Android platform.

Platform Requirements

To use the Wwise SDK with the Android platform, you must install the Android SDK, Android SDK Tools, and Android NDK. For the required versions, refer to the appropriate version of the Android Release Notes.

Note:

  • To build the sample plug-ins on Android you need to use ndk-build.
  • The makefile is dependent on the Android NDK toolchain, as pointed by NDK_ROOT environment variable.

You can build the Android libraries using the script BuildAllAndroid.cmd with the desired platform and configuration (i.e. BuildAllAndroid.cmd armeabi-v7a debug) on windows in the SDK/source/SoundEngine folder. This will call ndk-build with the appropriate parameters. This script can target the 4 supported architectures (v7a, x86, v8a-64 and x86_64) in 3 configurations (debug, profile, release).

Using the "Fast Audio Path" (low-latency)

In recent OS versions, Google introduced the "Fast Audio Path". This bypasses some of the internal processing if some conditions are met, drastically reducing the latency of the OS and hardware processing. Please read Controlling Latency on Android for more details.

Deploying and Loading SoundBanks

There are three ways of deploying and loading SoundBanks on Android:

  1. Deploy SoundBanks as part of the Android application package (APK).
    Before deploying the application to devices, the SoundBanks have to be placed in the "assets" sub-folder of the Android NDK project and packaged normally with the APK (or an equivalent process with other tools). To read bank files from the APK, you must specify the path to the banks relative to the standard "assets" directory within the APK archive. Call CAkDefaultIOHookDeferred::SetBasePath() to do so. This is not done automatically.
  2. Deploy SoundBanks as part of an Android Application Split Binary (a.k.a. OBB). To read SoundBanks from an OBB, your banks must be in the same relative path within the OBB as in the main APK.
  3. Deploy SoundBanks to the Android device file system directly. The SoundBanks can be deployed anywhere in the file system of the device. You can add as many directories as you want with CAkDefaultIOHookDeferred::AddBasePath().

The default implementation of the low-level IO found in $<Wwise>/SDK/samples/SoundEngine/Android can access APK, OBB, and POSIX files. You must call the function CAkDefaultIOHookDeferred::InitAndroidIO with a JavaVM and the android.app.Activity to initialize both APK and OBB readers.

Note: The OBB archive must be unencrypted for the default Low Level IO to work. If not, you'll need to write your own IO.
Note: The OBB reading is done with libzip, please check the license under Libzip. If you do not accept the license, you can disable the use of LibZip by defining the symbol "REMOVE_LIBZIP" in your compilation flag. If so, you'll need to write your own IO hook to read OBB or uncompress the OBB before use.

The IO system will search for files in the given paths in the reverse order, newest added first, APK content last. This allows for DLC content to replace APK content.

Refer to Low-Level I/O on how to implement the low-level I/O submodule.

Android Library Flavors

The Wwise SDK precompiled libraries come compiled in these flavors:

  • armeabi-v7a with NEON
  • x86 with SSE
  • arm64-v8a with NEON
  • x86_64 with SSE

Android Audio APIs

Wwise supports the following audio APIs on Android:

3D Audio Support

Wwise 3D Audio is supported on Android. It is implemented through Android's Spatial Audio technology (distinct from Wwise Spatial Audio), and is designed for headphone output. It supports a spatialized bed and a passthrough mix. System audio objects are not supported.

Android OS versions 13 and higher have Spatial Audio user preferences for wired and wireless headphones. Therefore, the 3D Audio pipeline in Wwise is always activated when the following requirements are met:

  • The Audio Device property Allow 3D Audio is enabled in the Wwise project.
  • Spatial Audio is enabled on the device for headphones. For wireless headphones, it can be enabled in the Bluetooth settings.
  • The output device channel configuration is not set or a supported channel configuration is used (see Main Mix Configuration below).

We recommend that you allow the user to choose whether to use 3D Audio through an in-game setting, and swap between two Audio Device sharesets based on this setting.

Note: Enabling Android Spatial Audio disables the low-latency "Fast Audio Path" feature. Refer to Using the "Fast Audio Path" (low-latency)

Using 3D Audio with AAudio

Upon initialization, when using AAudio with 3D Audio activated, the main mix is configured as 7.1.4 PCM (default), unless the Main Mix Configuration property of the Audio Device is set to a different value. These are the supported main mix PCM channel configurations for use with AAudio:

  • 5.1
  • 5.1.2
  • 7.1
  • 7.1.2
  • 7.1.4 (recommended)

Using 3D Audio with OpenSL ES

Upon initialization, when using OpenSL ES with 3D Audio activated, the main mix is configured as 5.1.4 PCM (default), unless the Main Mix Configuration property of the Audio Device is set to a different value. These are the supported main mix PCM channel configurations for use with OpenSL ES:

  • 5.1
  • 5.1.2
  • 5.1.4 (recommended)
  • 7.1
  • 7.1.4

A main mix channel configuration of 5.1.4 or 7.1.4 is downmixed to 5.1.2 on supported devices. If a request for an output channel configuration cannot be fulfilled by a device, the main mix and output configurations are changed to stereo.

Configuring 3D Audio in Unreal

If you are using the Wwise Unreal Integration, you must set several options in the Unreal project to enable 3D Audio. Different speaker configurations (7.1.4, 5.1, and so on) require different configurations.

To configure Android 3D Audio options in Unreal: #- In the Unreal project, select Edit > Project Settings and in the Wwise section, select Android. The Wwise - Android settings page opens. #- Open Common Settings > Main Output Settings. #- Set the Panning Rule to Headphones. #- Set the Channel Config Type to Standard. #- Set the Channel Mask options according to the desired speaker configuration, listed in the following table:

Speaker configuration Channel Mask settings
5.1
  • Front Left
  • Front Right
  • Front Center
  • Low Frequency
  • Back Left
  • Back Right
5.1.2
  • Front Left
  • Front Right
  • Front Center
  • Low Frequency
  • Back Left
  • Back Right
  • Height Front Left
  • Height Front Right
7.1
  • Front Left
  • Front Right
  • Front Center
  • Low Frequency
  • Back Left
  • Back Right
  • Side Left
  • Side Right
7.1.2
  • Front Left
  • Front Right
  • Front Center
  • Low Frequency
  • Back Left
  • Back Right
  • Side Left
  • Side Right
  • Height Front Left
  • Height Front Right
7.1.4
  • Front Left
  • Front Right
  • Front Center
  • Low Frequency
  • Back Left
  • Back Right
  • Side Left
  • Side Right
  • Height Front Left
  • Height Front Right
  • Height Back Left
  • Height Back Right

Android Release Notes


Cette page a-t-elle été utile ?

Besoin d'aide ?

Des questions ? Des problèmes ? Besoin de plus d'informations ? Contactez-nous, nous pouvons vous aider !

Visitez notre page d'Aide

Décrivez-nous de votre projet. Nous sommes là pour vous aider.

Enregistrez votre projet et nous vous aiderons à démarrer sans aucune obligation !

Partir du bon pied avec Wwise