Bagaimana cara menggunakan baris perintah untuk mengubah volume?


72

Saya mencoba mengontrol volume menggunakan skrip pemrograman saya. Bagaimana saya dapat melakukan hal berikut di Fedora 15, Ubuntu linux?

  1. Bungkam / Bunyikan
  2. Volume naik dan volume turun

Catatan: Harap dicatat bahwa saya menggunakan mikrofon / speaker USB web dan juga mikrofon / pembicara analog. Saya ingin melamar semua untuk memastikan.


1
Jika ada yang datang ke sini dari lubuntu untuk memperbaiki tombol kontrol volume mereka, memasukkan <command>amixer -D pulse sset Master 3%+ unmute</command>keybind yang relevan ~/.config/openbox/lubuntu-rc.xmldan kemudian menjalankannya openbox --reconfigureuntuk saya
rhombidodecahedron

Jawaban:


80

Anda bisa menggunakan amixer . Ada dalam alsa-utilspaket di Ubuntu dan Debian.

Jalankan amixertanpa parameter untuk mendapatkan gambaran umum tentang kontrol Anda untuk perangkat default.

Anda juga dapat menggunakan alsamixertanpa parameter (dari paket yang sama) untuk mendapatkan gambaran umum yang lebih visual. Gunakan F6 untuk melihat dan beralih antar perangkat. Umumnya Anda mungkin memiliki PulseAudio dan kartu suara perangkat keras untuk dipilih.

Kemudian gunakan amixerdengan setperintah untuk mengatur volume. Misalnya, untuk mengatur saluran master ke 50%:

amixer set Master 50%

Master adalah nama kontrol dan harus cocok dengan yang Anda lihat ketika berjalan tanpa parameter.

Perhatikan %tandanya, tanpa itu akan memperlakukan nilai sebagai tingkat 0 - 65536.

Jika PulseAudio bukan perangkat default Anda, Anda mungkin dapat menggunakan -Dsakelar:

amixer -D pulse set Master 50%

Perintah lain yang bermanfaat ditunjukkan dalam komentar:

Untuk menambah / mengurangi penggunaan volume +/-setelah nomor, gunakan

amixer set Master 10%+
amixer set Master 10%-

Untuk menonaktifkan, mengaktifkan atau mengaktifkan antara kondisi tidak bersuara / tidak bersuara, gunakan

amixer set Master mute
amixer set Master unmute
amixer set Master toggle

Perhatikan juga bahwa mungkin ada dua skala persentase yang berbeda, baku baku dan untuk beberapa perangkat skala yang lebih alami berdasarkan desibel , yang juga digunakan oleh alsamixer. Gunakan -Muntuk menggunakan yang terakhir.

Terakhir, jika Anda hanya tertarik pada PulseAudio, Anda mungkin ingin memeriksa pactl(lihat salah satu jawaban lain).


4
Terima kasih! ada dua cara untuk melakukan ini 1. Sebagai contoh luar biasa: amixer atur Master bisu; amixer mengatur Master unmute; 2. yum -y menginstal xdotool; kunci xdotool XF86AudioRaiseVolume; kunci xdotool XF86AudioLowerVolume;
YumYumYum

15
Dan sebagai tambahan, Anda dapat menambah atau mengurangi volume dengan amixer set Master 10%+danamixer set Master 10%-
pengguna

2
Ini tidak berfungsi di Ubuntu.
Cerin

2
Saya tidak setuju @Cerin. Ini berfungsi pada Ubuntu LTS 12 sekarang. Perhatikan bahwa Mmaster in peka huruf besar kecil (harus huruf besar).
ashes999

5
Cerin benar. Ini tidak bekerja. Yang berhasil adalah:amixer -D pulse sset Master 50%
shivams

30

Untuk Membisukan:

amixer -D pulse sset Master mute

Untuk Membunyikan Suara:

amixer -D pulse sset Master unmute

Untuk meningkatkan volume 5%:

amixer -D pulse sset Master 5%+

Untuk mengecilkan volume 5%:

amixer -D pulse sset Master 5%-


1
Anda juga dapat menambahkan bersuara ke perintah terakhir untuk secara otomatis bersuara ketika Anda mengubah volume (untuk kenyamanan):amixer -D pulse sset Master unmute 5%+
Roman Golyshev

16

pactl / pacmd (tidak seperti amixer) memungkinkan untuk meningkatkan volume lebih dari 100% :-).

