as

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

AudioManager

AudioManager

音频管理器允许进行音频管理,例如音量调整和静音控制。

所需权限

API需要特定权限才能执行某些操作:

[[needs.privilege]]
id = "com.amazon.audio.privilege.settings.control"

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

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

使用的类型

请参阅

  • *

构造函数

new AudioManager()

new AudioManager(): AudioManager

返回值

AudioManager

方法

allocateCustomAudioEffectSessionAsync()

static allocateCustomAudioEffectSessionAsync(): Promise<Int32>

为自定义音频效果创建唯一的会话ID。此ID可用于将音频效果与特定播放或录制流相关联。

返回值

Promise<Int32>

Promise 解析为如下的Promise:

  • 正数: 新的唯一会话ID

通过以下项拒绝:

  • (-1): 分配会话失败
  • (-5): 服务器连接丢失

areSystemSoundsEnabledAsync()

static areSystemSoundsEnabledAsync(): Promise<boolean>

检查系统声音当前是否已启用。

返回值

Promise<boolean>

Promise 解析为如下的Promise:

  • true: 系统声音已启用
  • false: 系统声音已禁用

通过以下项拒绝:

  • (-5): 服务器连接丢失

disableAvrcpAbsoluteVolumeAsync()

static disableAvrcpAbsoluteVolumeAsync(btAddress: String): Promise<AudioStatus>

禁用蓝牙设备的AVRCP绝对音量控制。禁用后,音量控制由系统处理。

需要权限:com.amazon.audio.privilege.settings.control

此API仅限于Kepler系统应用程序使用,其他应用无法使用。在权限不足的情况下调用此API可能会导致无操作或安全异常。

参数

btAddress

string

蓝牙设备地址

返回值

Promise<AudioStatus>

Promise 解析为如下的Promise:

  • (0): 成功
  • (-2): 地址无效
  • (-9): 缺少权限
  • (-8): 设备不支持AVRCP
  • (-5): 服务器连接丢失

disableSystemSoundsAsync()

static disableSystemSoundsAsync(): Promise<AudioStatus>

禁用所有系统声音。在通过enableSystemSoundsAsync重新启用之前,系统声音不会播放。

返回值

Promise<AudioStatus>

Promise 解析为如下的Promise:

  • (0): 成功
  • (-5): 服务器连接丢失
  • (-8): 操作失败

disableUsageAsync()

static disableUsageAsync(usage: Int32): Promise<AudioStatus>

禁用特定使用类型的音频播放。目前仅支持USAGE_NOTIFICATION

需要权限:com.amazon.audio.privilege.settings.control

此API仅限于Kepler系统应用程序使用,其他应用无法使用。在权限不足的情况下调用此API可能会导致无操作或安全异常。

参数

usage

Int32

要禁用的使用类型

返回值

Promise<AudioStatus>

Promise 解析为如下的Promise:

  • (0): 成功
  • (-2): 使用类型无效或不受支持
  • (-9): 缺少权限
  • (-5): 服务器连接丢失

enableAvrcpAbsoluteVolumeAsync()

static enableAvrcpAbsoluteVolumeAsync(btAddress: String): Promise<AudioStatus>

启用蓝牙设备的AVRCP绝对音量控制。启用后,音量控制将由蓝牙设备本身处理。

需要权限:com.amazon.audio.privilege.settings.control

此API仅限于Kepler系统应用程序使用,其他应用无法使用。在权限不足的情况下调用此API可能会导致无操作或安全异常。

参数

btAddress

string

蓝牙设备地址

返回值

Promise<AudioStatus>

Promise 解析为如下的Promise:

  • (0): 成功
  • (-2): 地址无效
  • (-9): 缺少权限
  • (-8): 设备不支持AVRCP
  • (-5): 服务器连接丢失

enableSystemSoundsAsync()

static enableSystemSoundsAsync(): Promise<AudioStatus>

禁用系统声音后将其启用。默认情况下,系统声音处于启用状态。

返回值

Promise<AudioStatus>

Promise 解析为如下的Promise:

  • (0): 成功
  • (-5): 服务器连接丢失
  • (-8): 操作失败

enableUsageAsync()

static enableUsageAsync(usage: Int32): Promise<AudioStatus>

为特定使用类型启用音频播放。目前仅支持USAGE_NOTIFICATION。设置其他使用类型时,该函数将抛出

“[com.amazon.apmf.SecurityError]: No Permission”异常。

需要权限:com.amazon.audio.privilege.settings.control

此API仅限于Kepler系统应用程序使用,其他应用无法使用。在权限不足的情况下调用此API可能会导致无操作或安全异常。

参数

usage

Int32

要启用的使用类型

