fuchsia.audio.controller

這個程式庫包含 ffx audio 工具使用的通訊協定。

已新增:HEAD

通訊協定

DeviceControl

定義於 fuchsia.audio.controller/device.fidl

列舉、查詢及控制用戶端的音訊裝置。

DeviceSetGainState

設定串流的增益 (以分貝為單位)。

要求

名稱類型
payload DeviceControlDeviceSetGainStateRequest

回應

名稱類型
payload DeviceControl_DeviceSetGainState_Result

選手

定義於 fuchsia.audio.controller/play.fidl

播放

從通訊端以 WAV 格式讀取來自通訊端的音訊資料,並在目的地播放。

從通訊端讀取所有位元組後,傳回。

要求

名稱類型
payload PlayerPlayRequest

回應

名稱類型
payload Player_Play_Result

RecordCanceler

定義於 fuchsia.audio.controller/record.fidl

取消 Recorder.Record 要求。

取消

停止在輸出通訊端記錄及寫入資料。

要求

<EMPTY>

回應

名稱類型
payload RecordCanceler_Cancel_Result

錄音工具

定義於 fuchsia.audio.controller/record.fidl

記錄

錄製音訊資料,並以 WAV 格式寫入通訊端。

要求

名稱類型
payload RecorderRecordRequest

回應

名稱類型
payload Recorder_Record_Result

結構化

Devfs

定義於 fuchsia.audio.controller/device.fidl

廣闊類型說明預設
name fuchsia.io/Name

這部裝置的 devfs 節點名稱,例如 3d99d780

無預設
device_type fuchsia.audio.device/DeviceType

裝置類型。

無預設

DeviceControl_DeviceSetGainState_Response

定義於 fuchsia.audio.controller/device.fidl

<EMPTY>

DeviceRingBuffer

定義於 fuchsia.audio.controller/device.fidl

識別用於播放/錄製的裝置環形緩衝區。

廣闊類型說明預設
selector DeviceSelector

有環形緩衝區的裝置。

無預設
ring_buffer_element_id fuchsia.hardware.audio.signalprocessing/ElementId

所需環形緩衝區的 ENDPOINT (類型為 RING_BUFFER) 訊號處理元素 ID。

如果是 Dai 和 StreamConfig 裝置,這個值應為 fuchsia.audio.device.DEFAULT_RING_BUFFER_ELEMENT_ID

無預設

使用靈活

定義於 fuchsia.audio.controller/settings.fidl

<EMPTY>

回送

定義於 fuchsia.audio.controller/record.fidl

<EMPTY>

RecordCanceler_Cancel_Response

定義於 fuchsia.audio.controller/record.fidl

<EMPTY>

SystemMonotonic

定義於 fuchsia.audio.controller/settings.fidl

<EMPTY>

UltrasoundCapturer

定義於 fuchsia.audio.controller/record.fidl

<EMPTY>

ENUMS

錯誤彈性

類型:uint32

定義於 fuchsia.audio.controller/types.fidl

fuchsia.audio.controller 方法的錯誤代碼。

名稱物超所值說明
1

未實作、支援或啟用作業。

2

發生其他無法分類的問題,因此無法使用其中一種更具體的狀態進行分類。日後對這個方法發出的要求也會失敗。

3

還發生了其他問題,但我們有理由認為這項作業日後可能會成功。用戶端可以重試這項要求。

4

要求缺少必要引數。

5

要求不支援引數。

6

找不到符合用戶端要求參數的裝置。

7

無法在指定的位置連線到裝置。

資料表

CustomClockConfig

定義於 fuchsia.audio.controller/settings.fidl

序數廣闊類型說明
rate_adjust int32

對系統單調時鐘複本的頻率調整頻率,以每百萬分之一為單位 (相對於系統單音頻率)。

必須小於 [ZX_CLOCK_UPDATE_MIN_RATE_ADJUST, ZX_CLOCK_UPDATE_MAX_RATE_ADJUST]。 詳情請參閱 zx_clock_update

選用。如未指定,則會使用參考時鐘的預設速率。

offset int32

在傳遞至 AudioRenderer 或 Capturer 的參考時鐘與系統單聲道時鐘之間,開始差異。

選用。如未指定,參考時鐘偏移就會維持不變。

DeviceControlDeviceSetGainStateRequest 資源

定義於 fuchsia.audio.controller/device.fidl

序數廣闊類型說明
device DeviceSelector

要設定增益狀態的裝置 ID。

必填。

gain_state fuchsia.hardware.audio/GainState

所需增益狀態。

必填。

GainSettings

定義於 fuchsia.audio.controller/settings.fidl

啟用設定。

序數廣闊類型說明
mute bool

是否將音訊串流設為靜音。如果未指定,則不調整現有的靜音值。

選用。

gain float32

增高分貝值。如未指定,則不調整串流或裝置增益。

選用。

PlayerPlayRequest 資源

定義於 fuchsia.audio.controller/play.fidl

序數廣闊類型說明
wav_source handle<socket>

用戶端傳送 WAV 格式音訊資料的通訊端。

用戶端應傳送整個檔案,然後關閉通訊端。

必填。

destination PlayDestination

播放音訊的目的地。

必填。

gain_settings GainSettings

Play 設定。

選用。如未指定,請使用單位取得取消靜音,且不會啟用其他增益處理功能。

Player_Play_Response 資源

定義於 fuchsia.audio.controller/play.fidl

