as

Settings
Sign out
Notifications
Alexa
亚马逊应用商店
Ring
AWS
文档
Support
Contact Us
My Cases
新手入门
设计和开发
应用发布
参考
支持

AudioFocusManager

AudioFocusManager

音频焦点管理器允许创建和销毁音频焦点会话。具体而言,此管理器通过让一个音频源正常播放,同时降低音量(也称为放弃)、暂停或停止其他音频源,从而防止多个音频源同时播放。

所需服务

API需要声明系统音频服务:

[wants]
[[wants.service]]
id = "com.amazon.audio.control"

使用的类型

*

构造函数

new AudioFocusManager()

new AudioFocusManager(): AudioFocusManager

返回值

AudioFocusManager

属性

defaultFocusSession

static defaultFocusSession: AudioFocusSession = null

方法

createAudioFocusSessionAsync()

static createAudioFocusSessionAsync(): 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()

static destroyAudioFocusSessionAsync(sessionObject: AudioFocusSession): Promise<AudioFocusStatus>

销毁现有的音频焦点会话并释放所有关联资源。当不再需要会话来释放系统资源时,必须调用此方法。该对话中所有活跃的焦点请求都将被自动释放。

重要须知: 销毁会话对象后,请勿尝试使用该对象。

参数

sessionObject

AudioFocusSession

要销毁的会话

返回值

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()

static getDefaultAudioFocusSessionAsync(): 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()

static getMajorVersion(): number

获取AudioManager的主版本号。可用于兼容性检查和功能检测。

返回值

number

number 模块的主版本号


getMinorVersion()

static getMinorVersion(): number

获取AudioManager的次版本号。可用于兼容性检查和功能检测。

返回值

number

number 模块的次版本号


getPatchVersion()

static getPatchVersion(): number

获取AudioManager的补丁版本号。可用于兼容性检查和功能检测。

返回值

number

number 模块的补丁版本号


Last updated: 2026年7月22日