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
返回值
方法
allocateCustomAudioEffectSessionAsync()
staticallocateCustomAudioEffectSessionAsync():Promise<Int32>
为自定义音频效果创建唯一的会话ID。此ID可用于将音频效果与特定播放或录制流相关联。
返回值
Promise<Int32>
Promise 解析为如下的Promise:
- 正数: 新的唯一会话ID
通过以下项拒绝:
- (-1): 分配会话失败
- (-5): 服务器连接丢失
areSystemSoundsEnabledAsync()
staticareSystemSoundsEnabledAsync():Promise<boolean>
检查系统声音当前是否已启用。
返回值
Promise<boolean>
Promise 解析为如下的Promise:
true: 系统声音已启用false: 系统声音已禁用
通过以下项拒绝:
- (-5): 服务器连接丢失
disableAvrcpAbsoluteVolumeAsync()
staticdisableAvrcpAbsoluteVolumeAsync(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()
staticdisableSystemSoundsAsync():Promise<AudioStatus>
禁用所有系统声音。在通过enableSystemSoundsAsync重新启用之前,系统声音不会播放。
返回值
Promise<AudioStatus>
Promise 解析为如下的Promise:
- (0): 成功
- (-5): 服务器连接丢失
- (-8): 操作失败
disableUsageAsync()
staticdisableUsageAsync(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()
staticenableAvrcpAbsoluteVolumeAsync(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()
staticenableSystemSoundsAsync():Promise<AudioStatus>
禁用系统声音后将其启用。默认情况下,系统声音处于启用状态。
返回值
Promise<AudioStatus>
Promise 解析为如下的Promise:
- (0): 成功
- (-5): 服务器连接丢失
- (-8): 操作失败
enableUsageAsync()
staticenableUsageAsync(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()
staticgetAudioDeviceListAsync(device: AudioDevice, role: AudioRole):Promise<AudioDeviceInfo[]>
获取与指定角色匹配的可用音频设备的列表。
参数
device
筛选依据的设备类型,若是针对所有设备则为DEVICE_ALL。值:
- (0x0)
- (1 30)
- (1 0)
- (1 1)
- (1 2)
- (1 3)
- 以及其他在AudioDevice枚举中定义的内容
role
筛选依据的角色。值:
- (0): 输入设备
- (1): 输出设备
- (2): 输入和输出设备
返回值
Promise<AudioDeviceInfo[]>
PromiseAudioDeviceInfo[] 可以解析为AudioDeviceInfo对象数组的Promise:
每个对象包含:
role: AudioRoletype: AudioDevicename: stringformats: AudioSampleFormat[]sampleRates: AudioSampleRate[]channelMasks: AudioChannelMask[]
通过以下项拒绝:
- (-2): 参数无效
- (-5): 服务器连接丢失
getGlobalVolumeMuteAsync()
staticgetGlobalVolumeMuteAsync():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()
staticgetMajorVersion():number
获取AudioManager的主版本号。可用于进行版本检查。
返回值
number
number 主版本号
getMaxVolumeAsync()
staticgetMaxVolumeAsync():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()
staticgetMicMuteAsync():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()
staticgetMinorVersion():number
获取AudioManager的次版本号。可用于进行版本检查。
返回值
number
number 次版本号
getMuteAsync()
staticgetMuteAsync(volType: AudioVolumeType):Promise<boolean>
获取特定音量类型的系统范围静音状态。
需要权限:com.amazon.audio.privilege.settings.control
此API仅限于Kepler系统应用程序使用,其他应用无法使用。在权限不足的情况下调用此API可能会导致无操作或安全异常。
参数
volType
要查询的音量类型。有关类型的信息,请参见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()
staticgetPatchVersion():number
获取AudioManager的补丁版本号。可用于进行版本检查。
返回值
number
number 补丁版本号
getSinkFormatsSelectionPolicyAsync()
staticgetSinkFormatsSelectionPolicyAsync():Promise<Int32>
获取当前选择音频输出格式的策略。
返回值
Promise<Int32>
Promise 解析为如下的Promise:
- SinkFormatsSelectionPolicy值。参见
通过以下项拒绝:
- (-5): 服务器连接丢失
示例
const testGetSinkFormatsSelectionPolicyAsync = async () => {
let currentSinkPolicy = await AudioManager.getSinkFormatsSelectionPolicyAsync();
console.log("getSinkFormatsSelectionPolicyAsync() Current format: ", currentSinkPolicy);
};
getSupportedPlaybackConfigurationsAsync()
staticgetSupportedPlaybackConfigurationsAsync(attributes: AudioAttributes, deviceType:Int32):Promise<AudioConfigAttr[]>
获取支持使用给定属性和设备进行播放的音频配置。使用它来确定格式、采样率和通道的有效组合。
参数
attributes
定义内容类型和使用类型的音频属性
deviceType
Int32
要查询的设备类型,使用DEVICE_DEFAULT获取当前输出
返回值
Promise<AudioConfigAttr[]>
PromiseAudioConfigAttr[] 解析为受支持配置的数组的Promise:
每个配置包含:
sampleRate: AudioSampleRatechannelMask: AudioChannelMaskformat: AudioSampleFormatlayout: 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()
staticgetSupportedRecordConfigurationsAsync(excludeDisconnectedDevice:boolean, sourceType:Int32):Promise<AudioConfigAttr[]>
获取受支持的录制音频配置。使用此项来确定录制格式、采样率和通道的有效组合。
参数
excludeDisconnectedDevice
boolean
如果为true,则仅返回已连接设备的配置。如果为false,则返回配置文件中所有受支持的配置。
sourceType
Int32
用于查询配置的音频源类型
返回值
Promise<AudioConfigAttr[]>
PromiseAudioConfigAttr[] 解析为受支持配置的数组的Promise:
每个配置包含:
sampleRate: AudioSampleRatechannelMask: AudioChannelMaskformat: AudioSampleFormatlayout: SampleLayout
通过以下项拒绝:
- (-2): 参数无效
- (-0): 没有可用的配置
- (-5): 服务器连接丢失
getSupportedSinkFormatsSelectionPoliciesAsync()
staticgetSupportedSinkFormatsSelectionPoliciesAsync():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()
staticgetSystemSoundThemeAsync():Promise<String>
获取当前处于活动状态的系统声音主题。
返回值
Promise<String>
Promise 解析为如下的Promise:
- 字符串: 当前主题标识符
通过以下项拒绝:
- (-1): 未设置主题
- (-5): 服务器连接丢失
getSystemSoundThemeListAsync()
staticgetSystemSoundThemeListAsync():Promise<AudioTheme[]>
获取所有受支持的系统声音主题的列表。系统声音主题为系统事件定义不同的声音集。
返回值
Promise<AudioTheme[]>
PromiseAudioTheme[] 可以解析为AudioTheme对象数组的Promise:
每个对象包含:
theme:字符串(主题标识符)
通过以下项拒绝:
- (-1): 未找到主题文件
- (-5): 服务器连接丢失
getTelephonyMuteAsync()
staticgetTelephonyMuteAsync(device: AudioDevice, address:String):Promise<boolean>
获取特定设备上电话音频的静音状态。
参数
device
要查询的设备
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()
staticgetVolumeAsync(type: AudioVolumeType):Promise<Int32>
获取特定音频类型的系统范围当前音量。
需要权限:com.amazon.audio.privilege.settings.control
此API仅限于Kepler系统应用程序使用,其他应用无法使用。在权限不足的情况下调用此API可能会导致无操作或安全异常。
参数
type
要查询的音频类型。有关类型的信息,请参见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()
staticisAvrcpAbsoluteVolumeEnabledAsync(btAddress:String):Promise<boolean>
检查蓝牙设备是否启用了AVRCP绝对音量控制。
参数
btAddress
string
蓝牙设备地址
返回值
Promise<boolean>
Promise 解析为如下的Promise:
true: AVRCP绝对音量已启用false: AVRCP绝对音量已禁用 使用以下项拒绝:- (-2): 地址无效
- (-8): 设备不支持AVRCP
- (-5): 服务器连接丢失
isServerReadyAsync()
staticisServerReadyAsync():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()
staticisUsageEnabledAsync(usage:Int32):Promise<boolean>
检查是否为特定使用类型启用了音频播放。
参数
usage
Int32
要查询的使用类型
返回值
Promise<boolean>
Promise 解析为如下的Promise:
true: 使用类型已启用false: 使用类型已禁用
通过以下项拒绝:
- (-2): 使用类型无效
- (-5): 服务器连接丢失
playSystemSoundAsync()
staticplaySystemSoundAsync(soundType: AudioSystemSound):Promise<AudioStatus>
播放系统声音。
参数
soundType
要播放的系统声音的类型。值:
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()
staticregisterAudioEventObserverAsync(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()
staticsetActiveVolumeAsync(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()
staticsetGlobalVolumeMuteAsync(mute:boolean, flags?: AudioVolumeFlags):Promise<AudioStatus>
设置全局音量静音状态。启用后,无论单个音量设置如何,都会将所有音频输出静音。
需要权限:com.amazon.audio.privilege.settings.control
此API仅限于Kepler系统应用程序使用,其他应用无法使用。在权限不足的情况下调用此API可能会导致无操作或安全异常。
参数
mute
boolean
为true时表示启用全局静音,为false时表示禁用
flags?
影响静音行为的可选标记:
- (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()
staticsetMaxVolumeAsync(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()
staticsetMicMuteAsync(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()
staticsetMuteAsync(volType: AudioVolumeType, mute:boolean):Promise<AudioStatus>
设置特定音量类型的系统范围静音状态。将音量类型设为静音会使该类型的所有音频流静音。
需要权限:com.amazon.audio.privilege.settings.control
此API仅限于Kepler系统应用程序使用,其他应用无法使用。在权限不足的情况下调用此API可能会导致无操作或安全异常。
参数
volType
将音量类型设置为静音/取消静音。有关类型的信息,请参见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()
staticsetSinkFormatsSelectionPolicyAsync(policy: SinkFormatsSelectionPolicy):Promise<AudioStatus>
设置在HDMI/数字输出上选择音频输出格式的策略。这会影响音频在发送到支持设备时的编码方式。
参数
policy
格式选择策略:
- (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()
staticsetSystemSoundThemeAsync(soundTheme:String):Promise<AudioStatus>
设置当前系统声音主题。该主题必须是getSystemSoundThemeListAsync返回的主题之一。
参数
soundTheme
string
主题标识符字符串
返回值
Promise<AudioStatus>
Promise 解析为如下的Promise:
- (0): 成功
- (-2): 主题无效
- (-1): 未找到主题文件
- (-5): 服务器连接丢失
setTelephonyMuteAsync()
staticsetTelephonyMuteAsync(device: AudioDevice, address:String, mute:boolean):Promise<AudioStatus>
设置特定设备上电话音频的静音状态。
参数
device
用于设置静音状态的设备
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()
staticsetVolumeAsync(type: AudioVolumeType, volume:Int32, flags?: AudioVolumeFlags):Promise<AudioStatus>
设置特定音频类型的系统范围音量。
需要权限:com.amazon.audio.privilege.settings.control
此API仅限于Kepler系统应用程序使用,其他应用无法使用。在权限不足的情况下调用此API可能会导致无操作或安全异常。
参数
type
要调整的音频类型:
- (-1)
- (0)
- (1)
- (2)
- (3)
- (4)
- (5)
- (6)
- (7)
- (8)
volume
Int32
音量水平 (0-100)。超出此范围的值将被禁止。
flags?
影响音量变化行为的可选标记:
- (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()
staticstartTelephonyAsync(device: AudioDevice, address:String, mode: AudioTelephonyMode):Promise<AudioStatus>
从指定设备开始电话呼叫
客户端只需指定设备DEVICE_DEFAULT即可让音频服务器确定电话并发起呼叫。在某些特定平台上,可以支持多个电话来源,例如HFP设备、语音呼叫调制解调器等。在这种情况下,客户端实际上可以使用API查询设备列表,然后选择特定的设备和相应的地址。
参数
device
用于电话音频的设备。常用值为:
- (1 30)
- (1 2)
- (1 18)
- (1 1)
address
string
设备的唯一标识符(例如,蓝牙地址)
mode
电话音频模式:
MODE_NARROW_BAND (0): 标准语音质量MODE_WIDE_BAND (1): 高清语音质量
返回值
Promise<AudioStatus>
Promise 解析为如下的Promise:
- (0): 成功
- (-2): 参数无效
- (-8): 无可用的设备
- (-5): 服务器连接丢失
stopTelephonyAsync()
staticstopTelephonyAsync(device: AudioDevice, address:String):Promise<AudioStatus>
停止指定设备上的电话音频。必须在通话结束或不再需要电话音频时呼叫。
参数
device
停止开启电话音频的设备
address
string
设备的唯一标识符(例如,蓝牙地址)
返回值
Promise<AudioStatus>
Promise 解析为如下的Promise:
- (0): 成功
- (-2): 参数无效
- (-8): 电话未激活
- (-5): 服务器连接丢失
unregisterAudioEventObserverAsync()
staticunregisterAudioEventObserverAsync():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()
staticupdateActiveVolumeAsync(update:Int32, fallbackType: AudioVolumeType):Promise<AudioStatus>
通过递增或递减来更新活动流的音量。如果没有流处于活动状态,则调整指定回退类型的系统范围音量。
需要权限:com.amazon.audio.privilege.settings.control
此API仅限于Kepler系统应用程序使用,其他应用无法使用。在权限不足的情况下调用此API可能会导致无操作或安全异常。
参数
update
Int32
更新类型:
- (0): 逐步增大音量
- (1): 将音量降低一个步幅
fallbackType
没有活跃流时要调整的音量类型
返回值
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()
staticupdateVolumeAsync(type: AudioVolumeType, volume:Int32):Promise<AudioStatus>
通过递增或递减来更新特定音频类型的系统范围音量。
需要权限:com.amazon.audio.privilege.settings.control
此API仅限于Kepler系统应用程序使用,其他应用无法使用。在权限不足的情况下调用此API可能会导致无操作或安全异常。
参数
type
要调整的音频类型。有关类型的信息,请参见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日

