หลังจากอัปเดตเป็น 16.04 โหมดบลูทู ธ เสียง A2DP หยุดทำงาน


29

ฉันมีบลูทู ธ รับสัญญาณเสียงที่ดีเชื่อมต่อกับไฮไฟสเตอริโอของฉันและฉันเคยสามารถเชื่อมต่อใน 14.04 เป็นอ่างล้างจาน A2DP ที่มีคุณภาพดี

หลังจากอัปเกรดเป็น 16.04 อุปกรณ์จะเชื่อมต่อเป็นชุดหูฟังเท่านั้นและเมื่อพยายามสลับในโหมด A2DP ฉันมีข้อผิดพลาดนี้ใน syslog ของฉัน:

May 21 11:35:50 RRyS pulseaudio[6159]: [pulseaudio] module-bluez5-device.c: Refused to switch profile to a2dp_sink: Not connected

และคุณภาพของเสียงนั้นไม่สอดคล้องกัน ฉันจะแก้ไขได้อย่างไร


หวังว่านี่จะเป็นประโยชน์กับใครบางคน ฉันเสียเวลาขุดนาน 3 ชั่วโมง ... ฉันรักการอัพเกรด! ;-)
Rmano

คำตอบ:


39

สิ่งที่ดีสำหรับฉันคือการเชื่อมต่ออุปกรณ์บลูทู ธ สลับไปที่โหมด HSP / HFP ตัดการเชื่อมต่อเชื่อมต่อใหม่แล้วเปลี่ยนเป็นโหมด A2DP


4
กันที่นี่ อย่างไรก็ตามมันไม่ควรจะเป็นแบบนี้และมันเคยทำงานได้อย่างถูกต้องในเวอร์ชั่นก่อนหน้า
eldad-a

สำหรับฉันเช่นกันที่ทำงาน แต่ความเจ็บปวดครั้งใหญ่ใน a ** สำหรับบางสิ่งที่ทำงานได้ (เกือบ) ไม่มีที่ติใน 15.10 และก่อนหน้านี้
Dolanor

โอ้เชื่อฉันฉันเห็นด้วย มันปวดมาก distro เดียวที่ฉันพบที่จัดการ BT อย่างถูกต้องในปัจจุบันคือ Solus OS
rmfought

2
นี่มันแปลกมาก แต่ใช้งานได้!
ArcaneDominion

1
อึศักดิ์สิทธิ์ ไม่ได้คาดหวังว่าสิ่งนี้จะได้ผล แต่ก็เป็นเช่นนั้น
Parth Thakkar

35

มีหลายข้อบกพร่องเปิดเกี่ยวกับเรื่องนี้มีการตรวจสอบเช่นนี้ (เริ่ม 15.05)และหนึ่งอื่น ๆ ค่อนข้างเก่า ; สาเหตุทั่วไปไม่เป็นที่เข้าใจ

ก่อนที่จะเริ่มแก้ไขไฟล์ระบบคุณสามารถตรวจสอบลำโพงบลูทู ธ ที่ไม่มีเสียงใน Ubuntu 16.04 (ดูเหมือนว่าจะเป็นข้อผิดพลาดที่แตกต่างกัน) และบลูทู ธ A2DP ไม่ทำงานบน 16.04 (แก้ไขในข้อคิดเห็นโดยการอัพเกรดเคอร์เนล)