pactl set-sink-mute 0 toggle  # toggle mute
pactl set-sink-volume 0 0     # mute (force)
pactl set-sink-volume 0 100%  # max
pactl set-sink-volume 0 +5%   # +5% (up)
pactl set-sink-volume 0 -5%   # -5% (down)

Pengaturan manual lebih dari 100% dimungkinkan dalam pavucontrol(tidak seperti alsamixer).

CATATAN: Jika Anda ingin berbagi perintah yang sama pada host yang berbeda dengan sink yang berbeda, Anda dapat menggunakan @DEFAULT_SINK@sebagai sink sebagai ganti angka 0:

pactl set-sink-volume @DEFAULT_SINK@ +5%

Anda mengatur wastafel default Anda dengan pactl set-default-sink my-sink-name(daftar nama dengan pactl list short sinks).

UPDATE: ditambahkan toggle mute(terima kasih kepada Don Joe).

Sumber: askubuntu.com , wiki.archlinux.org .


5

Volume lebih tinggi:

amixer set Master 3%+

Volume yang lebih rendah:

amixer set Master 3%-

Matikan sakelar:

amixer set Master toggle

Contoh keybindings untuk i3/ sway, perintahnya adalah setelah exec:

bindsym XF86AudioRaiseVolume exec amixer set Master 3%+
bindsym XF86AudioLowerVolume exec amixer set Master 3%-
bindsym XF86AudioMute exec amixer set Master toggle
bindsym Ctrl+$alt+Up  exec amixer set Master 3%+
bindsym Ctrl+$alt+Down exec amixer set Master 3%-

4

jika pengguna telah membisukan perangkat Anda harus 'unmute' itu. jika tidak, pengaturan persentase akan berfungsi tetapi suara masih mati

amixer set 'Master' 100% unmute
/usr/bin/amixer set 'PCM' 100% unmute

3

Jawaban pevik hampir benar untuk PulseAudio, dengan dua hal untuk menyebutkan:

  • perintah perubahan volume negatif akan menghasilkan kesalahan karena bagian minus-sesuatu darinya akan ditafsirkan sebagai opsi terpisah (tidak dikenali); Anda harus mematikan opsi penguraian dengan minus ganda di suatu tempat sebelum angka negatif, misalnya "- -5%"

  • keadaan mute yang sebenarnya adalah sesuatu yang harus dimungkinkan untuk beralih dengan kunci yang sama, yang tidak akan berfungsi jika Anda hanya mengatur volume ke nilai tetap 0, jadi perintah yang tepat untuk itu adalah:

pactl set-sink-mute @DEFAULT_SINK@ toggle

LE: Apakah petunjuk pertama dapat diterapkan mungkin tergantung pada versi PulseAudio yang Anda jalankan atau pada sesuatu yang lain di distro - Saya perhatikan bahwa di Ubuntu 16 berfungsi tanpa "-" dan gagal jika saya menambahkan "-" di depan persentase negatif.


thx sangat bagus, yang membuatnya sempurna ketika kita mengganti window manager dengan cepat untuk fps gaming yang lebih baik, jadi saya menggunakan xbindkeys-configdan saya bahkan tidak perlu me-restart X :) (lol senyum ... no pun intended lol)
Aquarius Kekuatan

2

amixer bekerja untuk saya, tetapi saya tidak mendapatkan animasi yang bagus yang saya dapatkan ketika saya menekan tombol volume naik pada keyboard saya.

Saya memutuskan untuk menggunakan xteuntuk langsung menekan tombol itu dari baris perintah:

Volume naik: xte 'key 0x1008ff13'

Volume turun: xte 'key 0x1008ff11'

Bisu: xte 'key 0x1008ff12'

Saya menemukan keysym (nomor hex itu) dengan menggunakan xev.

sudo apt-get install xbindkeys xautomation
xev

dan kemudian tekan tombol volume naik pada keyboard Anda untuk mendapatkan kunci tombol. Sym key dapat bervariasi dari satu sistem ke sistem sehingga menemukan itu dari xev akan menjadi cara yang paling dapat diandalkan.

Hasilnya terlihat seperti ini untuk saya:

Peristiwa KeyRelease, serial 37, NO sintetik, jendela 0x2c00001, root 0xef, subw 0x0, waktu 6660080, (566.573), root: (664.651), sebutkan 0x0, kode kunci 123 (keysym 0x1008ff13, XF86AudioRaiseVolume), sama denganmemasukkan XL, tambahkan dengan layar. : Pengembalian XFilterEvent: Salah

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.