说明
通过提供 chrome.audio
API,用户可以获取有关系统连接到的音频设备的信息并控制该设备。此 API 目前只能在适用于 ChromeOS 的自助服务终端模式下使用。
权限
audio
可用性
类型
AudioDeviceInfo
属性
-
deviceName
字符串
设备名称。
-
deviceType
设备类型。
-
displayName
字符串
简单易懂的名称(例如“USB 麦克风”)。
-
id
字符串
音频设备的唯一标识符。
-
isActive
布尔值
如果这是当前活跃设备,则为 true。
-
level
number
设备的音量、输出的音量、输入的增益。
-
stableDeviceId
字符串(可选)
稳定/持久保留的设备 ID 字符串(如果有)。
-
streamType
与此设备关联的数据流类型。
DeviceFilter
属性
-
isActive
布尔值(可选)
如果已设置,则只有活跃状态与此值匹配的音频设备才会满足该过滤条件。
-
streamTypes
StreamType[] 可选
如果已设置,则只有流类型包含在此列表中的音频设备才符合过滤器条件。
DeviceIdLists
属性
-
输入
string[] 选填
由输入设备 ID 指定的输入设备列表。
如需指明输入设备应不受影响,请勿设置此属性。
-
output
string[] 选填
由 ID 指定的输出设备的列表。
如需指明输出设备应不受影响,请勿设置此属性。
DeviceProperties
属性
-
level
编号(选填)
音频设备所需的声级。默认为设备当前的声级。
如果与音频输入设备一起使用,则表示音频设备增益。
如果与音频输出设备一起使用,则表示音频设备音量。
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
number
设备的新音量。
MuteChangedEvent
属性
-
isMuted
布尔值
视频流现在是否静音。
-
streamType
静音值发生更改的信息流的类型。更新后的静音值会应用于采用此音频流类型的所有设备。
StreamType
音频设备提供的流类型。
枚举
“INPUT”
“输出”
方法
getDevices()
chrome.audio.getDevices(
filter?: DeviceFilter,
callback?: function,
)
获取根据 filter
过滤的音频设备列表。
参数
-
filter
DeviceFilter 可选
用于过滤所返回音频设备列表的设备属性。如果过滤器未设置或设置为
{}
,则返回的设备列表将包含所有可用的音频设备。 -
callback
函数(可选)
callback
参数如下所示:(devices: AudioDeviceInfo[]) => void
-
设备
-
返回
-
Promise<AudioDeviceInfo[]>
Chrome 116 及更高版本Manifest V3 及更高版本支持 Promise,但为以下项目提供回调: 向后兼容性您不能在同一个函数调用中同时使用这两者。通过 promise 使用传递给回调的类型进行解析。
getMute()
chrome.audio.getMute(
streamType: StreamType,
callback?: function,
)
获取指定流类型的系统级静音状态。
参数
-
streamType
应提取静音状态的流类型。
-
callback
函数(可选)
callback
参数如下所示:(value: boolean) => void
-
值
布尔值
-
返回
-
Promise<boolean>
Chrome 116 及更高版本Manifest V3 及更高版本支持 Promise,但为以下项目提供回调: 向后兼容性您不能在同一个函数调用中同时使用这两者。通过 promise 使用传递给回调的类型进行解析。
setActiveDevices()
chrome.audio.setActiveDevices(
ids: DeviceIdLists,
callback?: function,
)
设置有效输入和/或输出设备的列表。
参数
-
ids
指定应处于活跃状态的设备的 ID。如果未设置输入或输出列表,该类别的设备不受影响。
传递不存在的设备 ID 会引发错误。
-
callback
函数(可选)
callback
参数如下所示:() => void
返回
-
承诺<void>
Chrome 116 及更高版本Manifest V3 及更高版本支持 Promise,但为以下项目提供回调: 向后兼容性您不能在同一个函数调用中同时使用这两者。通过 promise 使用传递给回调的类型进行解析。
setMute()
chrome.audio.setMute(
streamType: StreamType,
isMuted: boolean,
callback?: function,
)
设置流类型的静音状态。静音状态将应用于具有指定音频流类型的所有音频设备。
参数
-
streamType
应设置静音状态的流类型。
-
isMuted
布尔值
新建静音值。
-
callback
函数(可选)
callback
参数如下所示:() => void
返回
-
承诺<void>
Chrome 116 及更高版本Manifest V3 及更高版本支持 Promise,但为以下项目提供回调: 向后兼容性您不能在同一个函数调用中同时使用这两者。通过 promise 使用传递给回调的类型进行解析。
setProperties()
chrome.audio.setProperties(
id: string,
properties: DeviceProperties,
callback?: function,
)
设置输入或输出设备的属性。
参数
-
id
字符串
-
媒体资源
-
callback
函数(可选)
callback
参数如下所示:() => void
返回
-
承诺<void>
Chrome 116 及更高版本Manifest 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