返回值

Promise<AudioStatus>

Promise 解析为如下的Promise:

  • (0): 成功
  • (-2): 使用类型无效或不受支持
  • (-9): 缺少权限
  • (-5): 服务器连接丢失

getAudioDeviceListAsync()

static getAudioDeviceListAsync(device: AudioDevice, role: AudioRole): Promise<AudioDeviceInfo[]>

获取与指定角色匹配的可用音频设备的列表。

参数

device

AudioDevice

筛选依据的设备类型,若是针对所有设备则为DEVICE_ALL。值:

  • (0x0)
  • (1 30)
  • (1 0)
  • (1 1)
  • (1 2)
  • (1 3)
  • 以及其他在AudioDevice枚举中定义的内容
role

AudioRole

筛选依据的角色。值:

  • (0): 输入设备
  • (1): 输出设备
  • (2): 输入和输出设备

返回值

Promise<AudioDeviceInfo[]>

PromiseAudioDeviceInfo[] 可以解析为AudioDeviceInfo对象数组的Promise:

每个对象包含:

  • role: AudioRole
  • type: AudioDevice
  • name: string
  • formats: AudioSampleFormat[]
  • sampleRates: AudioSampleRate[]
  • channelMasks: AudioChannelMask[]

通过以下项拒绝:

  • (-2): 参数无效
  • (-5): 服务器连接丢失

getGlobalVolumeMuteAsync()

static getGlobalVolumeMuteAsync(): Promise<boolean>

获取当前的全局音量静音状态。

返回值

Promise<boolean>

Promise 解析为如下的Promise:

  • true: 全局静音已启用
  • false: 全局静音已禁用

通过以下项拒绝:

  • (-5): 服务器连接丢失

示例

