【问题标题】:Setting system volume in a bash script (in linux)在 bash 脚本中设置系统音量(在 linux 中)
【发布时间】:2013-10-11 01:42:15
【问题描述】:

我需要在 bash 脚本中设置系统音量,但我不知道如何执行此操作。 我应该使用alsactl 吗? /proc/sys 中是否有一些我可以使用的值?

【问题讨论】:

  • 找到了我要找的东西;混合器。例如 'amixer set Master 75%' 会将主音量设置为 75% :)

标签: linux bash audio alsa


【解决方案1】:

您应该使用amixer 工具。

不带参数运行amixer 以获取混音器控件列表。
使用这样的命令:

amixer set Master 50%     # set absolute
amixer set Master 2dB+    # set relative
amixer set Master unmute

【讨论】:

  • amixer set Master 2dB+ 不适合我,amixer -D pulse sset Master 2%+ 适合我。
【解决方案2】:

您也可以使用pactl

pactl set-sink-volume 0 60%  # set absolute
pactl set-sink-volume 0 +10% # set relative
pactl set-sink-mute 0 0      # unmute

特别是,pactl set-sink-mute 0 0 unmute 命令在我的计算机上有效,而amixer set Master unmute 则无效。

【讨论】:

  • 如果上述方法不起作用,请尝试 pactl set-sink-volume 1 60% 之类的语句(这意味着您的设备是 1 号而不是 0 号) 但是,我的设备从未超过 1 号。
【解决方案3】:

我的 ~/bin 中有一个不错的 vol 脚本来帮助我解决问题...

#!/bin/sh

export XDIALOG_NO_GMSGS=1

case ${1} in
    +|-) VOL=( $(amixer set Master 10dB${1} |tail -1|tr -d "[]") )
        Xdialog --no-buttons --title "Vol" --infobox ${VOL[3]} 50x30+32+32 ;;
    *[0-9]) VOL=( $(amixer set Master "${1}%" |tail -1|tr -d "[]") )
        Xdialog --no-buttons --title "Vol" --infobox ${VOL[3]} 50x30+32+32 ;;
    *) printf "Usage: vol [+]|[-]|[0-100]\n" >&2 ;;
esac

如果你没有安装 Xdialog,一个简单的 echo ${VOL[3]} 会给你一些 alsamixer 反馈。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-15
    • 2018-11-16
    • 2012-03-28
    • 1970-01-01
    相关资源
    最近更新 更多