ทุกครั้งที่ฉันต้องการใช้ Skype ฉันต้องไปที่การตั้งค่าเสียง และให้เปลี่ยนเสียงเป็น " เว็บแคม " และยกเลิกการทำเครื่องหมายปุ่ม " ปิดเสียง " มันค่อนข้างน่ารำคาญ มีวิธีที่จะทำให้การกำหนดค่าเดียวกันเสมอหรือไม่
ทุกครั้งที่ฉันต้องการใช้ Skype ฉันต้องไปที่การตั้งค่าเสียง และให้เปลี่ยนเสียงเป็น " เว็บแคม " และยกเลิกการทำเครื่องหมายปุ่ม " ปิดเสียง " มันค่อนข้างน่ารำคาญ มีวิธีที่จะทำให้การกำหนดค่าเดียวกันเสมอหรือไม่
คำตอบ:
เมื่อเรียกใช้ pulseaudio การตั้งค่าทั้งหมดสามารถกำหนดได้โดยใส่ไฟล์กำหนดค่าเองใน.pulse
ไดเรกทอรีที่ซ่อนอยู่ในหน้าแรกของคุณ หากไฟล์เหล่านี้ยังไม่มีอยู่คุณสามารถใช้ไฟล์มาตรฐาน/etc/pulse/
เป็นเทมเพลตได้ รายการส่วนใหญ่มีคำอธิบาย verbous ในไฟล์เหล่านี้
~/.pulse/default.pa
เพื่อโหลดโมดูลและกำหนดค่าเริ่มต้น~/.pulse/client.conf
เพื่อกำหนดค่าไคลเอนต์สำหรับเซิร์ฟเวอร์เสียง~/.pulse/daemon.conf
เพื่อกำหนดอัตราตัวอย่างและบัฟเฟอร์ในการทำให้เว็บแคมของคุณเป็นแหล่งเริ่มต้นเราจำเป็นต้องทราบชื่อและหมายเลขของแหล่งข้อมูลนี้โดยดูจากรายการที่สร้างโดยคำสั่งต่อไปนี้ในเทอร์มินัล:
pacmd list-sources
จากนั้นเราจะแก้ไขบรรทัดต่อไปนี้ใน~/.pulse/default.pa
:
set-default-source [name]
และแทนที่[name]
ด้วยชื่อหรือหมายเลขแหล่งที่มาสำหรับแหล่งที่ต้องการ จากนั้นเราต้องตรวจสอบให้แน่ใจว่าแหล่งที่มานั้นไม่ได้ถูกปิดเสียงโดยเพิ่มบรรทัดนี้
set-source-mute [name]|[#n]> 0
ตั้งชื่อหรือดัชนีของแหล่งที่มาของคุณ คุณสามารถเพิ่มความหลากหลายของการตั้งค่าอื่น ๆ ที่ได้รับการอ้างอิงในPulseAudio วิกิพีเดีย (ตอนนี้บนหน้าคน: man pulse-cli-syntax
)
ขอแนะนำให้ทดสอบคำสั่งทั้งหมดก่อนผ่านทางอินเตอร์เฟสบรรทัดคำสั่งก่อนเปลี่ยนไฟล์กำหนดค่า สามารถเปิดได้ด้วย pacmd
เทอร์มินัล
/etc/pulse/default.pa
เริ่มต้นการตั้งค่าที่อยู่ใน ใช้ไฟล์นี้หรือคัดลอกไป~/.pulse
ก่อนแก้ไข
pacmd list-sources
หนึ่งต้องเขียนเป็นชื่ออุปกรณ์ป้อนสิ่งที่เขียนอยู่ภายในวงเล็บมุมของการส่งออกของ set-default-source alsa_input.usb-0d8c_USB_PnP_Sound_Device-00-Device.analog-mon
คือมีสำหรับอุปกรณ์ของฉันมันเป็น
ฉันยอมรับว่าปัญหาคือ Pulseaudio ไม่ได้ตั้งค่าอุปกรณ์ USB เป็นค่าเริ่มต้นเนื่องจากไม่มีอยู่เมื่อเริ่มการเต้นของชีพจร
ซูโซลูชั่นของฉันคือการขอเข้าสู่ระบบที่ไม่แจ้งให้ทราบเมื่อมีการเชื่อมต่ออุปกรณ์ USB ... UDEV!
BTW คำแนะนำเหล่านี้ขี้ขลาดเล็กน้อยและฉันสมมติว่าคุณสบาย ๆ ที่จะทำสิ่งต่าง ๆ ที่บรรทัดคำสั่งและกลายเป็นผู้ใช้รูทเพื่ออัปเดตไฟล์ udev และทำให้สคริปต์ทำงานได้
ขั้นตอนแรกคือเสียบเว็บแคมของคุณและค้นหาผู้จำหน่ายมายากลและหมายเลขผลิตภัณฑ์โดยพิมพ์
lsusb
ฉันใช้ Microsoft Lifecam และมันแสดงเป็น
Bus 001 Device 013: ID 045e:072d Microsoft Corp.
ส่วนที่สำคัญคือ045e: 072d
ถัดไปขณะที่เว็บแคมเชื่อมต่ออยู่ให้ค้นหาชื่ออุปกรณ์ pulseaudio ชนิด
pacmd list-sources
อีกครั้งฉันกำลังมองหาบรรทัดที่เริ่มname:
แล้วมีบางสิ่งบางอย่างเกี่ยวกับ Microsoft Lifecam ... ที่นี่เป็น
name: <alsa_input.usb-Microsoft_Microsoft___LifeCam_VX-5500-02-VX5500.analog-mono>
ดังนั้นชื่ออุปกรณ์ pulseaudio ของฉันจะเป็น alsa_input.usb-Microsoft_Microsoft___LifeCam_VX-5500-02-VX5500.analog-mono
จากนั้นฉันสร้างกฎ udev ใหม่ซึ่งจะใช้งานเมื่ออุปกรณ์ USB ที่มีผู้ขาย = 045e และผลิตภัณฑ์ = 072d ถูกแทรก หากต้องการสร้างกฎให้สร้างไฟล์ใหม่ชื่อ/etc/udev/rules.d/
SOMETHING.rules
(ฉันเรียกว่าไฟล์ของฉัน/etc/udev/rules.d/95-webcam-mic.rules
)
ใส่บรรทัดนี้ลงในไฟล์
SUBSYSTEMS=="usb", ATTR{idVendor}=="045e", ATTR{idProduct}=="072d", ACTION=="add", GROUP="audio", RUN+="/usr/local/bin/webcam-mic"
อย่าลืมแทนที่ATTR {idVendor}และATTR {idProduct}ด้วยค่าสำหรับเว็บแคมของคุณ
สิ่งที่กฎนี้ทำคือเรียกใช้สคริปต์เพื่อตั้งค่าอุปกรณ์ usb สำหรับอินพุตนั่นคือRUN+="/usr/local/bin/webcam-mic"
ส่วนหนึ่ง
เวลาภาพรวมด่วน ทุกครั้งที่ฉันเชื่อมต่อเว็บแคมฉันต้องการเรียกใช้คำสั่ง
pacmd set-default-source alsa_input.usb-Microsoft_Microsoft___LifeCam_VX-5500-02-VX5500.analog-mono
แต่คำสั่งจำเป็นต้องเรียกใช้ในฐานะฉัน (ผู้ใช้ที่รันเดสก์ท็อป) แต่ udev รันในฐานะผู้ใช้รูท - ดังนั้นเมื่อ udev รันคำสั่งของฉันฉันต้องการให้เปลี่ยนผู้ใช้ของฉันจากนั้นเรียกใช้คำสั่ง
ดังนั้นเราจึงมี 2 ตัวเลือก
รวดเร็วและสกปรก ทำให้กฎ udev ทำงานsu james -c pacmd set-default-source...
นี่เป็นสิ่งที่ผิดฉันไม่สามารถพิมพ์คำสั่งให้เสร็จได้ ถ้าคุณเปลี่ยนเว็บแคม ถ้าคุณติดตั้งสิ่งนี้กับผู้ใช้รายอื่น
ทำความสะอาดเล็กน้อย เรียกใช้สคริปต์ที่อ่านไฟล์ค่าเริ่มต้นซึ่งมีชื่ออุปกรณ์ pulseaudio และชื่อผู้ใช้ของคุณ ถ้าคุณต้องการไฟล์ที่อยู่ใน GitHub /usr/local/bin/webcam-mic
แรกสคริปต์ ไฟล์ค่าเริ่มต้น/etc/default/webcam-mic
เพียงแค่ต้องกำหนดตัวแปรเปลือก 2 ตามความคิดเห็นในส่วนสำคัญ ใส่สคริปต์ลงใน/usr/local/bin/
และทำให้มันปฏิบัติ จากนั้นใส่ไฟล์ค่าเริ่มต้นลงใน/etc/defaults/
และแก้ไขเพื่อใช้ชื่อผู้ใช้และอุปกรณ์ pulseaudio ของคุณก่อนหน้านี้
โชคดี!
การแก้ปัญหาโดย Takkat ไม่ได้ผลสำหรับฉันนี่คือคำตอบของฉันสำหรับทุกคนที่ยังมีปัญหากับสิ่งนี้
มีสองประเด็นที่ฉันต้องแก้ปัญหาโดย Takkat ก่อนอื่นฉันตระหนักว่าต้องมีความล่าช้าหลังจากเริ่มต้นก่อนที่จะเปลี่ยนเป็นไมโครโฟนได้ (ฉันใช้คำสั่ง 'sleep' ในโซลูชันด้านล่าง) นอกจากนี้คำสั่ง 'set-default-source' กำลังทำงานเพื่อเปิดไมโครโฟน USB แต่อย่างใด Skype ไม่รู้จักและยังใช้ไมโครโฟนภายในต่อไป
เพื่อให้ใช้งานได้อันดับแรกจะมีประโยชน์ในการติดตั้ง pavucontrol ใน pavucontrol ให้เปิดแท็บ 'การกำหนดค่า' และสังเกตสิ่งที่เกิดขึ้นกับคำสั่งด้านล่างเพื่อตรวจสอบสิ่งที่ทำงานได้ตามที่ตั้งใจ
จากนั้นป้อนเทอร์มินัล:
pacmd
จากนั้นป้อน:
list-cards
ในผลลัพธ์ค้นหาหมายเลขดัชนีของเสียง USB ที่คุณต้องการ (ในกรณีของฉันนี่คือ '1') จากนั้นดูบรรทัดที่ระบุไว้ภายใต้ 'ส่วนกำหนดค่า' สำหรับทั้งการ์ดเริ่มต้นและการ์ด USB สิ่งเหล่านี้ควรเหมือนกับที่อยู่ในรายการ pavucontrol และอาจเป็นอะไรเช่น 'ouput: input + output', 'off' หรือ 'input: analog-mono' เป็นต้นและยังอยู่ในบรรทัดคำสั่ง pacmd คำสั่งset-card-profile <index number> <profile name>
ควรเปลี่ยน การตั้งค่าใน pavucontrol สิ่งที่เราต้องการทำที่นี่คือการสลับเสียงภายในจากดูเพล็กซ์เป็นเอาท์พุทเท่านั้นและ USB เป็นอินพุท
เมื่อพบโปรไฟล์ที่เหมาะสมแล้วเราต้องการสร้างคำสั่งเริ่มต้นเพื่อเปลี่ยนการตั้งค่าเล็กน้อยหลังจากเริ่มต้น หากต้องการสร้างคำสั่งเริ่มต้นให้เปิดประและค้นหา 'แอปพลิเคชันเริ่มต้น' จากนั้นคลิก 'เพิ่ม' จากนั้นป้อนชื่อที่คุณเลือกและคำสั่งที่เหมาะสมด้านล่าง
หลังจากลองผิดลองถูกแล้วคำสั่ง start up ของฉันก็ดูเป็นแบบนี้:
bash -c "sleep 30 && pacmd set-card-profile 0 output:analog-stereo && pacmd set-card-profile 1 off && pacmd set-card-profile 1 input:analog-mono"
คำอธิบาย: ฉันพบว่าจำเป็นต้องใช้คำสั่ง 'sleep' ซึ่งหมายความว่าคำสั่งจะถูกดำเนินการหลังจากหยุดชั่วคราวซึ่งฉันตั้งไว้ที่ 30 วินาที (ฉันคิดว่านี่น่าจะน้อยกว่า คำสั่งถัดไป (หลังจาก '&&') คือการรับโปรไฟล์การ์ดเริ่มต้น (ภายใน) เพื่อสลับจากอินพุต + เอาต์พุต (ดูเพล็กซ์ซึ่งเป็นค่าเริ่มต้น) เป็นเอาต์พุตเท่านั้น คำสั่งถัดไปสำหรับการ์ดเสียง USB (ในกรณีของฉันหมายเลขคือ '1') เพื่อปิด คำสั่งสุดท้ายสำหรับการ์ดใบเดียวกันนี้เพื่อเปิดกลับในโหมด 'อินพุต: analog-mono'
คุณอาจต้องเล่นกับการตั้งค่าเหล่านี้เพื่อหาคนที่ทำงาน
ตอนนี้เมื่อฉันเริ่มต้นไมโครโฟน USB ของฉันพร้อมใช้งานหลังจาก 30 วินาทีและ Skype ใช้ไมโครโฟนที่ถูกต้อง
ลองสิ่งนี้คลิกที่ไอคอนลำโพงที่แผงด้านบนของคุณการตั้งค่าการคลิก คุณสามารถเลือกตัวเลือกอินพุตเริ่มต้นสำหรับไมโครโฟนของคุณและอาจเปลี่ยนการกำหนดค่าฮาร์ดแวร์บางอย่างเพื่อให้ใช้ได้