chrome.audio

说明

chrome.audio API 的提供是为了让用户能够获取有关连接到系统的音频设备的信息并控制这些设备。此 API 目前仅适用于 ChromeOS 的自助服务终端模式。

权限

audio

可用性

Chrome 59 及更高版本 仅限 ChromeOS

类型

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()

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

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

参数

  • filter

    DeviceFilter(可选)

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

  • callback

    函数(可选)

    callback 参数如下所示:

    (devices: AudioDeviceInfo[]) => void

返回

  • Promise<AudioDeviceInfo[]>

    Chrome 116 及更高版本

    清单 V3 及更高版本支持 Promise,但为了实现向后兼容性,我们提供了回调。您不能在同一函数调用中同时使用这两种方法。promise 的解析结果与传递给回调的类型相同。

getMute()

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

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

参数

  • streamType

    应提取静音状态的直播类型。

  • callback

    函数(可选)

    callback 参数如下所示:

    (value: boolean) => void

    • 布尔值

返回

  • Promise<boolean>

    Chrome 116 及更高版本

    清单 V3 及更高版本支持 Promise,但为了实现向后兼容性,我们提供了回调。您不能在同一函数调用中同时使用这两种方法。promise 的解析结果与传递给回调的类型相同。

setActiveDevices()

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

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

参数

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

    传入不存在的设备 ID 是错误的。

  • callback

    函数(可选)

    callback 参数如下所示:

    () => void

返回

  • Promise<void>

    Chrome 116 及更高版本

    清单 V3 及更高版本支持 Promise,但为了实现向后兼容性,我们提供了回调。您不能在同一函数调用中同时使用这两种方法。promise 的解析结果与传递给回调的类型相同。

setMute()

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

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

参数

  • streamType

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

  • isMuted

    布尔值

    新的静音值。

  • callback

    函数(可选)

    callback 参数如下所示:

    () => void

返回

  • Promise<void>

    Chrome 116 及更高版本

    清单 V3 及更高版本支持 Promise,但为了实现向后兼容性,我们提供了回调。您不能在同一函数调用中同时使用这两种方法。promise 的解析结果与传递给回调的类型相同。

setProperties()

prometido
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,
)

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

参数

onLevelChanged

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

当处于活动状态的音频设备的音量发生变化时触发。

参数

onMuteChanged

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

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

参数