序數廣闊類型說明
bytes_processed uint64

傳送至目的地的位元組總數。

RecorderRecordRequest 資源

定義於 fuchsia.audio.controller/record.fidl

序數廣闊類型說明
source RecordSource

錄音來源。

必填。

stream_type fuchsia.media/AudioStreamType

錄製音訊的串流格式。

必填。

duration zx/Duration

錄製音訊資料的時間長度 (單位為奈秒)。

如未指定,Recorder 會記錄資料並寫入通訊端,直到在 canceler 收到停止訊號為止。

即使存在記錄要求,你還是可以透過 canceler 取消記錄要求。

選用。

canceler server_end<RecordCanceler>

處理停止傳送資料給用戶端的時機。

必填。

gain_settings GainSettings

記錄增益設定。

僅適用於 capturerloopback 來源。

選用。

buffer_size uint64

緩衝區大小。

選用。如果未指定,則預設值為可容納一秒的音訊資料大小。

wav_data handle<socket>

音訊資料的接收器。

這裡擷取的資料會寫入這裡做為完整的 WAV 檔案。

必填。

Recorder_Record_Response 資源

定義於 fuchsia.audio.controller/record.fidl

序數廣闊類型說明
bytes_processed uint64

從來源讀取的位元組總數。

packets_processed uint64

在適用情況下,從 AudioCapturer 讀取的封包數。

late_wakeups uint64

在適用情況下,擷取器的喚醒時間太晚而無法從裝置讀取有效資料的次數。

如果這個值不是零,表示某些資料會遺失,並以無聲取代。

StandardCapturerConfig

定義於 fuchsia.audio.controller/record.fidl

序數廣闊類型說明
usage fuchsia.media/AudioCaptureUsage

音訊串流的使用。

必填。

clock ClockType

串流使用的參考時鐘類型。

選用。如未指定,則會使用擷取器提供的預設參考時鐘。

StandardRendererConfig

定義於 fuchsia.audio.controller/play.fidl

序數廣闊類型說明
usage fuchsia.media/AudioRenderUsage

音訊串流的使用。

必填。

clock ClockType

串流使用的參考時鐘類型。

選用。如未指定,則會使用轉譯器提供的預設參考時鐘。

packet_count uint32

傳送資料給 AudioRenderer 時要使用的封包數量。

選用。如未指定,則會預設為四個封包。

UltrasoundRendererConfig

定義於 fuchsia.audio.controller/play.fidl

序數廣闊類型說明
packet_count uint32

傳送資料給 AudioRenderer 時要使用的封包數量。

選用。如未指定,則會預設為四個封包。

聯合國

CapturerConfig 彈性

定義於 fuchsia.audio.controller/record.fidl

序數Variant類型說明
standard_capturer StandardCapturerConfig

AudioCapturer 代表標準頻率。

ultrasound_capturer UltrasoundCapturer

AudioCapturer 代表超音波頻率。

ClockType 彈性

定義於 fuchsia.audio.controller/settings.fidl

AudioRendererAudioCapturer 的參考時鐘選項。

序數Variant類型說明
flexible Flexible

使用靈活的時鐘。

system_monotonic SystemMonotonic

使用系統單聲道時鐘。

custom CustomClockConfig

請使用單色時鐘,當中須根據系統單調時鐘可能進行調整和偏移。

DeviceControl_DeviceSetGainState_Result 嚴格

定義於 fuchsia.audio.controller/device.fidl

序數Variant類型說明
response DeviceControl_DeviceSetGainState_Response
err zx/Status
framework_err internal

DeviceSelector 彈性

定義於 fuchsia.audio.controller/device.fidl

識別音訊裝置。

序數Variant類型說明
devfs Devfs

devfs 中的驅動程式節點,例如 /dev/class/audio-input/3d99d780

registry fuchsia.audio.device/TokenId

透過 fuchsia.audio.device/Registry 通訊協定取得的裝置。

PlayDestination 彈性

定義於 fuchsia.audio.controller/play.fidl

序數Variant類型說明
renderer RendererConfig

使用 audio_core API 建立 AudioRenderer,並透過該 API 播放音訊。

device_ring_buffer DeviceRingBuffer

裝置環形緩衝區。

Player_Play_Result 嚴格 資源

定義於 fuchsia.audio.controller/play.fidl

序數Variant類型說明
response Player_Play_Response
err Error
framework_err internal

RecordCanceler_Cancel_Result 嚴格

定義於 fuchsia.audio.controller/record.fidl

序數Variant類型說明
response RecordCanceler_Cancel_Response
err zx/Status

RecordSource 彈性

定義於 fuchsia.audio.controller/record.fidl

序數Variant類型說明
capturer CapturerConfig

Audio_core AudioCapturer 通訊協定連線。

loopback Loopback

已啟用回送機制的 audio_core AudioCapturer 通訊協定連線。

device_ring_buffer DeviceRingBuffer

裝置環形緩衝區。

Recorder_Record_Result 嚴格 資源

定義於 fuchsia.audio.controller/record.fidl

序數Variant類型說明
response Recorder_Record_Response
err Error
framework_err internal

RendererConfig 彈性

定義於 fuchsia.audio.controller/play.fidl

序數Variant類型說明
standard_renderer StandardRendererConfig

標準頻率的轉譯器。

ultrasound_renderer UltrasoundRendererConfig

超音波頻率轉譯器。