วิธีใช้บรรทัดคำสั่งเพื่อเปลี่ยนระดับเสียง


72

ฉันพยายามควบคุมระดับเสียงโดยใช้สคริปต์การเขียนโปรแกรมของฉัน ฉันจะทำสิ่งต่อไปนี้ใน Fedora 15, Ubuntu linux ได้อย่างไร

  1. ปิดเสียง / เปิดเสียง
  2. เพิ่มระดับเสียงและลดระดับเสียง

หมายเหตุ: โปรดทราบว่าฉันใช้ไมโครโฟน USB / เว็บลำโพงและไมโครโฟนอะนาล็อก / ลำโพง ฉันต้องการนำไปใช้กับทุกคนเพื่อให้แน่ใจว่า


1
หากใครมาที่นี่จาก lubuntu เพื่อแก้ไขปุ่มควบคุมระดับเสียงของพวกเขาให้ใส่ปุ่มกด<command>amixer -D pulse sset Master 3%+ unmute</command>ที่เกี่ยวข้อง~/.config/openbox/lubuntu-rc.xmlแล้วเรียกใช้openbox --reconfigureแก้ไขให้ฉัน
rhombidodecahedron

คำตอบ:


80

คุณสามารถใช้amixer มันอยู่ในalsa-utilsแพ็คเกจบน Ubuntu และ Debian

เรียกใช้amixerโดยไม่มีพารามิเตอร์เพื่อดูภาพรวมเกี่ยวกับการควบคุมของคุณสำหรับอุปกรณ์เริ่มต้น

คุณยังสามารถใช้alsamixerโดยไม่มีพารามิเตอร์ (จากแพ็คเกจเดียวกัน) เพื่อดูภาพรวมที่ชัดเจนยิ่งขึ้น ใช้ F6 เพื่อดูและสลับระหว่างอุปกรณ์ โดยทั่วไปคุณอาจมี PulseAudio และการ์ดเสียงฮาร์ดแวร์ให้เลือก

จากนั้นใช้amixerกับsetคำสั่งเพื่อตั้งระดับเสียง ตัวอย่างเช่นในการตั้งค่าช่องสัญญาณหลักเป็น 50%:

amixer set Master 50%

Master เป็นชื่อควบคุมและควรตรงกับชื่อที่คุณเห็นเมื่อใช้งานโดยไม่มีพารามิเตอร์

สังเกตุ%สัญญาณโดยไม่ได้มันจะถือว่าค่าเป็นระดับ 0 - 65536

หาก PulseAudio ไม่ใช่อุปกรณ์เริ่มต้นของคุณคุณอาจใช้-Dสวิตช์ได้:

amixer -D pulse set Master 50%

คำสั่งที่มีประโยชน์อื่น ๆ ชี้ให้เห็นในความคิดเห็น:

หากต้องการเพิ่ม / ลดปริมาณการใช้+/-หลังจากใช้ให้ใช้

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

หากต้องการปิดเสียงเปิดเสียงหรือสลับระหว่างสถานะปิดเสียง / ไม่เปิดเสียงใช้

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

นอกจากนี้โปรดทราบว่าอาจมีสเกลเปอร์เซ็นต์ที่แตกต่างกันสองค่าซึ่งเป็นค่าเริ่มต้นและสำหรับอุปกรณ์บางประเภทจะมีขนาดที่เป็นธรรมชาติมากขึ้นตามเดซิเบลซึ่งใช้โดยalsamixerเช่นกัน ใช้-Mเพื่อใช้หลัง

สุดท้ายหากคุณสนใจ PulseAudio เท่านั้นคุณอาจต้องการตรวจสอบpactl(ดูคำตอบข้ออื่น)


4
ขอบคุณ! มีสองวิธีในการทำสิ่งนี้ 1. เป็นตัวอย่างที่ยอดเยี่ยมของคุณ: amixer ตั้งค่า Master ใบ้; ชุด amixer เปิดเสียงต้นแบบ; 2. ยำ -y ติดตั้ง xdotool; xdotool คีย์ XF86AudioRaiseVolume; คีย์ xdotool XF86AudioLowerVolume;
YumYumYum

15
และนอกจากนี้คุณสามารถเพิ่มหรือลดระดับเสียงโดยamixer set Master 10%+และamixer set Master 10%-
ผู้ใช้

2
สิ่งนี้ไม่ทำงานใน Ubuntu
Cerin

2
ฉันไม่เห็นด้วย @Cerin ใช้งานได้กับ Ubuntu LTS 12 ในขณะนี้ โปรดทราบว่าMในต้นแบบเป็นกรณี ๆ ไป (ต้องเป็นตัวพิมพ์ใหญ่)
ashes999

5
Cerin ถูกต้อง สิ่งนี้ใช้ไม่ได้ ผลงานคือ:amixer -D pulse sset Master 50%
shivams

30

วิธีปิดเสียง:

amixer -D pulse sset Master mute

ถึงเปิดเสียง:

amixer -D pulse sset Master unmute

หากต้องการเพิ่มระดับเสียงขึ้น 5%:

amixer -D pulse sset Master 5%+

หากต้องการลดระดับเสียงลง 5%:

amixer -D pulse sset Master 5%-


