audio-driver-ctl

播放、录制和配置音频流。

重要提示

audio-driver-ctl 已被弃用。请改用 ffx audio device 工具。如需更多信息 从宿主机运行 ffx audio device --help,然后看到 ffx audio 自述文件://src/developer/ffx/plugins/audio/README.md

用法

audio-driver-ctl [-d <id>] [-t (input|output)] agc (on|off)

audio-driver-ctl [-a <mask>] [-b (8|16|20|24|32)] [-c <channels>] \
    [-d <id>] [-r <hertz>] duplex <playpath> <recordpath>

audio-driver-ctl [-d <id>] [-t (input|output)] gain <decibels>

audio-driver-ctl [-d <id>] [-t (input|output)] info

audio-driver-ctl [-a <mask>] [-b (8|16|20|24|32)] [-c <channels>] \
    [-d <id>] loop <playpath>

audio-driver-ctl [-d <id>] [-t (input|output)] mute

audio-driver-ctl [-a <mask>] [-b (8|16|20|24|32)] [-c <channels>] \
    [-d <id>] [-r <hertz>] noise [<seconds>] [<amplitude>]

audio-driver-ctl [-a <mask>] [-b (8|16|20|24|32)] [-c <channels>] \
    [-d <id>] play <playpath>

audio-driver-ctl [-d <id>] [-t (input|output)] pmon [<seconds>]

audio-driver-ctl [-a <mask>] [-b (8|16|20|24|32)] [-c <channels>] \
    [-d <id>] [-r <hertz>] record <recordpath> [<seconds>]

