Wwise Audio Integration for Mobile Games
Wwise isn't just "play a sound." It's middleware with its own event system, parameters, mixing, 3D positioning, and adaptive music. For a mobile project on Unity or Unreal, Wwise integration means replacing the standard audio engine with a system managed from Wwise Authoring through SoundBanks.
How Integration Is Structured
Wwise doesn't work directly with WAV files at runtime. The process: sounds → Wwise Authoring → SoundBank (.bnk files) → loading in the game via Wwise SDK. All events, parameters, and transitions are configured in Wwise Authoring, while the game code calls events by name: AkSoundEngine.PostEvent("Play_Footstep_Wood", gameObject).
Installation. Wwise Integration Package for Unity is installed via Wwise Launcher. SDK and plugin versions must match exactly—version mismatch causes compilation errors on mobile platforms. For iOS, AkiOS.framework and dependencies are added to Podfile. For Android, .aar libraries are added via mainTemplate.gradle.
SoundBanks. Sounds are compiled into banks via Wwise Authoring or command line (WwiseCLI). For mobile: iOS uses AAC via Core Audio, Android uses Vorbis. Bank size must be controlled: load only necessary banks for the current scene, unload via AkBankManager.UnloadBank.
Key Capabilities Worth Using Wwise
Game Parameters (RTPC). Real-time parameter control—this is what makes audio alive. A Health parameter (0–100) changes pitch and filter on the ambient track: when health drops, music becomes muffled and tenser. One parameter, one event, any complexity through curve mapping in Wwise.
Music Switch Container. Adaptive music without seams. Transitions between music states (Exploration → Combat → Victory) occur at musically correct moments—at a downbeat or cue point. AkSoundEngine.SetState("MusicState", "Combat")—and Wwise chooses the transition moment.
Spatializer and 3D audio. Attenuation curves, obstruction/occlusion, room acoustics via Wwise Reflect. On mobile platforms—use with caution: Wwise Reflect adds CPU load; on mid-range Android it's noticeable. Usually limited to Attenuation + Doppler without reverb via Reflect.
Profiler. Wwise Profiler connects to the device via Wi-Fi. Realtime view: which events are playing, audio CPU usage, voice count, SoundBank memory. On mobile, the target is no more than 20–25 simultaneous voices, audio thread CPU not exceeding 3–5%.
// Unity — example of calling an event with a parameter
void PlayFootstep(SurfaceType surface) {
AkSoundEngine.SetSwitch("Surface", surface.ToString(), gameObject);
AkSoundEngine.PostEvent("Play_Footstep", gameObject);
}
// Updating RTPC health parameter
void OnHealthChanged(float health) {
AkSoundEngine.SetRTPCValue("PlayerHealth", health, gameObject);
}
Typical Integration Issues
Audio loss on Android after app suspension. Wwise needs to properly handle OnApplicationPause: call AkSoundEngine.Suspend(true) when pausing and AkSoundEngine.WakeupFromSuspend() when resuming. Without this, Android AudioSession won't recover correctly.
Bloated SoundBanks. All sounds in one Default SoundBank—typical mistake. First startup takes 5–8 seconds to load. Solution: split into banks by level (MenuBank, Level1Bank) and load asynchronously via AkBankManager.LoadBank.
Conflict with other audio sources. If the game has a video player (UnityEngine.Video) or native sounds (AdMob), configure AVAudioSession priority on iOS: Wwise should set the .playback category with correct mix options.
Timelines
3–5 working days for basic integration: installation, bank setup, events, RTPC for main mechanics. Adaptive soundtrack with Music Switch Container and complex parameter system—up to 2 weeks. Cost calculated individually.







