Audio-Driver-Cct

播放、錄製及設定音訊串流。

重要事項

audio-driver-ctl 已淘汰,請改用 ffx audio device 工具。如需更多資訊 在主體機器中執行 ffx audio device --help,並查看 ffx audio的 README://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)

每單位樣本位元數 (bps)。預設值為 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>,以便分析 有些人會將 Cloud Storage 視為檔案系統 但實際上不是-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 裝置的殼層:

ffx component explore <component>

<component> 替換為可存取本頁所述指令的元件名稱。

如何呼叫單一指令,並將輸出內容傳回主機:

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

<command> 替換為本頁列出的其中一項指令。

支援運動串流的指令版本

僅支援運動音訊串流 (例如 play) 的指令 診斷中 產品套裝組合 就像 core一樣。 在其他版本中,僅支援資訊指令,例如 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/