AudioFocusManager
音频焦点管理器允许创建和销毁音频焦点会话。具体而言,此管理器通过让一个音频源正常播放,同时降低音量(也称为放弃)、暂停或停止其他音频源,从而防止多个音频源同时播放。
所需服务
API需要声明系统音频服务:
[wants]
[[wants.service]]
id = "com.amazon.audio.control"
使用的类型
*
构造函数
new AudioFocusManager()
new AudioFocusManager(): AudioFocusManager
返回值
属性
defaultFocusSession
staticdefaultFocusSession: AudioFocusSession =null
方法
createAudioFocusSessionAsync()
staticcreateAudioFocusSessionAsync():Promise<AudioFocusSession>
创建一个新的AudioFocusSession。每个会话可以独立管理音频焦点请求和回调。可以创建多个会话来独立管理不同的音频流。
示例用例:
- 不同的音乐播放和导航会话
- 语音助手回复的单独会话
- 游戏音频的独立会话
返回值
Promise<AudioFocusSession>
Promise 解析为如下的Promise:
- 新的AudioFocusSession对象(如果成功)
或显示以下拒绝结果:
STATUS_NO_MEMORY (-1): 分配会话失败STATUS_NO_INIT (-3): 未初始化音频焦点系统STATUS_DEAD_OBJECT (-5): 服务器通信错误
示例
/*
Promise解析后,返回AudioFocusSession对象
*\/
const session = AudioFocusManager.createAudioFocusSessionAsync()
.then((session) => {return session;}).catch((error) => console.log(error));
destroyAudioFocusSessionAsync()
staticdestroyAudioFocusSessionAsync(sessionObject: AudioFocusSession):Promise<AudioFocusStatus>
销毁现有的音频焦点会话并释放所有关联资源。当不再需要会话来释放系统资源时,必须调用此方法。该对话中所有活跃的焦点请求都将被自动释放。
重要须知: 销毁会话对象后,请勿尝试使用该对象。
参数
sessionObject
要销毁的会话
返回值
Promise<AudioFocusStatus>
Promise 解析为如下的Promise:
AUDIO_FOCUS_STATUS_NO_ERROR (0): 已成功销毁会话AUDIO_FOCUS_STATUS_BAD_VALUE (-2): 会话对象无效AUDIO_FOCUS_STATUS_NO_INIT (-3): 未初始化音频焦点系统AUDIO_FOCUS_STATUS_INVALID_OPERATION (-8): 会话已被销毁
示例
/*
假设会话是一个AudioFocusSession对象
销毁会话并返回解析为AudioFocusStatus类型的Promise
*\/
const status = AudioFocusManager.destroyAudioFocusSessionAsync(session)
.then((status) => {return status;}).catch((error) => console.log(error));
getDefaultAudioFocusSessionAsync()
staticgetDefaultAudioFocusSessionAsync():Promise<AudioFocusSession>
获取默认音频焦点会话。这是一个单例实例,在音频流未明确指定焦点会话时使用。默认会话在首次访问时创建,一直持续到应用程序终止。
重要注意事项:
- 使用默认焦点在所有组件之间共享默认会话
- 默认会话中的焦点更改会影响使用该会话的所有流
- 要实现独立焦点控制,改为创建专用会话
返回值
Promise<AudioFocusSession>
Promise 解析为如下的Promise:
- 默认AudioFocusSession实例,或通过以下项拒绝:
STATUS_NO_MEMORY (-1): 无法创建默认会话STATUS_NO_INIT (-3): 未初始化音频焦点系统STATUS_DEAD_OBJECT (-5): 服务器通信错误
示例
/*
Promise解析后,返回默认AudioFocusSession对象
*\/
const session = AudioFocusManager.getDefaultAudioFocusSessionAsync()
.then((session) => {return session;}).catch((error) => console.log(error));
getMajorVersion()
staticgetMajorVersion():number
获取AudioManager的主版本号。可用于兼容性检查和功能检测。
返回值
number
number 模块的主版本号
getMinorVersion()
staticgetMinorVersion():number
获取AudioManager的次版本号。可用于兼容性检查和功能检测。
返回值
number
number 模块的次版本号
getPatchVersion()
staticgetPatchVersion():number
获取AudioManager的补丁版本号。可用于兼容性检查和功能检测。
返回值
number
number 模块的补丁版本号
Last updated: 2026年7月22日