audio-driver-ctl [-a <mask>] [-b (8|16|20|24|32)] [-c <channels>] \
    [-d <id>] [-r <hertz>] tone [<frequency>] [<seconds>] [<amplitude>

audio-driver-ctl [-d <id>] [-t (input|output)] unmute

选项

-a <mask>

有效渠道掩码。例如,0xf15 表示频道 0、1、2 和 3。 默认为所有频道。

-b (8|16|20|24|32)

每个样本的比特数。默认为 16

-c <channels>

录制或生成音调/噪音时使用的声道数量。 不影响 WAV 文件播放,因为 WAV 文件会指定 渠道。默认为驾驶员报告的第一项 值。运行 info 以查看您的目标 Fuchsia 设备的信道数量 声道数量必须与音频驱动程序的预期相符 因为audio-driver-ctl不会混音。

-d <id>

数据流的设备节点 ID。默认为 0。为了弄清<id>跑步数据 info。您将看到类似 /dev/class/audio-input/000 的路径值。 此示例中的 <id>000

-t (input|output)

设备类型。默认为 output。对于 play

-r <hertz>

帧速率(以赫兹为单位)。默认为 48000

命令

agc

audio-driver-ctl [-d <id>] [-t (input|output)] agc (on|off)

启用或停用音频流的自动增益控制。

duplex

audio-driver-ctl [-a <mask>] [-b (8|16|20|24|32)] [-c <channels>] \
    [-d <id>] [-r <hertz>] duplex <playpath> <recordpath>

同时播放位于 <playpath> 的 WAV 文件并录制 另一个 WAV 文件导入 <recordpath>,以便分析 系统。-c 选项(如果提供)适用于录制端,因为 要播放的频道数取自 WAV 文件头。

gain

audio-driver-ctl [-d <id>] [-t (input|output)] gain <decibels>

设置音频流的增益(以分贝为单位)。

info

audio-driver-ctl [-d <id>] [-t (input|output)] info

获取音频流的功能和状态信息。

loop

audio-driver-ctl [-a <mask>] [-b (8|16|20|24|32)] [-c <channels>] \
    [-d <id>] loop <playpath>

<playpath> 处针对所选输出重复播放 WAV 文件,直到出现按键 。

mute

audio-driver-ctl [-d <id>] [-t (input|output)] mute

将视频流静音。

noise

audio-driver-ctl [-a <mask>] [-b (8|16|20|24|32)] [-c <channels>] \
    [-d <id>] [-r <hertz>] noise [<seconds>] [<amplitude>]

播放伪白噪声。<seconds> 用于控制噪声的播放时长,且必须 至少为 0.001 秒。如果未提供 <seconds>,则噪声会一直播放到 某个键被按下

play

audio-driver-ctl [-a <mask>] [-b (8|16|20|24|32)] [-c <channels>] \
    [-d <id>] play <playpath>

播放 WAV 文件。

pmon

audio-driver-ctl [-d <id>] [-t (input|output)] pmon [<seconds>]

监控音频流的插头状态。“<seconds>”的值必须大于 0.5 秒 (默认值:10.0 秒)。

record

audio-driver-ctl [-a <mask>] [-b (8|16|20|24|32)] [-c <channels>] \
    [-d <id>] [-r <hertz>] record <recordpath> [<seconds>]

从所选输入源录制到指定的 WAV 文件。如果 <seconds> 不是 但前提是要一直记录输入,直到按下某个键为止。

tone

audio-driver-ctl [-a <mask>] [-b (8|16|20|24|32)] [-c <channels>] \
    [-d <id>] [-r <hertz>] tone [<frequency>] [<seconds>] [<amplitude>

播放正弦音。“<frequency>”的值必须介于 15.096000.0 赫兹之间 (默认值:440.0 赫兹)。“<seconds>”的值必须大于 0.001 秒。如果 为 直至按下某个键之后才播放提示音。<amplitude> 会缩放 输出(如果提供),并且必须是 0.11.0 之间的 0.1 增量。

unmute

audio-driver-ctl [-d <id>] [-t (input|output)] unmute

将直播取消静音。请注意,音频流的增益值将重置为默认值 值。

示例

启用流的自动增益控制

$ audio-driver-ctl agc on

获取直播信息

# Equivalent to `audio-driver-ctl -t output -d 000 info`
$ audio-driver-ctl info
Info for audio output at \"/dev/class/audio-output/000\"
  Unique ID    : 0100000000000000-0000000000000000
  Manufacturer : Spacely Sprockets
  Product      : acme
  Current Gain : 0.00 dB (unmuted, AGC on)
  Gain Caps    : gain range [-103.00, 24.00] in 0.50 dB steps; can mute; can AGC
  Plug State   : plugged
  Plug Time    : 12297829382473034410
  PD Caps      : hardwired
Number of channels      : 1
Frame rate              : 8000Hz
Bits per channel        : 16
Valid bits per channel  : 16
...

将音频流增益设置为 -40 分贝

# Equivalent to `audio-driver-ctl -t output -d 000 gain -40`
$ audio-driver-ctl gain -40

将直播静音

# Equivalent to `audio-driver-ctl -t output -d 000 mute`
$ audio-driver-ctl mute

在流中重复播放(循环播放)WAV 文件

# Equivalent to `audio-driver-ctl -t output -d 000 loop /tmp/test.wav`
$ audio-driver-ctl loop /tmp/test.wav
Looping /tmp/test.wav until a key is pressed

在流中播放一次 WAV 文件

# Equivalent to `audio-driver-ctl -t output -d 000 play /tmp/test.wav`
$ audio-driver-ctl play /tmp/test.wav

在音频流中以 50% 振幅播放 450 赫兹音 1 秒

# Equivalent to `audio-driver-ctl -t output -d 000 tone 450 1 0.5`
$ audio-driver-ctl tone 450 1 0.5
Playing 450.00 Hz tone for 1.00 seconds at 0.50 amplitude

将直播取消静音

# Equivalent to `audio-driver-ctl -t output -d 000 unmute`
audio-driver-ctl unmute

备注

访问此命令

此命令仅适用于某些诊断和测试 Fuchsia 构建。

这是设备端命令,而不是 fxffx 等主机端命令。 换言之,在调用此命令之前,您必须先访问 Fuchsia 设备的外壳。

如需以交互方式访问 Fuchsia 设备的 shell,请执行以下操作:

ffx component explore <component>

<component> 替换为有权访问的组件的名称 请参阅本页中记录的命令。

要调用单个命令并将输出返回到主机,请执行以下操作:

ffx component explore <component> -c "<command>"

<command> 替换为本页记录的其中一个命令。

支持运动流的命令的 build

仅支持执行音频流的命令(例如 play) 在诊断信息中 商品套装core类似。 在其他 build 中,仅支持 info 等信息性命令。

在主机和目标 Fuchsia 设备之间复制 WAV 文件

要将 WAV 文件从您的主机复制到目标 Fuchsia 设备或 反之亦然,运行 fx cp (--to-target|--to-host) <source> <destination> 在主机上运行。<source> 是您要复制的文件,<destination> 是要放置复制文件的位置。

从主机复制到目标 Fuchsia 设备的示例:

$ fx cp --to-target /path/on/host/source.wav /path/on/target/destination.wav

从目标 Fuchsia 设备复制到主机的示例:

$ fx cp --to-host /path/on/target/source.wav /path/on/host/destination.wav

这两个命令都应从您的主机(而不是目标 Fuchsia 设备)运行。

源代码

audio-driver-ctl 的源代码://src/media/audio/tools/audio-driver-ctl/