1
นอกจากนี้คุณยังสามารถเพิ่มเปิดเสียงเป็นคำสั่งหลังเพื่อเปิดเสียงโดยอัตโนมัติเมื่อคุณเปลี่ยนระดับเสียง (เพื่อความสะดวก):amixer -D pulse sset Master unmute 5%+
Roman Golyshev

16

pactl / pacmd (ไม่เหมือนกันamixer) อนุญาตให้เพิ่มปริมาณได้มากกว่า 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)

สามารถตั้งค่าด้วยตนเองได้มากกว่า 100% pavucontrol(ไม่เหมือนalsamixer)

หมายเหตุ: หากคุณต้องการแชร์คำสั่งเดียวกันกับโฮสต์ที่ต่างกันด้วย sinks ที่ต่างกันคุณสามารถใช้@DEFAULT_SINK@เป็น sink แทนจำนวน0:

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

คุณตั้งค่า sink เริ่มต้นของคุณด้วยpactl set-default-sink my-sink-name(ชื่อรายการด้วยpactl list short sinks)

อัปเดต: เพิ่มแล้วtoggle mute(ขอบคุณ Don Joe)

ที่มา: askubuntu.com , wiki.archlinux.org


5

ปริมาณที่สูงขึ้น:

amixer set Master 3%+

ปริมาณที่ต่ำกว่า:

amixer set Master 3%-

ปิดเสียงสลับ:

amixer set Master toggle

ตัวอย่างการโยงคีย์สำหรับi3/ swayคำสั่งหลังจาก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

หากผู้ใช้ปิดเสียงอุปกรณ์คุณจะต้อง 'เปิดเสียง' มิฉะนั้นการตั้งค่าเปอร์เซ็นต์จะใช้งานได้ แต่เสียงยังคงปิดอยู่

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

3

คำตอบของpevikนั้นเกือบถูกต้องสำหรับ PulseAudio โดยมีสองสิ่งที่ต้องพูดถึง:

  • คำสั่งการเปลี่ยนแปลงปริมาณเชิงลบจะสร้างข้อผิดพลาดเพราะส่วนลบบางอย่างของมันจะถูกตีความว่าเป็นตัวเลือกที่แยกต่างหาก (ไม่รู้จัก); คุณต้องปิดการแยกวิเคราะห์ตัวเลือกด้วยการลบสองครั้งที่ไหนสักแห่งก่อนจำนวนลบเช่น "- -5%"

  • สถานะการปิดเสียงจริงเป็นสิ่งที่ควรจะสลับกับคีย์เดียวกันซึ่งจะไม่ทำงานหากคุณเพียงแค่ตั้งค่าระดับเสียงเป็นค่าคงที่ 0 ดังนั้นคำสั่งที่ถูกต้องสำหรับสิ่งนั้นจะเป็น:

pactl set-sink-mute @DEFAULT_SINK@ toggle

LE: การบังคับใช้คำใบ้แรกนั้นอาจขึ้นอยู่กับรุ่นของ PulseAudio ที่คุณกำลังใช้งานหรืออย่างอื่นใน distro - ฉันสังเกตเห็นว่าใน Ubuntu 16 มันใช้งานได้โดยไม่ต้องใช้ "-" และล้มเหลวถ้าฉันเพิ่ม "-" หน้าเปอร์เซ็นต์ลบ


ขอบคุณมากนั่นทำให้มันสมบูรณ์แบบเมื่อเราเปลี่ยนตัวจัดการหน้าต่างอย่างรวดเร็วเพื่อการเล่นเกมต่อเฟรมต่อวินาทีที่ดีกว่าดังนั้นฉันจึงใช้xbindkeys-configและฉันไม่จำเป็นต้องรีสตาร์ท X :) (ฮ่า ๆ ๆ ยิ้ม ๆ ... ไม่มีปุนตั้งใจเลย)
Aquarius พลังงาน

2

amixer ทำงานให้ฉัน แต่ฉันไม่ได้ภาพเคลื่อนไหวที่ดีที่ฉันได้รับเมื่อฉันกดปุ่มเพิ่มระดับเสียงบนแป้นพิมพ์ของฉัน

ฉันตัดสินใจใช้xteกดปุ่มนั้นโดยตรงจากบรรทัดคำสั่ง:

ปรับระดับเสียงขึ้น: xte 'key 0x1008ff13'

ลดเสียงลง: xte 'key 0x1008ff11'

ปิดเสียง: xte 'key 0x1008ff12'

ฉันคิดออก keysym (จำนวนฐานสิบหกนั้น) xevโดยใช้

sudo apt-get install xbindkeys xautomation
xev

จากนั้นกดปุ่มเพิ่มระดับเสียงบนแป้นพิมพ์ของคุณเพื่อรับ keysym กุญแจ sym อาจแตกต่างกันไปในแต่ละระบบดังนั้นการค้นหาจาก xev จะเป็นวิธีที่เชื่อถือได้มากที่สุด

ผลลัพธ์มีลักษณะเช่นนี้สำหรับฉัน:

เหตุการณ์ KeyRelease, อนุกรม 37, NO สังเคราะห์, หน้าต่าง 0x2c00001, รูต 0xef, subw 0x0, เวลา 6660080, (566,573), รูท: (664,651), สถานะ 0x0, keycode 123 (keysym 0x1008ff13, XF86AudioRaiseVolume), 0 0 : XFilterEvent ส่งคืน: เท็จ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.