Wwise SDK 2022.1.17
|
This chapter contains information that is specific to using the Wwise SDK for the iOS/tvOS/visionOS platform.
Warning: tvOS and visionOS SoundBanks must use iOS for their base platform. |
Note: Unless otherwise specified, the mention "iOS" in this page and its subsections is used to describe interchangeably the iOS, tvOS, and visionOS specific platform details. |
The libraries and other binaries provided in the Wwise SDK for the iOS-based platforms are built against a variety of Xcode toolchains, with different folders for each version. The folder naming convention is $
(PLATFORM)_Xcode$
(XCODE_VERSION_MAJOR)
, where $
(PLATFORM)
is the platform name (iOS
, tvOS
, visionOS
) and $
(XCODE_VERSION_MAJOR)
is a built-in variable provided by Xcode in the following format: XX00. For example, for a tvOS build using Xcode version 15.2, $
(XCODE_VERSION_MAJOR)
is 1500
, so the folder name is tvOS_Xcode1500
.
For a given iOS-based platform, all minor versions of Xcode are compatible if the major version matches. For example, an application built against Xcode 15.2 is compatible with Wwise libraries built against Xcode 15.0 (1500). Binaries from different iOS-based platforms are not compatible.
Note: Audiokinetic does not provide precompiled libraries for every Xcode release. Starting with Xcode 14, binaries compatible with stable releases of every major Xcode version are provided. Support for previous Xcode major versions will be removed when Apple's App Store stops accepting submissions for it. |
Using Bluetooth speakers and headphones induce a lot of latency in the audio. This is due to the Bluetooth compression and over-the-air communication stack in the OS itself. Because of this, latency-sensitive games such as rhythm games will have a degraded gameplay when the Bluetooth device is connected.
Wwise will automatically switch to a high latency mode to avoid stuttering when Bluetooth devices are used. It will revert back to regular latency when the device is disconnected, as specified by AkPlatformInitSettings.uNumRefillsInVoice
at initialization.
Note: Using a Bluetooth device with the "Play and Record" audio session will force the OS to downsample all audio to 8 kHz. This behavior is related to the Bluetooth driver itself. |
On iOS, many events such as an incoming phone or FaceTime call, usage of Siri, calendar alerts, or system sounds can prevent app audio from playing at any moment. Apple's audio session is the mechanic that handles the conflicts for access to audio hardware. Choosing the right audio session for your application is important. Fortunately, most of the implementation details when working with audio session are taken care of by the Wwise iOS SDK and little effort is required by the SDK client app to obtain a compliant and efficient audio app that behaves as expected. The following sections present the concept of the iOS audio session and its related Wwise-implemented policies.
iOS-Specific AkPlatformInitSettings
Apple requires third-party applications and SDKs to provide a reason for using certain privacy-sensitive APIs in the NSPrivacyAccessedAPITypes
entry in the privacy manifest (PrivacyInfo.xcprivacy
).
Some Wwise libraries or source code samples use some privacy-sensitive APIs as part of their implementation. Declare these usages in your application's privacy manifest:
fstat
: Used as part of the POSIX AkDefaultIOHookDeferred
sample. This sample is not used as part of the prebuilt Wwise SDK libraries. However, it is used by the Wwise Unity integration.For more information about the Privacy Manifest and NSPrivacyAccessedAPITypes
, refer to this Apple Developer documentation page: Describing use of required reason API .
Questions? Problems? Need more info? Contact us, and we can help!
Visit our Support pageRegister your project and we'll help you get started with no strings attached!
Get started with Wwise