chrome.audio

说明

我们提供 chrome.audio API 是为了让用户能够了解和控制连接到系统的音频设备。此 API 目前仅适用于 ChromeOS 的自助服务终端模式。

权限

audio

可用性

Chrome 59 及更高版本 仅限 ChromeOS

类型

AudioDeviceInfo

属性

  • deviceName

    string

    设备名称。

  • deviceType

    设备类型。

  • displayName

    string

    用户易于理解的名称(例如“USB 麦克风”)。

  • id

    string

    音频设备的唯一标识符。

  • isActive

    boolean

    如果这是当前活跃设备,则为 true。

  • level

    number

    设备的声级、输出的音量、输入的增益。

  • stableDeviceId

    字符串(可选)

    稳定/持久保留的设备 ID 字符串(如果有)。

  • streamType

    与此设备关联的数据流类型。

DeviceFilter

属性

  • isActive

    布尔值 选填

    如果设置此参数,则只有活跃状态与此值匹配的音频设备才满足过滤条件。

  • streamTypes

    StreamType[] 可选

    如果设置此参数,则只有音频流类型包含在此列表中的音频设备才符合过滤条件。

DeviceIdLists

属性

  • 输入

    string[] 可选

    通过 ID 指定的输入设备列表。

    若要指明输入设备应不受影响,请勿设置此属性。

  • output

    string[] 可选

    按 ID 指定的输出设备列表。

    若要指明输出设备应不受影响,请勿设置此属性。

DeviceProperties

属性

  • level

    数字可选

    音频设备所需的音量。默认设置为设备当前的音量。

    如果与音频输入设备搭配使用,表示音频设备增益。

    如果与音频输出设备搭配使用,则表示音频设备音量。

DeviceType

可用的音频设备类型。

枚举

"KEYBOARD_MIC"

"POST_MIX_LOOPBACK"

LevelChangedEvent

属性

  • deviceId

    string

    声级已更改的设备的 ID。

  • level

    number

    设备的新音量。

MuteChangedEvent

属性

  • isMuted

    boolean

    视频流现在是否静音。

  • streamType

    更改了静音值的流的类型。更新后的静音值会应用于所有具有此流类型的设备。

StreamType

音频设备提供的音频流类型。

枚举

方法

getDevices()

Promise
chrome.audio.getDevices(
  filter?: DeviceFilter,
  callback?: function,
)

获取根据 filter 过滤的音频设备列表。

参数

  • filter

    DeviceFilter 可选

    用于过滤返回的音频设备列表的设备属性。如果过滤条件未设置或设为 {},返回的设备列表将包含所有可用的音频设备。

  • callback

    函数(可选)

    callback 参数如下所示:

    (devices: AudioDeviceInfo[])=>void

返回

  • Promise<AudioDeviceInfo[]>

    Chrome 116 及更高版本

    Manifest V3 及更高版本支持 promise,但提供回调以实现向后兼容性。您不能在同一个函数调用中同时使用这两者。promise 使用传递给回调函数的同一类型进行解析。

getMute()

Promise
chrome.audio.getMute(
  streamType: StreamType,
  callback?: function,
)

获取指定流类型的系统级静音状态。

参数

  • streamType

    应提取其静音状态的流类型。

  • callback

    函数(可选)

    callback 参数如下所示:

    (value: boolean)=>void

    • boolean

返回

  • Promise<boolean>

    Chrome 116 及更高版本

    Manifest V3 及更高版本支持 promise,但提供回调以实现向后兼容性。您不能在同一个函数调用中同时使用这两者。promise 使用传递给回调函数的同一类型进行解析。

setActiveDevices()

Promise
chrome.audio.setActiveDevices(
  ids: DeviceIdLists,
  callback?: function,
)

设置活跃输入和/或输出设备的列表。

参数

  • 指定应处于活动状态的设备的 ID。如果未设置输入或输出列表,则该类别的设备不受影响。

    传入不存在的设备 ID 会出错。

  • callback

    函数(可选)

    callback 参数如下所示:

    ()=>void

返回

  • Promise<void>

    Chrome 116 及更高版本

    Manifest V3 及更高版本支持 promise,但提供回调以实现向后兼容性。您不能在同一个函数调用中同时使用这两者。promise 使用传递给回调函数的同一类型进行解析。

setMute()

Promise
chrome.audio.setMute(
  streamType: StreamType,
  isMuted: boolean,
  callback?: function,
)

设置流类型的静音状态。静音状态将应用于具有指定音频流类型的所有音频设备。

参数

  • streamType

    应设置静音状态的流类型。

  • isMuted

    boolean

    新的忽略值。

  • callback

    函数(可选)

    callback 参数如下所示:

    ()=>void

返回

  • Promise<void>

    Chrome 116 及更高版本

    Manifest V3 及更高版本支持 promise,但提供回调以实现向后兼容性。您不能在同一个函数调用中同时使用这两者。promise 使用传递给回调函数的同一类型进行解析。

setProperties()

Promise
chrome.audio.setProperties(
  id: string,
  properties: DeviceProperties,
  callback?: function,
)

设置输入或输出设备的属性。

参数

  • id

    string

  • 媒体资源
  • callback

    函数(可选)

    callback 参数如下所示:

    ()=>void

返回

  • Promise<void>

    Chrome 116 及更高版本

    Manifest V3 及更高版本支持 promise,但提供回调以实现向后兼容性。您不能在同一个函数调用中同时使用这两者。promise 使用传递给回调函数的同一类型进行解析。

活动

onDeviceListChanged

chrome.audio.onDeviceListChanged.addListener(
  callback: function,
)

在音频设备发生变化(添加新设备或移除现有设备)时触发。

参数

onLevelChanged

chrome.audio.onLevelChanged.addListener(
  callback: function,
)

在处于活动状态的音频设备声级发生变化时触发。

参数

onMuteChanged

chrome.audio.onMuteChanged.addListener(
  callback: function,
)

在音频输入或输出的静音状态发生变化时触发。请注意,静音状态是系统级的,新值适用于具有指定流类型的每个音频设备。

参数