ALSA: วิธีการเปลี่ยนอุปกรณ์แสดงผลชั่วคราว


15

ฉันต้องการทำสิ่งที่ง่ายที่สุดใน ALSA: เพื่อให้หูฟัง USB ผลิตเสียงแทนลำโพงภายในแท็บเล็ตของฉัน ฉันไม่ต้องการเปลี่ยนไฟล์กำหนดค่าเช่นasound.rcหรือalsa.confหรือasound.confและตั้งค่าหูฟังเป็นอุปกรณ์เอาท์พุทเริ่มต้นอย่างถาวรโดยการเปลี่ยนลำดับของอุปกรณ์ฉันต้องการผลชั่วคราวจนกว่าฉันจะถอดปลั๊กหูฟัง แปลกฉันไม่สามารถ google คำตอบ คือalsamixerความสามารถในการทำที่ (ดูเหมือนว่าไม่มี)?

ใน Gnome คุณสามารถเลือกอุปกรณ์แสดงผลปัจจุบันได้อย่างง่ายดายPulseAudioทั้งใน GUI หรืออินเตอร์เฟส CLI แต่PulseAudioตัวมันเองทำงานได้ดีบน ALSA! ดังนั้นฉันจึงสงสัยว่ามันบังคับให้ ALSA เปลี่ยนอุปกรณ์ส่งออกได้อย่างไร


alsamixerจะมีตัวเลือก "เลือกการ์ดเสียง" ในอินเทอร์เฟซ แต่ฉันไม่ทราบว่าจริง ๆ แล้วยังตั้งค่าอุปกรณ์แสดงผล
goldilocks

1
ไม่น่าเสียดายที่มันเพิ่งจะแสดงพารามิเตอร์ของการ์ดเสียงนี้และอนุญาตให้ปรับแต่งได้ แต่ไม่ได้เปลี่ยนเส้นทางการส่งออกไป
Boris Burkov

สวัสดีคุณสามารถลองใช้ exec alsamixerจากเทอร์มินัลแล้วกดF6เพื่อเลือกการ์ดเสียงอื่น :)
slackmart

@sgmart สวัสดี, sgmart ฉันทำแบบนั้น แต่มันไม่ถ่ายโอนเสียงไปยังอุปกรณ์นั้นเพียงแค่เลือกอุปกรณ์นั้นสำหรับปรับพารามิเตอร์ของมันไม่ใช่สตรีมเอาต์พุตไปยังมัน
Boris Burkov

4
ยูทิลิตี้ alsamixer มีการควบคุมบางอย่าง: Master, PCI และอื่น ๆ ตรวจสอบว่ามีMMฉลาก (MM = ปิดเสียง) หรือไม่ดังนั้นใช้Mปุ่มจากแป้นพิมพ์เพื่อเปิดใช้งานเสียง
slackmart

คำตอบ:


4

หากอุปกรณ์ USB นั้นอยู่ในรายการการ์ดเสียงในระบบคุณอาจต้องการตรวจสอบman amixerและใช้unmuteพารามิเตอร์

amixer -c 1 set Master playback 100% unmute

ตรวจสอบช่องอื่น ๆ (PCM ฯลฯ ) ตัวอย่างจากคู่มือคือ:

   amixer -c 1 sset Line,0 80%,40% unmute cap
          will set the second soundcard's left line input volume to 80% and right line
          input to 40%, unmute it, and select it as a source for capture (recording).

   amixer -c 1 -- sset Master playback -20dB
          will set the master volume of the second card to -20dB.  If the  master  has
          multiple channels, all channels are set to the same value.

   amixer -c 1 set PCM 2dB+
          will  increase  the PCM volume of the second card with 2dB.  When both play‐
          back and capture volumes exist, this is applied to both volumes.

   amixer -c 2 cset iface=MIXER,name='Line Playback Volume",index=1 40%
          will set the third soundcard's second line playback volume(s) to 40%

   amixer -c 2 cset numid=34 40%
          will set the 34th soundcard element to 40%

