版本
Wwise SDK 2023.1.3
|
为了让您的音频应用程序轻松正确地使用 Wwise SDK 管理音频会话,需要几个简单步骤。Wwise 在后台处理大量繁复的 iOS 音频会话,让用户能够专心处理应用程序的主要任务。所有音频中断和通路变换机制均由 Wwise 在内部处理,其关联回调对最终用户来说完全是可选的。在这些情况下,暂停和恢复声音引擎也由 SDK 处理。
要配置应用程序音频会话和不同的可用回调,请使用:
struct AkInitSettings
struct AkPlatformInitSettings
使用结构体 AkPlatformInitSettings::AkAudioSessionProperties
成员将 eCategory、eCategoryOptions 和 eMode 设置为期望的音频会话类别,为应用程序提供可选的不沿用选项和模式。
备注:
|
以下是 Wwise SDK 用户应用程序轻松创建完全符合 iOS 音频会话的音频应用程序所需的简单步骤:
结构体 AkPlatformInitSettings.audioSession.eCategory
设置为期望值。结构体 AkPlatformInitSettings.audioSession.eCategoryOptions
设置为期望值(可选)。struct AkPlatformInitSettings.audioCallbacks.interruptionCallback
设置为用户定义的回调方法。true
,因此,如果您的应用程序需要完全禁用音频引擎,则可以在用户中断回调中来执行。AVAudioSessionRouteChangeNotification
注册到 iOS NotificationCenter,并为它(回调)提供选择器备注: 请参阅 iOS Integration Demo IntegrationDemoAppDelegate.mm 源代码了解上述所有步骤的示例。 |
注意: 在通过 AK::SoundEngine::Init( &in_initSettings, &in_platformInitSettings ) 初始化声音引擎之前,请确保完成上述所有步骤。 |
备注: 只有音频会话类别AkAudioSessionCategoryPlayAndRecord 才能在应用程序后台状态下播放和/或录制音频。如果需要此行为,还必须在 Xcode 中修改应用程序信息 plist 来为“Required background modes”键添加“App plays audio or streams audio/video using Airplay”值。 |
您可以使用 AK::SoundEngine::iOS::ChangeAudioSessionProperties() API 调用来在声音引擎初始化后重新配置音频会话。这在应用程序临时需要话筒输入且需要在录制期间切换到 Play and Record 类别时非常有用。
备注: 在运行时更改音频会话属性会导致 Sink 被重置。这时音频播放会出现瞬时的毛刺噪声。因此,最好在应用程序处于静默状态时调用此 API。 |
如需查看有关如何完成此操作的演示,请参阅 iOS Integration Demo DemoAppLifecycle.cpp
源代码。
为了更好地理解各种音频会话共享场景中发生的总体调用流程,我们在此介绍一些示例,说明如何使用 Wwise 和 iOS 音频会话处理应用程序间的音频。
Ambient
或 PlayAndRecord
),则 Wwise SDK 会将后台音乐总线静音。AkAudioSessionCategoryAmbient
类别配置:AkAudioSessionCategorySoloAmbient
类别配置:AkAudioSessionCategoryPlayAndRecord
类别注册:AkAudioSessionCategorySoloAmbient
类别。AkAudioSessionCategoryAmbient
类别。