ฉันรู้ว่า Ubuntu (PulseAudio) มีปัญหาที่เป็นที่ทราบกันดีเกี่ยวกับชุดหูฟังบลูทูธ และบางครั้งฉันก็มีปัญหาในการแก้ไขปัญหานี้
หลังจากความพยายามที่แตกต่างกัน อันนี้ ช่วยฉันและทุกอย่างดูเหมือนจะทำงาน ฉันยังสามารถทำให้โปรไฟล์การสลับอัตโนมัติทำงานได้เมื่อฉันใช้ไมโครโฟน
แต่ฉันใช้ระบบ Ubuntu สองระบบ (18.04 และ 20.04) และตัวแปลงสัญญาณที่มีให้นั้นแตกต่างกันสำหรับหูฟังตัวเดียวกันในทั้งสองระบบ แม้ว่าฉันจะตรวจสอบการกำหนดค่าทั้งหมด แพ็คเกจที่ติดตั้ง บันทึก ฯลฯ ทุกอย่างดูเหมือนเดิมทุกประการ
เมื่อวันที่ 20.04 ฉันมี อคส ตัวแปลงสัญญาณ โดยค่าเริ่มต้น และ เอ็มเอสบีซี เมื่อใช้ ไมโครโฟน ซึ่งเป็นสิ่งที่ดี
แต่เมื่อวันที่ 18.04 ฉันมี เอสบีซี ตัวแปลงสัญญาณ โดยค่าเริ่มต้น และ ซีวีเอสดี เมื่อใช้ ไมโครโฟน ซึ่งแย่กว่านั้น
โปรไฟล์ที่มีอยู่ทั้งหมดใน 18.04:
- เฮดยูนิต (HSP/HPF, codec CVSD)
- การเล่นภาพที่มีความเที่ยงตรงสูง (A2DP Sink)
- การเล่นภาพที่มีความเที่ยงตรงสูง (A2DP Sink, codec SBC)
โปรไฟล์ที่มีอยู่ทั้งหมดใน 20.04:
- เฮดยูนิต (HSP/HPF, codec mSBC)
- การเล่นภาพที่มีความเที่ยงตรงสูง (A2DP Sink)
- การเล่นภาพที่มีความเที่ยงตรงสูง (A2DP Sink, codec SBC-XQ)
- การเล่นภาพที่มีความเที่ยงตรงสูง (A2DP Sink, codec SBC)
- การเล่นภาพที่มีความเที่ยงตรงสูง (A2DP Sink, codec AAC)
จะนำตัวแปลงสัญญาณเดียวกันเป็น 18.04 เพื่อทำให้คุณภาพดีขึ้นได้อย่างไร
/etc/pipewire/media-session.d/bluez-monitor.conf (เหมือนกันทั้ง 2 ระบบ ค่อนข้างจะเป็นค่าเริ่มต้น แต่ bluez5.autoswitch-โปรไฟล์ ตั้งค่าเป็นจริง):
# ไฟล์กำหนดค่ามอนิเตอร์ Bluez สำหรับ PipeWire เวอร์ชัน 0.4.1 #
#
# คัดลอกและแก้ไขไฟล์นี้ใน /etc/pipewire/media-session.d/
# สำหรับการเปลี่ยนแปลงทั้งระบบหรือใน
# ~/.config/pipewire/media-session.d/ สำหรับการเปลี่ยนแปลงในเครื่อง
คุณสมบัติ = {
# คุณลักษณะเหล่านี้ใช้ไม่ได้กับชุดหูฟังทั้งหมด ดังนั้นจึงเปิดใช้งานไว้
# โดยค่าเริ่มต้นตามฐานข้อมูลฮาร์ดแวร์ นอกจากนี้ยังสามารถเป็น
# บังคับเปิด/ปิดสำหรับอุปกรณ์ทั้งหมดโดยตัวเลือกต่อไปนี้:
#bluez5.enable-sbc-xq = จริง
#bluez5.enable-msbc = จริง
#bluez5.enable-hw-volume = จริง
#bluez5.enable-faststream = จริง
# ดู bluez-hardware.conf สำหรับฐานข้อมูลฮาร์ดแวร์
# บทบาทของชุดหูฟังที่เปิดใช้งาน (ค่าเริ่มต้น: [ hsp_hs hfp_ag ]) สิ่งนี้
# คุณสมบัติใช้กับแบ็กเอนด์เนทีฟเท่านั้นปัจจุบันชุดหูฟังบางรุ่น
# (Sony WH-1000XM3) ไม่ทำงานกับทั้ง hsp_ag และ hfp_ag
เปิดใช้งาน # ปิดใช้งาน hsp_ag หรือ hfp_ag เพื่อแก้ไข
#
# บทบาทของชุดหูฟังที่รองรับ: hsp_hs (ชุดหูฟัง HSP),
# hsp_ag (เกตเวย์เสียง HSP)
# hfp_hf (HFP แฮนด์ฟรี),
# hfp_ag (เกตเวย์เสียง HFP)
#bluez5.headset-roles = [ hsp_hs hsp_ag hfp_hf hfp_ag ]
# ตัวแปลงสัญญาณ A2DP ที่เปิดใช้งาน (ค่าเริ่มต้น: ทั้งหมด)
#bluez5.codecs = [ sbc sbc_xq aac ldac aptx aptx_hd aptx_ll aptx_ll_duplex faststream faststream_duplex ]
# แบ็กเอนด์ HFP/HSP (ค่าเริ่มต้น: เนทีฟ)
# ค่าที่ใช้ได้: any, none, hsphfpd, ofono, native
#bluez5.hfphsp-backend = เนทีฟ
# คุณสมบัติสำหรับการกำหนดค่าตัวแปลงสัญญาณ A2DP
#bluez5.default.rate = 48000
#bluez5.default.channels = 2
# ลงทะเบียนเครื่องเล่น AVRCP จำลอง ซึ่งจำเป็นสำหรับฟังก์ชันระดับเสียง AVRCP
# ปิดการใช้งานหากคุณใช้งาน mpris-proxy หรือเทียบเท่า
#bluez5.dummy-avrcp-player = จริง
}
กฎ = [
# อาร์เรย์ของการจับคู่ / การดำเนินการเพื่อประเมิน
{
# กฎสำหรับการจับคู่อุปกรณ์หรือโหนด มันเป็นอาร์เรย์ของ
คุณสมบัติ # ที่ทุกคนต้องตรงกับ regexp หากข้อใดข้อหนึ่ง
# จับคู่งาน การดำเนินการจะดำเนินการกับวัตถุ
การแข่งขัน = [
{
#ตรงกับการ์ดทั้งหมด
device.name = "~bluez_card.*"
}
]
การกระทำ = {
# การดำเนินการสามารถอัปเดตคุณสมบัติในวัตถุที่ตรงกัน
อุปกรณ์ปรับปรุง = {
# โปรไฟล์อุปกรณ์เชื่อมต่ออัตโนมัติเมื่อเริ่มต้นหรือเมื่อบางส่วนเท่านั้น
# โปรไฟล์เชื่อมต่อแล้ว ปิดใช้งานโดยค่าเริ่มต้นหากคุณสมบัติ
#ไม่ได้ระบุ.
#bluez5.เชื่อมต่ออัตโนมัติ = [
#hfp_hf
#hsp_hs
#a2dp_sink
#hfp_ag
#hsp_ag
#a2dp_source
#]
bluez5.auto-connect = [ hfp_hf hsp_hs a2dp_sink ]
# การควบคุมระดับเสียงของฮาร์ดแวร์ (ค่าเริ่มต้น: ทั้งหมด)
#bluez5.hw-ปริมาณ = [
#hfp_hf
#hsp_hs
#a2dp_sink
#hfp_ag
#hsp_ag
#a2dp_source
#]
# คุณภาพการเข้ารหัส LDAC
# ค่าที่ใช้ได้: อัตโนมัติ (Adaptive Bitrate, ค่าเริ่มต้น)
# hq (คุณภาพสูง 990/909kbps)
# sq (คุณภาพมาตรฐาน 660/606kbps)
# mq (คุณภาพการใช้งานมือถือ 330/303kbps)
#bluez5.a2dp.ldac.quality = อัตโนมัติ
# โหมดบิตเรตตัวแปร AAC
# ค่าที่ใช้ได้: 0 (cbr, ค่าเริ่มต้น), 1-5 (ระดับคุณภาพ)
#bluez5.a2dp.aac.bitratemode = 0
# เชื่อมต่อโปรไฟล์ก่อน
# ค่าที่ใช้ได้: a2dp-sink (ค่าเริ่มต้น), เฮดยูนิตเฮดยูนิต
#bluez5.profile = a2dp-sink
# A2DP <-> การสลับโปรไฟล์ HFP อัตโนมัติ (เมื่ออุปกรณ์เป็นเอาต์พุตเริ่มต้น)
# ค่าที่ใช้ได้: เท็จ บทบาท (ค่าเริ่มต้น) จริง
# 'บทบาท' จะเปลี่ยนโปรไฟล์หากแอปพลิเคชันบันทึก
# ระบุการสื่อสาร (หรือ "โทรศัพท์" ใน PA) เป็นบทบาทสตรีม
bluez5.autoswitch-profile = จริง
}
}
}
{
การแข่งขัน = [
{
#จับคู่แหล่งที่มาทั้งหมด
node.name = "~bluez_input.*"
}
{
#จับคู่อ่างล้างจานทั้งหมด
node.name = "~bluez_output.*"
}
]
การกระทำ = {
อุปกรณ์ปรับปรุง = {
#node.nick = "โหนดของฉัน"
#node.nick = null
#priority.driver = 100
#priority.session = 100
node.pause-on-idle = เท็จ
#resample.quality = 4
#channelmix.normalize = เท็จ
#channelmix.mix-lfe = เท็จ
#session.suspend-timeout-seconds = 5 # 0 ปิดใช้งานการระงับ
#monitor.channel-volumes = เท็จ
# บทบาทต้นทาง A2DP "อินพุต" หรือ "การเล่น"
# ค่าเริ่มต้นคือ "เล่น" เล่นสตรีมไปยังลำโพง
# ตั้งค่าเป็น "อินพุต" เพื่อใช้เป็นอินพุตสำหรับแอพ
#bluez5.a2dp-แหล่งที่มาของบทบาท = อินพุต
}
}
}
]
ปรับปรุง ดูเหมือนว่าเหตุผลคือเวอร์ชัน bluez Ubuntu 20.04 มี bluez5.53 ในขณะที่ Ubuntu 18.04 เวอร์ชันล่าสุดคือ bluez5.48
ฉันพยายามค้นหา PPA พบเพียงหนึ่งรายการ (ppa:bluetooth/bluez) ซึ่งมีเวอร์ชัน 5.50 แต่น่าเสียดายที่มันไม่มีอะไรเปลี่ยนแปลง
มีวิธีใดที่ดีในการอัปเกรดเวอร์ชัน bluez ใน Ubuntu 18.04 เป็นเวอร์ชันล่าสุด รวบรวมด้วยตนเองเท่านั้น?