這個程式庫包含 ffx audio
工具使用的通訊協定。
通訊協定
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 節點名稱,例如 |
無預設 |
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.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 方法的錯誤代碼。
名稱 | 物超所值 | 說明 |
---|---|---|
NOT_SUPPORTED |
1 |
未實作、支援或啟用作業。 |
UNKNOWN_FATAL |
2 |
發生其他無法分類的問題,因此無法使用其中一種更具體的狀態進行分類。日後對這個方法發出的要求也會失敗。 |
UNKNOWN_CAN_RETRY |
3 |
還發生了其他問題,但我們有理由認為這項作業日後可能會成功。用戶端可以重試這項要求。 |
ARGUMENTS_MISSING |
4 |
要求缺少必要引數。 |
INVALID_ARGUMENTS |
5 |
要求不支援引數。 |
DEVICE_NOT_FOUND |
6 |
找不到符合用戶端要求參數的裝置。 |
DEVICE_NOT_REACHABLE |
7 |
無法在指定的位置連線到裝置。 |
資料表
CustomClockConfig
定義於 fuchsia.audio.controller/settings.fidl
序數 | 廣闊 | 類型 | 說明 |
---|---|---|---|
1 |
rate_adjust |
int32
|
對系統單調時鐘複本的頻率調整頻率,以每百萬分之一為單位 (相對於系統單音頻率)。 必須小於 [ZX_CLOCK_UPDATE_MIN_RATE_ADJUST, ZX_CLOCK_UPDATE_MAX_RATE_ADJUST]。
詳情請參閱 選用。如未指定,則會使用參考時鐘的預設速率。 |
2 |
offset |
int32
|
在傳遞至 AudioRenderer 或 Capturer 的參考時鐘與系統單聲道時鐘之間,開始差異。 選用。如未指定,參考時鐘偏移就會維持不變。 |
DeviceControlDeviceSetGainStateRequest 資源
定義於 fuchsia.audio.controller/device.fidl
序數 | 廣闊 | 類型 | 說明 |
---|---|---|---|
1 |
device |
DeviceSelector
|
要設定增益狀態的裝置 ID。 必填。 |
2 |
gain_state |
fuchsia.hardware.audio/GainState
|
所需增益狀態。 必填。 |
GainSettings
定義於 fuchsia.audio.controller/settings.fidl
啟用設定。
序數 | 廣闊 | 類型 | 說明 |
---|---|---|---|
1 |
mute |
bool
|
是否將音訊串流設為靜音。如果未指定,則不調整現有的靜音值。 選用。 |
2 |
gain |
float32
|
增高分貝值。如未指定,則不調整串流或裝置增益。 選用。 |
PlayerPlayRequest 資源
定義於 fuchsia.audio.controller/play.fidl
序數 | 廣闊 | 類型 | 說明 |
---|---|---|---|
1 |
wav_source |
handle<socket>
|
用戶端傳送 WAV 格式音訊資料的通訊端。 用戶端應傳送整個檔案,然後關閉通訊端。 必填。 |
2 |
destination |
PlayDestination
|
播放音訊的目的地。 必填。 |
3 |
gain_settings |
GainSettings
|
Play 設定。 選用。如未指定,請使用單位取得取消靜音,且不會啟用其他增益處理功能。 |
Player_Play_Response 資源
定義於 fuchsia.audio.controller/play.fidl
序數 | 廣闊 | 類型 | 說明 |
---|---|---|---|
1 |
bytes_processed |
uint64
|
傳送至目的地的位元組總數。 |
RecorderRecordRequest 資源
定義於 fuchsia.audio.controller/record.fidl
序數 | 廣闊 | 類型 | 說明 |
---|---|---|---|
1 |
source |
RecordSource
|
錄音來源。 必填。 |
2 |
stream_type |
fuchsia.media/AudioStreamType
|
錄製音訊的串流格式。 必填。 |
3 |
duration |
zx/Duration
|
錄製音訊資料的時間長度 (單位為奈秒)。 如未指定, 即使存在記錄要求,你還是可以透過 選用。 |
4 |
canceler |
server_end<RecordCanceler>
|
處理停止傳送資料給用戶端的時機。 必填。 |
5 |
gain_settings |
GainSettings
|
記錄增益設定。 僅適用於 選用。 |
6 |
buffer_size |
uint64
|
緩衝區大小。 選用。如果未指定,則預設值為可容納一秒的音訊資料大小。 |
7 |
wav_data |
handle<socket>
|
音訊資料的接收器。 這裡擷取的資料會寫入這裡做為完整的 WAV 檔案。 必填。 |
Recorder_Record_Response 資源
定義於 fuchsia.audio.controller/record.fidl
序數 | 廣闊 | 類型 | 說明 |
---|---|---|---|
1 |
bytes_processed |
uint64
|
從來源讀取的位元組總數。 |
2 |
packets_processed |
uint64
|
在適用情況下,從 |
3 |
late_wakeups |
uint64
|
在適用情況下,擷取器的喚醒時間太晚而無法從裝置讀取有效資料的次數。 如果這個值不是零,表示某些資料會遺失,並以無聲取代。 |
StandardCapturerConfig
定義於 fuchsia.audio.controller/record.fidl
序數 | 廣闊 | 類型 | 說明 |
---|---|---|---|
1 |
usage |
fuchsia.media/AudioCaptureUsage
|
音訊串流的使用。 必填。 |
2 |
clock |
ClockType
|
串流使用的參考時鐘類型。 選用。如未指定,則會使用擷取器提供的預設參考時鐘。 |
StandardRendererConfig
定義於 fuchsia.audio.controller/play.fidl
序數 | 廣闊 | 類型 | 說明 |
---|---|---|---|
1 |
usage |
fuchsia.media/AudioRenderUsage
|
音訊串流的使用。 必填。 |
2 |
clock |
ClockType
|
串流使用的參考時鐘類型。 選用。如未指定,則會使用轉譯器提供的預設參考時鐘。 |
3 |
packet_count |
uint32
|
傳送資料給 選用。如未指定,則會預設為四個封包。 |
UltrasoundRendererConfig
定義於 fuchsia.audio.controller/play.fidl
序數 | 廣闊 | 類型 | 說明 |
---|---|---|---|
1 |
packet_count |
uint32
|
傳送資料給 選用。如未指定,則會預設為四個封包。 |
聯合國
CapturerConfig 彈性
定義於 fuchsia.audio.controller/record.fidl
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
standard_capturer |
StandardCapturerConfig
|
|
2 |
ultrasound_capturer |
UltrasoundCapturer
|
|
ClockType 彈性
定義於 fuchsia.audio.controller/settings.fidl
AudioRenderer
或 AudioCapturer
的參考時鐘選項。
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
flexible |
Flexible
|
使用靈活的時鐘。 |
2 |
system_monotonic |
SystemMonotonic
|
使用系統單聲道時鐘。 |
3 |
custom |
CustomClockConfig
|
請使用單色時鐘,當中須根據系統單調時鐘可能進行調整和偏移。 |
DeviceControl_DeviceSetGainState_Result 嚴格
定義於 fuchsia.audio.controller/device.fidl
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
DeviceControl_DeviceSetGainState_Response
|
|
2 |
err |
zx/Status
|
|
3 |
framework_err |
internal
|
DeviceSelector 彈性
定義於 fuchsia.audio.controller/device.fidl
識別音訊裝置。
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
devfs |
Devfs
|
devfs 中的驅動程式節點,例如 |
2 |
registry |
fuchsia.audio.device/TokenId
|
透過 |
PlayDestination 彈性
定義於 fuchsia.audio.controller/play.fidl
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
renderer |
RendererConfig
|
使用 audio_core API 建立 |
2 |
device_ring_buffer |
DeviceRingBuffer
|
裝置環形緩衝區。 |
Player_Play_Result 嚴格 資源
定義於 fuchsia.audio.controller/play.fidl
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
Player_Play_Response
|
|
2 |
err |
Error
|
|
3 |
framework_err |
internal
|
RecordCanceler_Cancel_Result 嚴格
定義於 fuchsia.audio.controller/record.fidl
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
RecordCanceler_Cancel_Response
|
|
2 |
err |
zx/Status
|
RecordSource 彈性
定義於 fuchsia.audio.controller/record.fidl
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
capturer |
CapturerConfig
|
Audio_core |
2 |
loopback |
Loopback
|
已啟用回送機制的 audio_core |
3 |
device_ring_buffer |
DeviceRingBuffer
|
裝置環形緩衝區。 |
Recorder_Record_Result 嚴格 資源
定義於 fuchsia.audio.controller/record.fidl
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
Recorder_Record_Response
|
|
2 |
err |
Error
|
|
3 |
framework_err |
internal
|
RendererConfig 彈性
定義於 fuchsia.audio.controller/play.fidl
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
standard_renderer |
StandardRendererConfig
|
標準頻率的轉譯器。 |
2 |
ultrasound_renderer |
UltrasoundRendererConfig
|
超音波頻率轉譯器。 |