此库包含 ffx audio
工具使用的协议。
协议
DeviceControl
在 fuchsia.audio.controller/device.fidl 中定义
枚举、查询和控制来自客户端的音频设备。
DeviceSetGainState
设置音频流的增益(以分贝为单位)。
请求
名称 | 类型 |
---|---|
payload |
DeviceControlDeviceSetGainStateRequest
|
响应
名称 | 类型 |
---|---|
payload |
DeviceControl_DeviceSetGainState_Result
|
参赛选手
在 fuchsia.audio.controller/play.fidl 中定义
Play
从 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>
枚举
错误:柔性环境
类型: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
|
增益水平(以 dB 为单位)。如果未指定,请勿调整音频流或设备增益。 可选。 |
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 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
standard_capturer |
StandardCapturerConfig
|
|
2 |
ultrasound_capturer |
UltrasoundCapturer
|
|
ClockType 灵活
在 fuchsia.audio.controller/settings.fidl 中定义
AudioRenderer
或 AudioCapturer
的参考时钟选项。
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
flexible |
Flexible
|
使用灵活的时钟。 |
2 |
system_monotonic |
SystemMonotonic
|
使用系统单调时钟。 |
3 |
custom |
CustomClockConfig
|
使用单调时钟,该时钟可以相对于系统单调时钟进行速率调整和偏移。 |
DeviceControl_DeviceSetGainState_Result 严格
在 fuchsia.audio.controller/device.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
DeviceControl_DeviceSetGainState_Response
|
|
2 |
err |
zx/Status
|
|
3 |
framework_err |
internal
|
DeviceSelector 灵活
在 fuchsia.audio.controller/device.fidl 中定义
标识音频设备。
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
devfs |
Devfs
|
devfs 中的驱动程序节点,例如 |
2 |
registry |
fuchsia.audio.device/TokenId
|
通过 |
PlayDestination 灵活
在 fuchsia.audio.controller/play.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
renderer |
RendererConfig
|
使用 audio_core API 创建 |
2 |
device_ring_buffer |
DeviceRingBuffer
|
设备环形缓冲区。 |
Player_Play_Result 严格 资源
在 fuchsia.audio.controller/play.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
Player_Play_Response
|
|
2 |
err |
Error
|
|
3 |
framework_err |
internal
|
RecordCanceler_Cancel_Result 严格
在 fuchsia.audio.controller/record.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
RecordCanceler_Cancel_Response
|
|
2 |
err |
zx/Status
|
RecordSource 灵活
在 fuchsia.audio.controller/record.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
capturer |
CapturerConfig
|
audio_core |
2 |
loopback |
Loopback
|
audio_core |
3 |
device_ring_buffer |
DeviceRingBuffer
|
设备环形缓冲区。 |
Recorder_Record_Result 严格 资源
在 fuchsia.audio.controller/record.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
Recorder_Record_Response
|
|
2 |
err |
Error
|
|
3 |
framework_err |
internal
|
RendererConfig 灵活
在 fuchsia.audio.controller/play.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
standard_renderer |
StandardRendererConfig
|
标准频率的渲染程序。 |
2 |
ultrasound_renderer |
UltrasoundRendererConfig
|
超声波频率渲染程序。 |