Setel volume dari terminal

83

Apakah mungkin untuk mengatur volume audio menggunakan terminal daripada mengklik ikon speaker di bar atas?

Alasan saya ingin melakukan ini adalah karena keyboard saya tidak memiliki tombol kenaikan / penurunan volume dan saya merasa menjengkelkan untuk meraih mouse.

Tristian
sumber
1
Baca tingkat Volume Master dalam angka persen 0% -100%: amixer sget Master | grep 'Right:' | awk -F'[][]' '{ print $2 }' Tingkatkan volume Master hingga 10%:amixer -q sset Master 10%+
Eric Leschinski

Jawaban:

97

Untuk penggunaan interaktif, Anda dapat menggunakan alsamixer. Untuk skrip (misalnya mengikat ke kombinasi tombol) lihat amixer.

alsamixer disertakan secara default di sebagian besar sistem.


Untuk mengatur volume master gunakan:

# Gets a list of simple mixer controls
$ amixer scontrols 

Kemudian atur ke volume yang diinginkan, sebagai contoh

$ amixer sset 'Master' 50%
Renan
sumber
1
Apa perbedaan antara "set" dan "set". (Saya mencoba keduanya, dan keduanya bekerja)
Venryx
@Venryx man amixermenunjukkan bahwa keduanya sama dan "s" dalam "sset" adalah singkatan dari "simple". Ada juga "cset" yang mengatur konten kontrol kartu.
Matthias Braun
42

Ditemukan dalam file konfigurasi Openbox rc.xml:

# increase by 3%
amixer -q sset Master 3%+

# decrease by 3%
amixer -q sset Master 3%-

# mute/unmute
amixer -q sset Master toggle

amixer halaman manual dapat memberikan rincian lebih lanjut.

enzotib
sumber
21

Jika sistem pulseaudioAnda menggunakan, Anda dapat menggunakan pactl:

pactl set-sink-volume 0 +15%

atau

pactl set-sink-volume 0 -5dB

meskipun Anda juga bisa menentukan bilangan bulat atau faktor linier:

set-sink-volume SINK VOLUME [VOLUME ...]
          Set the volume of the specified sink (identified by its symbolic name or numerical index). VOLUME can be speci‐
          fied as an integer (e.g. 2000, 16384), a linear factor (e.g. 0.4, 1.100), a percentage (e.g. 10%, 100%) or a
          decibel value (e.g. 0dB, 20dB). If the volume specification start with a + or - the volume  adjustment  will  be
          relative to the current sink volume. A single volume value affects all channels; if multiple volume values are
          given their number has to match the sink's number of channels.
don_crissti
sumber
2
Catatan dari arch linux wiki : pactlperintah yang mengambil argumen persentase negatif akan gagal dengan kesalahan 'opsi tidak valid'. Gunakan --argumen pseudo shell standar untuk menonaktifkan parsing argumen sebelum argumen negatif. misalnyapactl set-sink-volume 1 -- -5%
Jamie Cockburn
2
@ JamieCockburn - Saya tidak yakin kapan dituliskan tetapi saya menggunakan archlinux dan sama sekali tidak perlu untuk tambahan --dengan nilai negatif (persentase, db, bilangan bulat ... semuanya bekerja dengan baik). Faktanya, ini justru sebaliknya : jika saya menggunakan --sesuai wiki misalnya pactl set-sink-volume 1 -- -3% saya dapatkan Invalid volume specification.
don_crissti
Haruskah tergantung pada shell? Saya di ubuntu 14.04, dengan Xfce, dan menjalankan perintah dari bash (4.3.11). Jika saya menghilangkan --, saya mendapatkan opsi yang tidak valid.
Jamie Cockburn
1
@ JamieCockburn - Saya tidak berpikir shell relevan (untuk catatan, ini berfungsi dengan baik untuk saya dengan keduanya bashdan zsh). Mungkin versi sebelumnya pactlmemiliki masalah ini dan upstream kemungkinan besar memperbaikinya (saya menggunakan v. 6.0).
don_crissti
1
@JamieCockburn saya menjalankan ubuntu 16.04 xfce bash, dan berfungsi dengan baik tanpa "-", hanya sebuah catatan.
Reishin
9

Saya tahu ini sudah tua. Karena Alsa dan pulseaudio sangat terhubung, jawaban dari askubuntu ini membantu saya mengatur volume suara utama saya dan HDMI:

menambah volume

amixer -q -D pulse sset Master 10%+

kurangi volume

amixer -q -D pulse sset Master 10%-

beralih bisu

amixer -q -D pulse sset Master toggle

Perintah amixer sset lainnya juga berfungsi.

Mathter
sumber
6

Di OS X gunakan yang berikut:

# highest
osascript -e "set Volume 7"
# lowest
osascript -e "set Volume 1"
# middle
osascript -e "set Volume 3.5"  

Anda bahkan dapat mengatur volume ke level fraksional lainnya:

# 25%
osascript -e "set Volume 1.75"
1 ''
sumber
@Wildcard, tombol volume Mac hanya dengan penambahan 0,25
1 ''
4

Anda juga dapat mencoba pamixer, proyek terbaru yang melakukan apa yang Anda inginkan. Itu ada di dalam repositori ArchLinux AUR dengan nama yang sama.

fradeve
sumber
bahkan dalam repositori komunitas sekarang
Michal Polovka