ขอบคุณ Jari มันใช้งานได้ ฉันอ่านคู่มือเกี่ยวกับ ALSA แล้วและมีคำถาม: อุปกรณ์ที่ระบุไว้โดย amixer และ alsamixer จริง ๆ แล้วไม่ใช่อุปกรณ์ฮาร์ดแวร์ แต่เป็นอุปกรณ์ ALSA ที่สร้างโดยปลั๊กอิน alsa ใน /usr/share/alsa/alsa.conf และเพื่อน ๆ ฉันส่วนใหญ่เข้าใจไวยากรณ์ของปลั๊กอินเหล่านั้น แต่ไม่สามารถหาคำจำกัดความของคำหลักพื้นฐานเช่น "pcm" หรือ "ctl" หรือ "type" ฉันไม่พบรายการคำหลักใด ๆ ในเอกสารประกอบ doxygen: alsa-project.org/alsa-doc/alsa-lib, alsa-project.org/alsa-doc/alsa-lib/conf.html คุณรู้จักแหล่งข้อมูลเกี่ยวกับพวกเขาบ้างไหม?
Boris Burkov

8
สิ่งนี้ไม่ได้แก้คำถามเดิม คุณสามารถตั้งค่าพารามิเตอร์ได้ แต่ไม่สามารถเปลี่ยนการ์ดที่ส่งสัญญาณเสียงได้
ตัวเอง

2
หากสิ่งนี้ตอบคำถามเดิมได้จริงก็จำเป็นต้องมีตัวอย่างเต็มรูปแบบ สิ่งนี้จะทำอะไรที่ alsamixer ทำไม่ได้? เห็นได้ชัดว่า alsamixer ไม่สามารถสลับไปยังเอาต์พุตผ่านการ์ดเสียงอื่น หรือในกรณีของฉันฉันต้องการส่งออกผ่านการ์ดเสียงเดียวกัน แต่ HDMI แทนที่จะเป็นลำโพง / หูฟัง Pulseaudio ทำสิ่งเหล่านี้ แต่ได้อย่างไร จำเป็นต้องมีตัวอย่างตั้งแต่ต้นจนจบเพื่อให้เป็นคำตอบที่ดี
โคลินคีแนน

1
Pitty นี้ได้รับเลือกให้เป็นคำตอบ - คำถามคือว่าสิ่งที่ฉันกำลังมองหา: วิธีการเปลี่ยนบัตรที่ใช้สำหรับการส่งออกชั่วคราว อย่างไรก็ตามตามที่ @oneelf ระบุไว้แล้วคำตอบนี้ไม่ได้อธิบายถึงวิธีการทำเช่นนั้น การถามคำถามใหม่ที่มีชื่อเรื่องเกือบเหมือนกันตอนนี้ดูเหมือนจะปิดเหมือนกันหมด
domsson

1
@domsson เพียงแค่ลิงค์กลับไปที่อันนี้และอธิบายว่าคำตอบไม่ได้แก้ปัญหาของคุณ ที่ควรตรวจสอบให้แน่ใจว่ามันไม่ได้ปิดเหมือนล่อ
terdon

0

IIUC คุณสามารถปรับปรุง.asoundrcหรือ/etc/asound.confแบบไดนามิก ดังนั้นควรเป็นไปได้ที่จะมีไฟล์สองไฟล์headphones.confและfront.confตั้งค่าอุปกรณ์เริ่มต้นของคุณเป็นhw:channel,deviceหมายเลขที่เหมาะสมจากนั้นสลับเป็นเหตุการณ์ "แจ็ค ACPI / หูฟังปลั๊กเฮดโฟน" ฉันกำลังจะลองสิ่งนี้โดยใช้ "ln" เพื่อลิงก์/etc/asound.confไปยังหนึ่งใน/etc/sounds/{headphones,front}.conf

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