Command-Line

如何從命令行獲取音量級別?

  • February 22, 2022

我在平鋪視窗管理器上有一個文本狀態欄,我正在使用 tcl 向它提供資訊。目前我需要一個輸出音量級別 0% 到 100% 的命令行。我正在使用 Arch Linux。

amixer在狀態欄中解析音量輸出的單行程式碼:

awk -F"[][]" '/dB/ { print $2 }' <(amixer sget Master)

編輯: 截至 2020 年 11 月,Arch Linux 的更新混音器為 1.2.4,其輸出中沒有“dB”。因此,該命令應替換為:

awk -F"[][]" '/Left:/ { print $2 }' <(amixer sget Master)

您可以使用它amixer來執行此操作。

例子

$ amixer get Master
Simple mixer control 'Master',0
 Capabilities: pvolume pswitch pswitch-joined penum
 Playback channels: Front Left - Front Right
 Limits: Playback 0 - 65536
 Mono:
 Front Left: Playback 65536 [100%] [off]
 Front Right: Playback 65536 [100%] [off]

您也可以像這樣更改它並將其靜音:

設定音量 75%

$ amixer set Master 75%
Simple mixer control 'Master',0
 Capabilities: pvolume pswitch pswitch-joined penum
 Playback channels: Front Left - Front Right
 Limits: Playback 0 - 65536
 Mono:
 Front Left: Playback 49152 [75%] [on]
 Front Right: Playback 49152 [75%] [on]

靜音/取消靜音

$ amixer set Master toggle
Simple mixer control 'Master',0
 Capabilities: pvolume pswitch pswitch-joined penum
 Playback channels: Front Left - Front Right
 Limits: Playback 0 - 65536
 Mono:
 Front Left: Playback 65536 [100%] [on]
 Front Right: Playback 65536 [100%] [on]

如果您不想通過--quiet開關看到任何輸出,您可以使輸出靜音。

$ amixer --quiet set Master 75%
$ 

引用自:https://unix.stackexchange.com/questions/89571