說明
chrome.audio
API 可讓使用者取得系統連接的音訊裝置相關資訊,並控制這些裝置。這項 API 目前僅適用於 ChromeOS 的 Kiosk 模式。
權限
audio
可用性
類型
AudioDeviceInfo
屬性
- deviceName
字串
裝置名稱。
- deviceType
裝置的類型。
- displayName
字串
使用者容易閱讀的名稱 (例如「USB 麥克風」)。
- id
字串
音訊裝置的專屬 ID。
- isActive
布林值
如果這是目前使用的裝置,則為「true」。
- level
數字
裝置的音量、輸出音量、輸入增益。
- stableDeviceId
字串 選填
穩定/持續性裝置 ID 字串 (如有)。
- streamType
與這部裝置相關聯的串流類型。
DeviceFilter
屬性
- isActive
布林值 選填
如果已設定,只有處於與這個值相符的啟用狀態的音訊裝置,才會符合篩選條件。
- streamTypes
StreamType[] optional
如果設定這項屬性,只有串流類型包含在此清單中的音訊裝置,才會符合篩選條件。
DeviceIdLists
屬性
- 輸入
字串陣列 選用
依 ID 指定的輸入裝置清單。
如要指出輸入裝置應不受影響,請勿設定這項屬性。
- output
字串陣列 選用
依 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
數字
裝置的新音量。
MuteChangedEvent
屬性
- isMuted
布林值
直播是否已設為靜音。
- streamType
靜音值變更的串流類型。更新後的靜音值會套用至所有具有此串流類型的裝置。
StreamType
音訊裝置提供的串流類型。
列舉
「INPUT」
"OUTPUT"
方法
getDevices()
chrome.audio.getDevices(
filter?: DeviceFilter,
): Promise<AudioDeviceInfo[]>
取得根據 filter
篩選的音訊裝置清單。
參數
- 篩選
DeviceFilter 選填
用來篩選傳回音訊裝置清單的裝置屬性。如未設定篩選器或設為
{}
,傳回的裝置清單會包含所有可用的音訊裝置。
傳回
-
Promise<AudioDeviceInfo[]>
Chrome 116 以上版本
參數
- streamType
要擷取靜音狀態的串流類型。
傳回
-
Promise<boolean>
Chrome 116 以上版本
setActiveDevices()
chrome.audio.setActiveDevices(
ids: DeviceIdLists,
): Promise<void>
設定有效輸入和/或輸出裝置的清單。
參數
- ids
指定應處於啟用狀態的裝置 ID。如果未設定輸入或輸出清單,該類別的裝置就不會受到影響。
如果傳入不存在的裝置 ID,就會發生錯誤。
傳回
-
Promise<void>
Chrome 116 以上版本
setMute()
chrome.audio.setMute(
streamType: StreamType,
isMuted: boolean,
): Promise<void>
設定串流類型的靜音狀態。靜音狀態會套用至具有指定音訊串流類型的所有音訊裝置。
參數
- streamType
要設定靜音狀態的串流類型。
- isMuted
布林值
新的靜音值。
傳回
-
Promise<void>
Chrome 116 以上版本
setProperties()
chrome.audio.setProperties(
id: string,
properties: DeviceProperties,
): Promise<void>
設定輸入或輸出裝置的屬性。
參數
- id
字串
傳回
-
Promise<void>
Chrome 116 以上版本
事件
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