ตั้งค่าระดับเสียงจากเทอร์มินัล


83

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

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


1
อ่านระดับเสียงหลักในจำนวนร้อยละ 0% -100%: amixer sget Master | grep 'Right:' | awk -F'[][]' '{ print $2 }' เพิ่มระดับเสียงหลักโดย 10%:amixer -q sset Master 10%+
Eric Leschinski

คำตอบ:


97

alsamixerสำหรับการใช้งานแบบโต้ตอบที่คุณสามารถใช้ สำหรับการเขียนสคริปต์ (เช่นการผูกกับคีย์ผสม) amixerจะดูที่

alsamixer รวมอยู่ในค่าเริ่มต้นในระบบส่วนใหญ่


ในการตั้งค่าการใช้โวลุ่มหลัก:

# Gets a list of simple mixer controls
$ amixer scontrols 

จากนั้นตั้งเป็นปริมาณที่ต้องการเป็นตัวอย่าง

$ amixer sset 'Master' 50%

1
อะไรคือความแตกต่างระหว่าง "sset" และ "set" (ฉันลองทั้งคู่และทำงานทั้งคู่)
Venryx

@Venryx man amixerแนะนำว่าสิ่งเหล่านี้เทียบเท่ากันและ "s" ใน "sset" หมายถึง "simple" นอกจากนี้ยังมี "ชุด" ที่ตั้งค่าเนื้อหาการควบคุมการ์ด
Matthias Braun

42

พบในไฟล์กำหนดค่าของ 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 หน้าคู่มือสามารถให้รายละเอียดเพิ่มเติม


21

หากระบบของคุณใช้อยู่pulseaudioคุณสามารถใช้pactl:

pactl set-sink-volume 0 +15%

หรือ

pactl set-sink-volume 0 -5dB

แม้ว่าคุณจะสามารถระบุจำนวนเต็มหรือตัวประกอบเชิงเส้นได้:

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.

2
หมายเหตุจากarch linux wiki : pactlคำสั่งที่รับอาร์กิวเมนต์เปอร์เซ็นต์ลบจะล้มเหลวพร้อมข้อผิดพลาด 'ตัวเลือกไม่ถูกต้อง' ใช้--อาร์กิวเมนต์ pseudo เชลล์มาตรฐานเพื่อปิดการใช้งานการแยกวิเคราะห์อาร์กิวเมนต์ก่อนอาร์กิวเมนต์ลบ เช่นpactl set-sink-volume 1 -- -5%
Jamie Cockburn

2
@JamieCockburn - ฉันไม่แน่ใจว่าเมื่อใดที่ถูกเขียน แต่ฉันใช้ archlinuxและไม่จำเป็นต้องเพิ่ม--ค่าลบ (เปอร์เซ็นต์, db, จำนวนเต็ม ... ทั้งหมดทำงานได้ดี) ในความเป็นจริงมันค่อนข้างตรงข้าม : ถ้าผมใช้--ตามเช่นวิกิพีเดียที่ฉันได้รับpactl set-sink-volume 1 -- -3% Invalid volume specification
don_crissti

จะต้องขึ้นอยู่กับเปลือกแล้ว? ฉันใช้ Ubuntu 14.04 กับ Xfce และรันคำสั่งจาก bash (4.3.11) หากฉันข้ามไป--ฉันจะได้รับตัวเลือกที่ไม่ถูกต้อง
Jamie Cockburn

1
@JamieCockburn - ฉันไม่คิดว่าเชลล์มีความเกี่ยวข้อง (สำหรับการบันทึกมันใช้งานได้ดีสำหรับฉันทั้งคู่bashและzsh) รุ่นก่อนหน้าอาจเป็นpactlปัญหานี้และอัปสตรีมมีแนวโน้มที่จะแก้ไขได้ (ฉันใช้เวอร์ชัน 6.0)
don_crissti

1
@JamieCockburn ฉันใช้งาน Ubuntu 16.04 xfce bash และมันทำงานได้อย่างสมบูรณ์แบบ witout "-" เพียงแค่ทราบ
Reishin

9

ฉันรู้ว่านี่เป็นของเก่า เนื่องจาก Alsa และ pulseaudio เชื่อมต่อกันมากคำตอบจาก askubuntu นี้ช่วยให้ฉันจัดการระดับเสียงจากทั้งเสียงหลักและ HDMI:

เพิ่มปริมาณ

amixer -q -D pulse sset Master 10%+

ลดระดับเสียง

amixer -q -D pulse sset Master 10%-

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

amixer -q -D pulse sset Master toggle

คำสั่ง amixer sset อื่น ๆ ก็ทำงานเช่นกัน



6

ใน OS X ใช้สิ่งต่อไปนี้:

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

คุณยังสามารถตั้งค่าระดับเสียงเป็นระดับเศษส่วนอื่น ๆ :

# 25%
osascript -e "set Volume 1.75"

ที่น่าสังเกตว่าคุณยังสามารถใช้ปุ่มปรับระดับเสียง Mac เพื่อเปลี่ยนระดับเสียงทีละเศษส่วน
Wildcard

@Wildcard ปุ่มปรับระดับเสียง Mac จะเพิ่มขึ้นเพียง 0.25
1 ''

4

คุณสามารถลองpamixerโครงการล่าสุดที่ทำสิ่งที่คุณต้องการ มันอยู่ในที่เก็บ ArchLinux AUR ที่มีชื่อเดียวกัน


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