/*
获取全局静音状态,并在解析Promise之后将布尔值存储在global_mute中
*\/

const global_mute = AudioManager.getGlobalVolumeMuteAsync().then((global_mute) => {return global_mute;}).catch((error) => console.log(error));


getMajorVersion()

static getMajorVersion(): number

获取AudioManager的主版本号。可用于进行版本检查。

返回值

number

number 主版本号


getMaxVolumeAsync()

static getMaxVolumeAsync(): Promise<Int32>

获取当前的最大音量限制。

返回值

Promise<Int32>

Promise 解析为如下的Promise:

  • 0-100: 当前最大音量限制

通过以下项拒绝:

  • (-5): 服务器连接丢失

示例

const testGetMaxVolume = async () => {
    let maxVolume = await AudioManager.getMaxVolumeAsync();
    console.log("getMaxVolumeAsync(): SUCCESS, Max volume: ", maxVolume);
};


getMicMuteAsync()

static getMicMuteAsync(): Promise<boolean>

获取当前麦克风静音状态。

返回值

Promise<boolean>

Promise 解析为如下的Promise:

  • true: 麦克风已静音
  • false: 麦克风未静音

通过以下项拒绝:

  • (-5): 服务器连接丢失

示例

/*
获取麦克风输入的静音状态,并在解析Promise之后将返回的布尔值
将返回的AudioStatus类型存储在status中
*\/

const mute_status = AudioManager.getMicMuteAsync()
.then((mute_status) => {return mute_status;}).catch((error) => console.log(error));


getMinorVersion()

static getMinorVersion(): number

获取AudioManager的次版本号。可用于进行版本检查。

返回值

number

number 次版本号


getMuteAsync()

static getMuteAsync(volType: AudioVolumeType): Promise<boolean>

获取特定音量类型的系统范围静音状态。

需要权限:com.amazon.audio.privilege.settings.control

此API仅限于Kepler系统应用程序使用,其他应用无法使用。在权限不足的情况下调用此API可能会导致无操作或安全异常。

参数

volType

AudioVolumeType

要查询的音量类型。有关类型的信息,请参见setVolumeAsync。

返回值

Promise<boolean>

Promise 解析为如下的Promise:

  • true: 音量类型已静音
  • false: 音量类型未静音

通过以下项拒绝:

  • (-2): 音量类型无效
  • (-9): 缺少权限
  • (-5): 服务器连接丢失

示例

const testGetMuteAsync = async () => {
    let muteStatus = await AudioManager.setMuteAsync(AudioVolumeType.VOLUME_TYPE_MEDIA);
    console.log("setMuteAsync(): SUCCESS, Mute state: ", Boolean(muteStatus));
};


getPatchVersion()

static getPatchVersion(): number

获取AudioManager的补丁版本号。可用于进行版本检查。

返回值

number

number 补丁版本号


getSinkFormatsSelectionPolicyAsync()

static getSinkFormatsSelectionPolicyAsync(): Promise<Int32>

获取当前选择音频输出格式的策略。

返回值

Promise<Int32>

Promise 解析为如下的Promise:

  • SinkFormatsSelectionPolicy值。参见

通过以下项拒绝:

  • (-5): 服务器连接丢失

示例

const testGetSinkFormatsSelectionPolicyAsync = async () => {
    let currentSinkPolicy = await AudioManager.getSinkFormatsSelectionPolicyAsync();
    console.log("getSinkFormatsSelectionPolicyAsync() Current format: ", currentSinkPolicy);
};


getSupportedPlaybackConfigurationsAsync()

static getSupportedPlaybackConfigurationsAsync(attributes: AudioAttributes, deviceType: Int32): Promise<AudioConfigAttr[]>

获取支持使用给定属性和设备进行播放的音频配置。使用它来确定格式、采样率和通道的有效组合。

参数

attributes

AudioAttributes

定义内容类型和使用类型的音频属性

deviceType

Int32

要查询的设备类型,使用DEVICE_DEFAULT获取当前输出

返回值

Promise<AudioConfigAttr[]>

PromiseAudioConfigAttr[] 解析为受支持配置的数组的Promise:

每个配置包含:

  • sampleRate: AudioSampleRate
  • channelMask: AudioChannelMask
  • format: AudioSampleFormat
  • layout: SampleLayout

通过以下项拒绝:

  • (-2): 参数无效
  • (-0): 没有可用的配置
  • (-5): 服务器连接丢失

示例

let supportedAudioConfigs = await AudioManager.getSupportedPlaybackConfigurationsAsync(configAttr, AudioDevice.DEVICE_DEFAULT);

for (let audioConfig: supportedAudioConfigs) {
  console.log("format", audioConfig.format);
  console.log("采样率", audioConfig.sampleRate);
  console.log("channel mask", audioConfig.channelMask);
  console.log("layout", audioConfig.layout);
}


getSupportedRecordConfigurationsAsync()

static getSupportedRecordConfigurationsAsync(excludeDisconnectedDevice: boolean, sourceType: Int32): Promise<AudioConfigAttr[]>

获取受支持的录制音频配置。使用此项来确定录制格式、采样率和通道的有效组合。

参数

excludeDisconnectedDevice

boolean

如果为true,则仅返回已连接设备的配置。如果为false,则返回配置文件中所有受支持的配置。

sourceType

Int32

用于查询配置的音频源类型

返回值

Promise<AudioConfigAttr[]>

PromiseAudioConfigAttr[] 解析为受支持配置的数组的Promise:

每个配置包含:

  • sampleRate: AudioSampleRate
  • channelMask: AudioChannelMask
  • format: AudioSampleFormat
  • layout: SampleLayout

通过以下项拒绝:

  • (-2): 参数无效
  • (-0): 没有可用的配置
  • (-5): 服务器连接丢失

getSupportedSinkFormatsSelectionPoliciesAsync()

static getSupportedSinkFormatsSelectionPoliciesAsync(): Promise<SinkPolicies[]>

获取支持的接收器格式选择策略列表。并非所有设备都支持所有策略 - 使用此项来确定可用选项。

返回值

Promise<SinkPolicies[]>

PromiseSinkPolicies[] 可以解析为受支持策略的数组的Promise:

每个条目包含:

  • 策略:编号(SinkFormatsSelectionPolicy值)

通过以下项拒绝:

  • (-5): 服务器连接丢失

示例

const testGetSupportedSinkFormatsSelectionPoliciesAsync = async () => {
    let supportedSinkFormats = await AudioManager.getSupportedSinkFormatsSelectionPoliciesAsync();

    if (supportedSinkFormats.length > 0) {
        supportedSinkFormats.forEach(data => {
            console.log("Supported policy (integer representation): ", parseInt(data), "\n");
        });
    }
};


getSystemSoundThemeAsync()

static getSystemSoundThemeAsync(): Promise<String>

获取当前处于活动状态的系统声音主题。

返回值

Promise<String>

Promise 解析为如下的Promise:

  • 字符串: 当前主题标识符

通过以下项拒绝:

  • (-1): 未设置主题
  • (-5): 服务器连接丢失

getSystemSoundThemeListAsync()

static getSystemSoundThemeListAsync(): Promise<AudioTheme[]>

获取所有受支持的系统声音主题的列表。系统声音主题为系统事件定义不同的声音集。

返回值

Promise<AudioTheme[]>

PromiseAudioTheme[] 可以解析为AudioTheme对象数组的Promise:

每个对象包含:

  • theme:字符串(主题标识符)

通过以下项拒绝:

  • (-1): 未找到主题文件
  • (-5): 服务器连接丢失

getTelephonyMuteAsync()

static getTelephonyMuteAsync(device: AudioDevice, address: String): Promise<boolean>

获取特定设备上电话音频的静音状态。

参数

device

AudioDevice

要查询的设备

address

string

设备的唯一标识符。

返回值

Promise<boolean>

Promise 解析为如下的Promise:

  • true: 电话音频已静音
  • false: 电话音频未静音

通过以下项拒绝:

  • (-2): 参数无效
  • (-8): 设备未处于电话模式
  • (-5): 服务器连接丢失

示例

let muteStatus = await AudioManager.getTelephonyMuteAsync(AudioDevice.DEVICE_TELEPHONY, "0X859978AF");
console.log("getTelephonyMuteAsync(): SUCCESS, Mute state: ", Boolean(muteStatus));


getVolumeAsync()

static getVolumeAsync(type: AudioVolumeType): Promise<Int32>

获取特定音频类型的系统范围当前音量。

需要权限:com.amazon.audio.privilege.settings.control

此API仅限于Kepler系统应用程序使用,其他应用无法使用。在权限不足的情况下调用此API可能会导致无操作或安全异常。

参数

type

AudioVolumeType

要查询的音频类型。有关类型的信息,请参见setVolumeAsync。

返回值

Promise<Int32>

Promise 解析为如下的Promise:

  • 0-100: 当前音量水平
  • (-2): 类型无效
  • (-9): 缺少权限
  • (-5): 服务器连接丢失

示例

/*
在解析Promise之后,检索音频类型媒体的音量百分比并将其存储在volume中
*\/

const volume = AudioManager.getVolumeAsync(AudioVolumeType.VOLUME_TYPE_MEDIA)
.then((volume) => {return volume;}).catch((error) => console.log(error));


isAvrcpAbsoluteVolumeEnabledAsync()

static isAvrcpAbsoluteVolumeEnabledAsync(btAddress: String): Promise<boolean>

检查蓝牙设备是否启用了AVRCP绝对音量控制。

参数

btAddress

string

蓝牙设备地址

返回值

Promise<boolean>

Promise 解析为如下的Promise:

  • true: AVRCP绝对音量已启用
  • false: AVRCP绝对音量已禁用 使用以下项拒绝:
  • (-2): 地址无效
  • (-8): 设备不支持AVRCP
  • (-5): 服务器连接丢失

isServerReadyAsync()

static isServerReadyAsync(): Promise<boolean>

检查音频服务器是否准备好处理命令。

返回值

Promise<boolean>

Promise 解析为如下的Promise:

  • true: 服务器准备就绪
  • false: 服务器尚未准备就绪

通过以下项拒绝:

  • (-5): 服务器连接丢失

示例

// 如果服务器准备好接收命令,则返回true;如果未准备就绪,则返回false
const server_ready = AudioManager.isServerReadyAsync()
.then((ready) => {return ready;}).catch((error) => console.log(error));


isUsageEnabledAsync()

static isUsageEnabledAsync(usage: Int32): Promise<boolean>

检查是否为特定使用类型启用了音频播放。

参数

usage

Int32

要查询的使用类型

返回值

Promise<boolean>

Promise 解析为如下的Promise:

  • true: 使用类型已启用
  • false: 使用类型已禁用

通过以下项拒绝:

  • (-2): 使用类型无效
  • (-5): 服务器连接丢失

playSystemSoundAsync()

static playSystemSoundAsync(soundType: AudioSystemSound): Promise<AudioStatus>

播放系统声音。

参数

soundType

AudioSystemSound

要播放的系统声音的类型。值:

  • BOOT_UP (0)
  • BACK_BUTTON (1)
  • HOME_BUTTON (4)
  • MENU_BUTTON (5)
  • UP/DOWN/LEFT/RIGHT (6/9)
  • MIC_ON/OFF (10/11)
  • BLUETOOTH related (12/14)
  • ERROR (15)
  • VOLUME_UP/DOWN (16/17)
  • 以及其他在AudioDevice枚举中定义的内容

返回值

Promise<AudioStatus>

Promise 解析为如下的Promise:

  • (0): 成功
  • (-2): 声音类型无效
  • (-1): 找不到声音文件
  • (-5): 服务器连接丢失

registerAudioEventObserverAsync()

static registerAudioEventObserverAsync(callback: (value: any) => void): Promise<AudioStatus>

注册音频系统事件的回调函数。在全系统范围内一次只能注册一个回调。

参数

callback

(value: any) => void

接收事件的回调函数:

  • (0): 音频设备连接已更改 参数:{device: AudioDevice, role: AudioRole, connect: boolean}
  • (1): 音量已更改 参数:{type: AudioVolumeType, volume: number}
  • (2): 全局静音已更改 参数:{mute: boolean}
  • (3): 音频服务器不可用
  • (4): 音频服务器可用
  • (5): 使用状态已更改 参数:{usage: AudioUsageType, active: boolean}
  • (6): 麦克风静音已更改 参数:{muteState: boolean}
  • (7): 音量类型静音已更改 参数:{volumeType: AudioVolumeType, muteState: boolean}
  • (8): 电话静音已更改 参数:deviceType: AudioDevice, deviceAddress: string, deviceName: string, muteState: boolean

返回值

Promise<AudioStatus>

Promise 解析为如下的Promise:

  • (0): 成功
  • (-2): 回调无效
  • (-4): 回调已注册
  • (-5): 服务器连接丢失

示例

/*
创建一个函数并将其注册到记录Audio Event Observer中,
以便在音频发生更改时执行此函数,并在解析Promise之后将返回的AudioStatus类型
存储在status中
*\/

// 注册系统范围的音频事件
await AudioManager.registerAudioEventObserverAsync((event) => {
    // 事件对象将根据事件类型包含不同的属性
    switch (event.audioEvent) {
        case AudioEvent.DEVICE_STATE_UPDATE:
            // 当音频设备的连接状态发生变化时触发
            // 参数:
            // - device: AudioDevice枚举值
            // - role: AudioRole枚举值
            // - connect:表示设备是已连接 (true) 还是已断开连接 (false) 的布尔值
            console.log(`Device ${event.device} with role ${event.role} ${event.connect ? 'connected' : 'disconnected'}`);
            break;

        case AudioEvent.VOLUME_UPDATE:
            // 当任何音频类型的音量发生变化时触发
            // 参数:
            // - type: AudioVolumeType枚举值
            // - volume:数字 (0-100)
            console.log('Volume changed for:', event.audioEvent, 'to:', event.volume);
            break;

        case AudioEvent.GLOBAL_VOLUME_MUTE_UPDATE:
            // 当全局静音状态发生变化时触发
            // 参数:
            // - mute:表示系统是否静音的布尔值
            console.log('全局静音更新为状态:', event.mute);
            break;

        case AudioEvent.SERVER_DOWN:
            // 当音频服务器变得不可用时触发
            console.log('音频服务器停止');
            break;

        case AudioEvent.SERVER_UP:
            // 当音频服务器变得可用时触发
            console.log('音频服务器已启动');
            break;

        case AudioEvent.AUDIO_USAGE_STATE_CHANGE:
            // 当音频使用状态发生变化时触发
            // 参数:
            // - usage: AudioUsageType枚举值
            // - active:表示使用是否处于活动状态的布尔值
            console.log('使用情况:', event.usage);
            console.log('活动状态:', event.active);
            break;

        case AudioEvent.MIC_MUTE_STATE_UPDATE:
            // 当麦克风静音状态发生变化时触发
            // 参数:
            // - state:表示麦克风是否静音的布尔值
            console.log('麦克风静音状态已更改:', event.muteState);
            break;

        case AudioEvent.VOLUME_MUTE_UPDATE:
            // 当特定音量类型的音量静音状态发生变化时触发
            // 参数:
            // - volumeType: AudioVolumeType枚举值
            // - mute:表示类型是否静音的布尔值
            console.log('Volume type: ', event.volumeType);
            console.log('静音状态:', event.muteState);
            break;

        case AudioEvent.TELEPHONY_MUTE_UPDATE:
            // 当电话静音状态发生变化时触发
            // 参数:
            // - deviceType: AudioDevice枚举值
            // - address:表示设备地址的字符串
            // - deviceName:表示设备名称的字符串
            // - mute:表示电话是否静音的布尔值
            console.log('电话静音更新!:');
            console.log('设备类型:', event.deviceType);
            console.log('设备地址:', event.deviceAddress);
            console.log('设备名称:', event.deviceName);
            console.log('设备静音状态:', event.muteState);
            break;
    }
});

// 清理
await AudioManager.unregisterAudioEventObserverAsync();


setActiveVolumeAsync()

static setActiveVolumeAsync(volume: Int32): Promise<AudioStatus>

设置当前活跃流的音量。活跃流由最新的音频焦点保持器确定。

需要权限:com.amazon.audio.privilege.settings.control

此API仅限于Kepler系统应用程序使用,其他应用无法使用。在权限不足的情况下调用此API可能会导致无操作或安全异常。

参数

volume

Int32

音量水平 (0-100)。超出此范围的值将被禁止。

返回值

Promise<AudioStatus>

Promise 解析为如下的Promise:

  • (0): 成功
  • (-2): 音量值无效
  • (-9): 缺少权限
  • (-8): 没有活跃流
  • (-5): 服务器连接丢失

示例

export const testSetActiveVolumeAsync = async (volume: number) => {
    let requestStatus = await AudioManager.setActiveVolumeAsync(parseInt(volume));

    if (requestStatus == 0) {
        console.log("setActiveVolumeAsync SUCCESS");
    } else {
        console.log("setActiveVolumeAsync(): ERROR: " + requestStatus);
    }
};


setGlobalVolumeMuteAsync()

static setGlobalVolumeMuteAsync(mute: boolean, flags?: AudioVolumeFlags): Promise<AudioStatus>

设置全局音量静音状态。启用后,无论单个音量设置如何,都会将所有音频输出静音。

需要权限:com.amazon.audio.privilege.settings.control

此API仅限于Kepler系统应用程序使用,其他应用无法使用。在权限不足的情况下调用此API可能会导致无操作或安全异常。

参数

mute

boolean

为true时表示启用全局静音,为false时表示禁用

flags?

AudioVolumeFlags

影响静音行为的可选标记:

  • (0): 没有特殊行为
  • (1): 显示静音状态用户界面
  • (2): 播放状态变更声音

返回值

Promise<AudioStatus>

Promise 解析为如下的Promise:

  • (0): 成功
  • (-9): 缺少权限
  • (-5): 服务器连接丢失
  • (-8): 操作失败

示例

/*
将全局静音设置为true,并在解析Promise之后将返回的AudioStatus类型
将返回的AudioStatus类型存储在status中
*\/

const status = AudioManager.setGlobalVolumeMuteAsync(true).then((status) => {return status;}).catch((error) => console.log(error));


setMaxVolumeAsync()

static setMaxVolumeAsync(maxVolume: Int32): Promise<AudioStatus>

设置所有音频类型的最大音量限制。这充当全局音量上限,影响所有音量类型。

需要权限:com.amazon.audio.privilege.settings.control

此API仅限于Kepler系统应用程序使用,其他应用无法使用。在权限不足的情况下调用此API可能会导致无操作或安全异常。

参数

maxVolume

Int32

最大音量水平 (0-100)。超出此范围的值将被禁止。当前超出此限制的音量将减小以符合限制。

返回值

Promise<AudioStatus>

Promise 解析为如下的Promise:

  • (0): 成功
  • (-2): 音量值无效
  • (-9): 缺少权限
  • (-5): 服务器连接丢失

示例

const testSetMaxVolume = async () => {
    let volumeChangeStatus = await AudioManager.setMaxVolumeAsync(50);
    if (volumeChangeStatus == 0) {
        console.log("setMaxVolumeAsync() SUCCESS");
    } else {
        console.log("setMaxVolumeAsync(): ERROR: " + volumeChangeStatus);
    }
};


setMicMuteAsync()

static setMicMuteAsync(mute: boolean): Promise<AudioStatus>

设置麦克风静音状态。这会影响源自麦克风的所有音频记录。

参数

mute

boolean

为true时表示将麦克风静音,为false时表示取消静音

返回值

Promise<AudioStatus>

Promise 解析为如下的Promise:

  • (0): 成功
  • (-5): 服务器连接丢失
  • (-8): 操作失败

示例

/*
将麦克风输入静音,并在解析Promise之后将返回的AudioStatus类型存储在status中
resolves
*\/

const status = AudioManager.setMicMuteAsync(true).then((status) => {return status;}).catch((error) => console.log(error));


setMuteAsync()

static setMuteAsync(volType: AudioVolumeType, mute: boolean): Promise<AudioStatus>

设置特定音量类型的系统范围静音状态。将音量类型设为静音会使该类型的所有音频流静音。

需要权限:com.amazon.audio.privilege.settings.control

此API仅限于Kepler系统应用程序使用,其他应用无法使用。在权限不足的情况下调用此API可能会导致无操作或安全异常。

参数

volType

AudioVolumeType

将音量类型设置为静音/取消静音。有关类型的信息,请参见setVolumeAsync。

mute

boolean

为true时表示静音,为false时表示取消静音

返回值

Promise<AudioStatus>

Promise 解析为如下的Promise:

  • (0): 成功
  • (-2): 音量类型无效
  • (-9): 缺少权限
  • (-5): 服务器连接丢失

示例

const testSetMuteAsync = async () => {
    let updateStatus = await AudioManager.setMuteAsync(AudioVolumeType.VOLUME_TYPE_MEDIA, true);

    if (updateStatus == 0) {
        console.log("setMuteAsync() SUCCESS");
    } else {
        console.log("setMuteAsync(): ERROR: " + updateStatus);
    }
};


setSinkFormatsSelectionPolicyAsync()

static setSinkFormatsSelectionPolicyAsync(policy: SinkFormatsSelectionPolicy): Promise<AudioStatus>

设置在HDMI/数字输出上选择音频输出格式的策略。这会影响音频在发送到支持设备时的编码方式。

参数

policy

SinkFormatsSelectionPolicy

格式选择策略:

  • (0): 根据接收器能力进行选择
  • (1): 强制PCM输出
  • (2): 允许Dolby Digital Plus直通
  • (3): 允许Dolby Digital直通
  • (4): 强制使用Dolby Digital Plus编码
  • (5): 强制使用Dolby Digital编码

返回值

Promise<AudioStatus>

Promise 解析为如下的Promise:

  • (0): 成功
  • (-2): 策略无效
  • (-8): 不支持的策略
  • (-5): 服务器连接丢失

示例

const testSetSinkFormatsSelectionPolicyAsync = async () => {
    let sinkStatus = await AudioManager.setSinkFormatsSelectionPolicyAsync(SinkFormatsSelectionPolicy.AUTO);
    if (sinkStatus == 0) {
        console.log("setSinkFormatsSelectionPolicyAsync(): Result: SUCCESS")
    } else {
        console.log("setSinkFormatsSelectionPolicyAsync(): Result: ERROR: ", sinkStatus);
    }
};


setSystemSoundThemeAsync()

static setSystemSoundThemeAsync(soundTheme: String): Promise<AudioStatus>

设置当前系统声音主题。该主题必须是getSystemSoundThemeListAsync返回的主题之一。

参数

soundTheme

string

主题标识符字符串

返回值

Promise<AudioStatus>

Promise 解析为如下的Promise:

  • (0): 成功
  • (-2): 主题无效
  • (-1): 未找到主题文件
  • (-5): 服务器连接丢失

setTelephonyMuteAsync()

static setTelephonyMuteAsync(device: AudioDevice, address: String, mute: boolean): Promise<AudioStatus>

设置特定设备上电话音频的静音状态。

参数

device

AudioDevice

用于设置静音状态的设备

address

string

设备的唯一标识符。

mute

boolean

为true时表示静音,为false时表示取消静音

返回值

Promise<AudioStatus>

Promise 解析为如下的Promise:

  • (0): 成功
  • (-2): 参数无效
  • (-8): 设备未处于电话模式
  • (-5): 服务器连接丢失

示例

let muteStatus = await AudioManager.setTelephonyMuteAsync(AudioDevice.DEVICE_TELEPHONY, "0X859978AF", true);
if (muteStatus == 0) {
    console.log("setTelephonyMuteAsync(): Result: SUCCESS")
    status = status + "setTelephonyMuteAsync():\nResult: SUCCESS\n";
} else {
    console.log("setTelephonyMuteAsync(): Result: ERROR: ", muteStatus);
    status = status + "setTelephonyMuteAsync():\nResult: ERROR: " + muteStatus.toString() + "\n";
}


setVolumeAsync()

static setVolumeAsync(type: AudioVolumeType, volume: Int32, flags?: AudioVolumeFlags): Promise<AudioStatus>

设置特定音频类型的系统范围音量。

需要权限:com.amazon.audio.privilege.settings.control

此API仅限于Kepler系统应用程序使用,其他应用无法使用。在权限不足的情况下调用此API可能会导致无操作或安全异常。

参数

type

AudioVolumeType

要调整的音频类型:

  • (-1)
  • (0)
  • (1)
  • (2)
  • (3)
  • (4)
  • (5)
  • (6)
  • (7)
  • (8)
volume

Int32

音量水平 (0-100)。超出此范围的值将被禁止。

flags?

AudioVolumeFlags

影响音量变化行为的可选标记:

  • (0): 没有特殊行为
  • (1): 显示音量滑块用户界面
  • (2): 播放音量变化的声音

返回值

Promise<AudioStatus>

Promise 解析为如下的Promise:

  • (0): 成功
  • (-2): 类型或音量无效
  • (-9): 缺少权限
  • (-5): 服务器连接丢失

示例

/*
将音频类型警报的音量设置为50%。在解析Promise之后,将返回的AudioStatus类型
存储在status中;如果解析Promise失败,
则存储undefined并打印错误
*\/

const status = AudioManager.setVolumeAsync(AudioVolumeType.VOLUME_TYPE_ALARM, 50)
.then((status) => {return status;}).catch((error) => console.log(error));


startTelephonyAsync()

static startTelephonyAsync(device: AudioDevice, address: String, mode: AudioTelephonyMode): Promise<AudioStatus>

从指定设备开始电话呼叫

客户端只需指定设备DEVICE_DEFAULT即可让音频服务器确定电话并发起呼叫。在某些特定平台上,可以支持多个电话来源,例如HFP设备、语音呼叫调制解调器等。在这种情况下,客户端实际上可以使用API查询设备列表,然后选择特定的设备和相应的地址。

参数

device

AudioDevice

用于电话音频的设备。常用值为:

  • (1 30)
  • (1 2)
  • (1 18)
  • (1 1)
address

string

设备的唯一标识符(例如,蓝牙地址)

mode

AudioTelephonyMode

电话音频模式:

  • MODE_NARROW_BAND (0): 标准语音质量
  • MODE_WIDE_BAND (1): 高清语音质量

返回值

Promise<AudioStatus>

Promise 解析为如下的Promise:

  • (0): 成功
  • (-2): 参数无效
  • (-8): 无可用的设备
  • (-5): 服务器连接丢失

stopTelephonyAsync()

static stopTelephonyAsync(device: AudioDevice, address: String): Promise<AudioStatus>

停止指定设备上的电话音频。必须在通话结束或不再需要电话音频时呼叫。

参数

device

AudioDevice

停止开启电话音频的设备

address

string

设备的唯一标识符(例如,蓝牙地址)

返回值

Promise<AudioStatus>

Promise 解析为如下的Promise:

  • (0): 成功
  • (-2): 参数无效
  • (-8): 电话未激活
  • (-5): 服务器连接丢失

unregisterAudioEventObserverAsync()

static unregisterAudioEventObserverAsync(): Promise<AudioStatus>

取消注册之前注册的音频事件回调。

返回值

Promise<AudioStatus>

Promise 解析为如下的Promise:

  • (0): 成功
  • (-8): 未注册任何回调
  • (-5): 服务器连接丢失

示例

/*
取消注册回调函数,并在解析promise后
将返回的AudioStatus类型存储在status中
*\/

const status = AudioManager.unregisterAudioEventObserverAsync().then((status) => {return status;}).catch((error) => console.log(error));


updateActiveVolumeAsync()

static updateActiveVolumeAsync(update: Int32, fallbackType: AudioVolumeType): Promise<AudioStatus>

通过递增或递减来更新活动流的音量。如果没有流处于活动状态,则调整指定回退类型的系统范围音量。

需要权限:com.amazon.audio.privilege.settings.control

此API仅限于Kepler系统应用程序使用,其他应用无法使用。在权限不足的情况下调用此API可能会导致无操作或安全异常。

参数

update

Int32

更新类型:

  • (0): 逐步增大音量
  • (1): 将音量降低一个步幅
fallbackType

AudioVolumeType

没有活跃流时要调整的音量类型

返回值

Promise<AudioStatus>

Promise 解析为如下的Promise:

  • (0): 成功
  • (-2): 参数无效
  • (-9): 缺少权限
  • (-5): 服务器连接丢失

示例

const testUpdateActiveVolumeAsync = async () => {
    let updateStatus = await AudioManager.updateActiveVolumeAsync(0, AudioVolumeType.VOLUME_TYPE_MEDIA);

    if (updateStatus == 0) {
        console.log("updateActiveVolumeAsync() SUCCESS");
    } else {
        console.log("updateActiveVolumeAsync(): ERROR: " + updateStatus);
    }
};


updateVolumeAsync()

static updateVolumeAsync(type: AudioVolumeType, volume: Int32): Promise<AudioStatus>

通过递增或递减来更新特定音频类型的系统范围音量。

需要权限:com.amazon.audio.privilege.settings.control

此API仅限于Kepler系统应用程序使用,其他应用无法使用。在权限不足的情况下调用此API可能会导致无操作或安全异常。

参数

type

AudioVolumeType

要调整的音频类型。有关类型的信息,请参见setVolumeAsync。

volume

Int32

更新类型:

  • (0): 逐步增大音量
  • (1): 将音量降低一个步幅

返回值

Promise<AudioStatus>

Promise 解析为如下的Promise:

  • (0): 成功
  • (-2): 参数无效
  • (-9): 缺少权限
  • (-5): 服务器连接丢失

示例

const testUpdateVolumeAsync = async () => {
    let updateStatus = await AudioManager.updateVolumeAsync(AudioVolumeType.VOLUME_TYPE_MEDIA, 0);

    if (updateStatus == 0) {
        console.log("updateVolumeAsync() SUCCESS");
    } else {
        console.log("updateVolumeAsync(): ERROR: " + updateStatus);
    }
};


Last updated: 2026年7月22日