说明
chrome.audio
API 的提供是为了让用户能够获取有关连接到系统的音频设备的信息并控制这些设备。此 API 目前仅适用于 ChromeOS 的自助服务终端模式。
权限
audio
可用性
类型
AudioDeviceInfo
属性
-
deviceName
字符串
设备名称。
-
deviceType
设备类型。
-
displayName
字符串
简单易懂的名称(例如“USB 麦克风”)。
-
id
字符串
音频设备的唯一标识符。
-
isActive
布尔值
如果这是当前处于活动状态的设备,则为 true。
-
level
数值
设备的音量、输出音量、输入增益。
-
stableDeviceId
字符串(选填)
稳定/持久的设备 ID 字符串(如果有)。
-
streamType
与此设备关联的串流类型。
DeviceFilter
属性
-
isActive
布尔值(可选)
如果设置,则只有处于活动状态与此值匹配的音频设备才会满足过滤条件。
-
streamTypes
StreamType[] 可选
如果设置了此过滤条件,则只有流式传输类型包含在此列表中的音频设备才会满足过滤条件。
DeviceIdLists
属性
-
输入
string[] 可选
按 ID 指定的输入设备列表。
如需指明输入设备不受影响,请将此属性保持未设置状态。
-
output
string[] 可选
按 ID 指定的输出设备列表。
如需指明输出设备不受影响,请将此属性保持未设置状态。
DeviceProperties
属性
-
level
number 可选
音频设备的所需音量。默认为设备的当前音量。
如果与音频输入设备搭配使用,则表示音频设备增益。
如果与音频输出设备搭配使用,则表示音频设备音量。
DeviceType
可用的音频设备类型。
枚举
"HEADPHONE"
“MIC”
"USB"
"BLUETOOTH"
"HDMI"
"INTERNAL_SPEAKER"
"INTERNAL_MIC"
"FRONT_MIC"
"REAR_MIC"
"KEYBOARD_MIC"
"HOTWORD"
"LINEOUT"
"POST_MIX_LOOPBACK"
"POST_DSP_LOOPBACK"
"ALSA_LOOPBACK"
“OTHER”
LevelChangedEvent
属性
-
deviceId
字符串
音量发生变化的设备的 ID。
-
level
数值
设备的新音量。
MuteChangedEvent
属性
-
isMuted
布尔值
直播目前是否已静音。
-
streamType
静音值已更改的数据流的类型。更新后的静音值会应用于使用此串流类型的所有设备。
StreamType
音频设备提供的串流类型。
枚举
"INPUT"
"OUTPUT"
方法
getDevices()
chrome.audio.getDevices(
filter?: DeviceFilter,
callback?: function,
)
获取根据 filter
过滤的音频设备列表。
参数
-
filter
DeviceFilter(可选)
用于过滤返回的音频设备列表的设备属性。如果未设置过滤条件或将其设置为
{}
,则返回的设备列表将包含所有可用的音频设备。 -
callback
函数(可选)
callback
参数如下所示:(devices: AudioDeviceInfo[]) => void
-
设备
-
返回
-
Promise<AudioDeviceInfo[]>
Chrome 116 及更高版本清单 V3 及更高版本支持 Promise,但为了实现向后兼容性,我们提供了回调。您不能在同一函数调用中同时使用这两种方法。promise 的解析结果与传递给回调的类型相同。
getMute()
chrome.audio.getMute(
streamType: StreamType,
callback?: function,
)
获取指定串流类型的系统级静音状态。
参数
-
streamType
应提取静音状态的直播类型。
-
callback
函数(可选)
callback
参数如下所示:(value: boolean) => void
-
值
布尔值
-
返回
-
Promise<boolean>
Chrome 116 及更高版本清单 V3 及更高版本支持 Promise,但为了实现向后兼容性,我们提供了回调。您不能在同一函数调用中同时使用这两种方法。promise 的解析结果与传递给回调的类型相同。
setActiveDevices()
chrome.audio.setActiveDevices(
ids: DeviceIdLists,
callback?: function,
)
设置活跃输入和/或输出设备的列表。
参数
-
ids
指定应处于活动状态的设备的 ID。如果未设置输入或输出列表,则该类别中的设备不会受到影响。
传入不存在的设备 ID 是错误的。
-
callback
函数(可选)
callback
参数如下所示:() => void
返回
-
Promise<void>
Chrome 116 及更高版本清单 V3 及更高版本支持 Promise,但为了实现向后兼容性,我们提供了回调。您不能在同一函数调用中同时使用这两种方法。promise 的解析结果与传递给回调的类型相同。
setMute()
chrome.audio.setMute(
streamType: StreamType,
isMuted: boolean,
callback?: function,
)
设置数据流类型的静音状态。静音状态将应用于具有指定音频流类型的所有音频设备。
参数
-
streamType
应为其设置静音状态的串流类型。
-
isMuted
布尔值
新的静音值。
-
callback
函数(可选)
callback
参数如下所示:() => void
返回
-
Promise<void>
Chrome 116 及更高版本清单 V3 及更高版本支持 Promise,但为了实现向后兼容性,我们提供了回调。您不能在同一函数调用中同时使用这两种方法。promise 的解析结果与传递给回调的类型相同。
setProperties()
chrome.audio.setProperties(
id: string,
properties: DeviceProperties,
callback?: function,
)
设置输入或输出设备的属性。
参数
-
id
字符串
-
媒体资源
-
callback
函数(可选)
callback
参数如下所示:() => void
返回
-
Promise<void>
Chrome 116 及更高版本清单 V3 及更高版本支持 Promise,但为了实现向后兼容性,我们提供了回调。您不能在同一函数调用中同时使用这两种方法。promise 的解析结果与传递给回调的类型相同。
事件
onDeviceListChanged
chrome.audio.onDeviceListChanged.addListener(
callback: function,
)
当音频设备发生变化(添加新设备或移除现有设备)时触发。
参数
-
callback
函数
callback
参数如下所示:(devices: AudioDeviceInfo[]) => void
-
设备
-
onLevelChanged
chrome.audio.onLevelChanged.addListener(
callback: function,
)
当处于活动状态的音频设备的音量发生变化时触发。
参数
-
callback
函数
callback
参数如下所示:(event: LevelChangedEvent) => void
onMuteChanged
chrome.audio.onMuteChanged.addListener(
callback: function,
)
当音频输入或输出的静音状态发生变化时触发。请注意,静音状态是系统级的,新值会应用于具有指定串流类型的每台音频设备。
参数
-
callback
函数
callback
参数如下所示:(event: MuteChangedEvent) => void