การแก้ไขที่ทำงานสำหรับฉันก็คือขอบคุณต่อไป --- เพื่อใช้ RobertFM ใน LaunchpadและSimFox3 ในฟอรั่ คำแนะนำทั้งหมดต่อไปนี้จะต้องดำเนินการจากรูตเชลล์ ( sudo -i) ดูแลและตรวจสอบสาม

  1. ก่อนอื่นทำการสำรองไฟล์เหล่านี้ (คุณไม่มีทางรู้):

    cp /etc/bluetooth/audio.conf /etc/bluetooth/audio.conf.bak
    cp /etc/pulse/default.pa /etc/pulse/default.pa.bak
    cp /usr/bin/start-pulseaudio-x11 /usr/bin/start-pulseaudio-x11.bak
    
  2. แก้ไข/etc/bluetooth/audio.confและทำให้คล้ายกับสิ่งนี้:

    # Configuration file for the audio service
    # This section contains options which are not specific to any
    # particular interface
    [General]
    Enable=Gateway,Source
    
    # Switch to master role for incoming connections (defaults to true)
    Master=true
    
    # If we want to disable support for specific services
    # Defaults to supporting all implemented services
    #Disable=Gateway,Source,Socket
    Disable=Socket
    
    # SCO routing. Either PCM or HCI (in which case audio is routed to/from ALSA)
    # Defaults to HCI
    #SCORouting=HCI
    
    # Automatically connect both A2DP and HFP/HSP profiles for incoming
    # connections. Some headsets that support both profiles will only connect the
    # other one automatically so the default setting of true is usually a good
    # idea.
    AutoConnect=true
    
    # Headset interface specific options (i.e. options which affect how the audio
    # service interacts with remote headset devices)
    [Headset]
    
    # Set to true to support HFP, false means only HSP is supported
    # Defaults to true
    HFP=true
    
    # Maximum number of connected HSP/HFP devices per adapter. Defaults to 1
    MaxConnected=2
    
    # Set to true to enable use of fast connectable mode (faster page scanning)
    # for HFP when incoming call starts. Default settings are restored after
    # call is answered or rejected. Page scan interval is much shorter and page
    # scan type changed to interlaced. Such allows faster connection initiated
    # by a headset.
    FastConnectable=true
    
    # Just an example of potential config options for the other interfaces
    #[A2DP]
    #SBCSources=1
    #MPEG12Sources=0
    
  3. แก้ไข/etc/pulse/default.paและแสดงความคิดเห็นในบรรทัด

    #load-module module-bluetooth-discover
    

    (คุณจะต้องเพิ่ม#เมื่อเริ่มต้นเท่านั้น)

  4. แก้ไข/usr/bin/start-pulseaudio-x11และเพิ่มบรรทัด/usr/bin/pactl load-module module-bluetooth-discoverหลังจากการโหลดของโมดูลmodule-x11-xsmp; ในทางปฏิบัติคุณควรแก้ไขไฟล์ใกล้ถึงจุดสิ้นสุดเพื่อให้มี stanza like

    if [ x"$SESSION_MANAGER" != x ] ; then
        /usr/bin/pactl load-module module-x11-xsmp "display=$DISPLAY session_manager=$SESSION_MANAGER" > /dev/null
        # add this line here:
        /usr/bin/pactl load-module module-bluetooth-discover
    fi
    
  5. Reboot

    ตอนนี้คุณควรจะสามารถตั้งค่าอุปกรณ์ของคุณเป็น A2DP และเพลิดเพลินกับเพลงคุณภาพสูง:

    การตั้งค่าเสียง

    โปรดสังเกตว่าบางครั้งคุณจำเป็นต้องตัดการเชื่อมต่อและเชื่อมต่ออุปกรณ์ของคุณใหม่เพื่อเปิดใช้งาน A2DP อีกครั้ง:

    อุปกรณ์บลูทู ธ

    ... ใช่มันเป็นแมลง แต่เมื่อมันได้ผล

  6. มีปัญหาหลังจากรีบูตเครื่อง

    หลังจากทั้งหมดนี้บางครั้งเคล็ดลับที่ดูเหมือนว่าจะทำงานเฉพาะหลังจากรีบูตครั้งต่อไป ในกรณีเช่นนี้ลองทำตามคำตอบของ rmfought :

    สิ่งที่ดีสำหรับฉันคือการเชื่อมต่ออุปกรณ์บลูทู ธ สลับไปที่โหมด HSP / HFP ตัดการเชื่อมต่อเชื่อมต่อใหม่แล้วเปลี่ยนเป็นโหมด A2DP

    ... ได้ผลสำหรับฉันด้วย (อีกครั้งบางครั้ง) ฉันต้องยกเลิกการจับคู่ดองเกิลอีกครั้ง

  7. ถ้ามันยังไม่ทำงาน ...

    หากสิ่งนี้ไม่ได้ผลสำหรับคุณคุณสามารถลองใช้ สคริปต์นี้ --- ผู้แต่งกำลังปรับปรุงให้เป็นปัจจุบันอยู่เสมอ


5
audio.conf ไม่มีอยู่ใน Ubuntu 16.04 เฉพาะ main.conf จะใช้งานได้หรือไม่
Joakim Koed

2
@ JoakimKoed --- คุณพูดถูกฉันตรวจสอบแล้ว --- ฉันaudio.conf-removeอาจมีส่วนที่เหลืออยู่จากการอัปเกรด ฉันเพิ่งสร้างมันขึ้นมาอีกครั้งดังนั้นตอนนี้ฉันจึงสงสัยว่าอาจจะเป็นเพียงจุด 3 และ 4 ที่จำเป็น?
Rmano

1
ขั้นตอนที่ 3 & 4 ไม่ได้แก้ไขสำหรับฉันและฉันสร้าง audio.conf ใหม่ตามที่กล่าวไว้ข้างต้นและไม่มีการแก้ไข การลบอุปกรณ์บลูทู ธ และแก้ไขการแก้ไข แต่การทำเช่นนั้นทุกครั้งที่คุณต้องการใช้บลูทู ธ เสียงนั้นไม่สามารถทำได้
โทมัสคาร์ไลเซิล

@ThomasCarlisle ขอโทษที่ได้ยินเช่นนั้น - ที่นี่ใช้งานได้ (ไม่จำเป็นต้องเชื่อมโยงใหม่) หลังจากครั้งแรก จะต้องเป็นสิ่งที่แตกต่าง ...
Rmano

1
ยอดเยี่ยม! มันหลอกลวงกับฉัน! ฉันขอแนะนำให้คุณเพิ่มการอ้างอิงไปยังคำตอบของคุณเนื่องจากทั้งหมดเข้าด้วยกันดูเหมือนจะให้วิธีการแก้ปัญหาการทำงานอย่างเต็มที่ ไชโย!
romanovzky

5

นี่ไม่ได้เป็นทางออกสำหรับผู้ที่ต้องการไมโครโฟน แต่ใช้งานได้กับ Ubuntu 16.04 สำหรับฉัน:

sudo nano /etc/bluetooth/audio.conf

แล้วเพิ่มภายใต้Disable=Headset[General]

[General]
Disable=Headset

และเริ่มบริการบลูทู ธ ใหม่

sudo service bluetooth restart

และเครดิตทั้งหมดกับผู้ชายคนนี้: https://jimshaver.net/2015/03/31/going-a2dp-only-on-linux/


โชคร้ายไม่ได้ผลสำหรับฉัน ไอคอนแท่นวาง Bluetooth ของฉันเป็นสีเทา…อาจเป็นไดรเวอร์ / โมดูลใช่หรือไม่ XPS 13 9350 และ Ubuntu 16.04
Dolanor

@Dolanor ไม่แน่ใจว่าปัญหานี้ยังคงเกิดขึ้นอยู่หรือไม่ แต่ถ้าหากไอคอนแท่นชาร์จเป็นสีเทาแสดงว่ามีอะแดปเตอร์บลูทู ธ ของคุณเป็นซอฟต์บล็อค ลองrfkill unblock bluetoothและอาจจะเท่ากันbluetoothctlแล้วpower on(ใน bluetoothctl-CLI)
FMaz

สิ่งนี้ทำงานได้ในกรณีของฉัน zorinos 12
FDisk

ใน Ubuntu 18 ไม่มี/etc/bluetooth/audio.confไฟล์ ผมเพิ่มDisable=Headsetจะ/etc/bluetooth/main.confเริ่มต้นใหม่บริการเชื่อมต่อหูฟังของฉัน offแต่รายละเอียดของเสียงเป็นค่าเริ่มต้น ไม่แน่ใจว่าใช้งานได้หรือไม่
Dan Dascalescu
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.