A2DP บน PulseAudio - เสียงขาด ๆ หาย ๆ / กระโดดข้าม


13

ฉันได้จับคู่ชุดหูฟังบลูทู ธ กับแล็ปท็อป Ubuntu 12.04 กับชิปบลูทู ธ ไว้ภายใน:

lsusb | บลูทู ธ grep

Bus 003 Device 003: ID 045e:0745 Microsoft Corp. Nano Transceiver v1.0 for Bluetooth

อุปกรณ์ได้รับการจับคู่และด้วยความช่วยเหลือของbluemanฉันได้เชื่อมต่อกับ PulseAudio เป็นอ่างล้างจาน เสียงไม่เจอในโหมด A2DP แต่ชะมัดขาด ๆ หาย ๆ และข้ามไปยังจุดที่ไม่ดีกว่าไม่มีอะไร

ฉันอ่านไปรอบ ๆ และเห็นว่ามีการแก้ไขที่เกี่ยวข้องกับการปรับniceลำดับความสำคัญของเซิร์ฟเวอร์ PulseAudio ตั้งแต่เริ่มต้น PulseAudio จะทำงานแบบต่อผู้ใช้ฉันเพิ่มสิ่งต่อไปนี้ในของฉัน/etc/security/limits.conf:

*       hard    rtpio   0
*       soft    rtpio   0
@audio  hard    rtpio   20
@audio  soft    rtpio   20
pulse   hard    rtpio   20
pulse   soft    rtpio   20

จากนั้นฉันเพิ่มตัวเองในaudioกลุ่มเพื่อให้สามารถกำหนดลำดับความสำคัญสำหรับpulseaudioกระบวนการ ดูเหมือนว่าpulseaudioตอนนี้ทำงานโดยมีความสำคัญ-11:

ps -eo pri, ni, cmd | grep [p] ulse

30 -11 /usr/bin/pulseaudio --start --log-target=syslog

นี่ควรหมายความว่า PulseAudio ทำงานด้วยความสำคัญ -11 ซึ่งดี

อย่างไรก็ตามแม้หลังจากรีสตาร์ทฉันยังคงได้รับเสียงที่ขาด ๆ หาย ๆ

ฉันควรดำเนินการอย่างไร ฉันกำลังพยายามทำให้ชุดหูฟังบลูทู ธ นี้ฉันซื้อใช้งานได้

หมายเหตุ: ฉันได้ลองจับคู่อุปกรณ์นี้กับแท็บเล็ต Android ติดกับแล็ปท็อปของฉันและใช้งานได้ดีดังนั้นจึงไม่ใช่ความแออัดแบบไร้สายดูเหมือนว่าจะมีความสัมพันธ์โดยตรงกับ Linux อย่างใด

คำตอบ:


20

แก้ไขไฟล์กำหนดค่า ALSA

sudo gedit /etc/modprobe.d/alsa-base.conf

เพิ่มบรรทัด

options snd-hda-intel model=generic

ที่ส่วนท้ายของไฟล์และรีบูต


1
สิ่งนี้ทำงานได้ดีสำหรับลำโพง 35 II ของ BOSE ที่เงียบสงบ (Ubuntu 18.04)
Victor Parmar

การแก้ไขที่เรียบง่ายนี้ทำงานได้ดีสำหรับฉันหลังจากการค้นหาจำนวนมาก หูฟังอูบุนตู 18.10, บลูทู ธ (promate trueBlue)
Francesco Napolitano

สร้างบัญชีเพื่อระบุว่าสิ่งนี้สามารถแก้ไขปัญหาของฉันได้ด้วย (QC35II) คำอธิบายจะเป็นประโยชน์ แต่ไม่ว่าด้วยวิธีใดคุณก็เป็นผู้ช่วยชีวิต
Sam

ฉันเห็นการเปลี่ยนแปลงที่น้อยลงประมาณ 95% ด้วยการแก้ไขนี้ด้วย QC35II ในการทดสอบ Debian 9, เคอร์เนล 4.18.20-2
Andrey Portnoy

3
ในตอนท้ายหลังจากแก้ไขไฟล์นี้คุณไม่จำเป็นต้องรีสตาร์ทเพียงเรียกใช้sudo service bluetooth restart
Dinuka Salwathura

12

ที่ไม่มีคำตอบอื่น ๆ ทำงานในระบบของฉัน (Ubuntu 18.04 LTS บน 2012 MacBook Air) ผมพบว่าวิธีการแก้ปัญหาของฉันในubuntuusers เยอรมันวิกิพีเดีย สรุปภาษาอังกฤษของคำแนะนำภาษาเยอรมัน:

เอาต์พุตขาด ๆ หาย ๆ อาจเกิดจากการนำ A2DP มาใช้และวิธีที่บัฟเฟอร์เสียงก่อนที่จะเข้ารหัส สำหรับฉันการเปลี่ยนขนาดของบัฟเฟอร์นี้แก้ปัญหาเสียงขาด ๆ หาย ๆ คุณต้องดำเนินการสามขั้นตอน:

  1. ค้นหาข้อมูลที่จำเป็นเกี่ยวกับอุปกรณ์บลูทู ธ (ขณะที่เชื่อมต่ออยู่!)

    pactl list | grep -Pzo '.*bluez_card(.*\n)*'
    

    ผลลัพธ์ควรมีลักษณะดังนี้

    Name: bluez_card.28_11_A5_84_B6_F9
    Driver: module-bluez5-device.c
    ...
    Ports:
    speaker-output: Speaker (priority: 0, latency offset: 0 usec, available)
        Part of profile(s): a2dp_sink, headset_head_unit
    speaker-input: Bluetooth Input (priority: 0, latency offset: 0 usec, not available)
        Part of profile(s): headset_head_unit
    

    เราเห็นว่าบัฟเฟอร์มีความล่าช้าในปัจจุบัน 0 ในขั้นตอนถัดไปคุณจะต้องNAMEและPORTผลลัพธ์ของคุณ ในตัวอย่างนี้สิ่งเหล่านี้คือbluez_card.28_11_A5_84_B6_F9และspeaker-outputตามลำดับ

  2. ตั้งค่าขนาดบัฟเฟอร์ (เวลาแฝง) ของการ์ดเป็นค่าที่เหมาะสมด้วยรูปแบบคำสั่งนี้:

    pactl set-port-latency-offset <NAME> <PORT> <BUFFER_SIZE_MICROSECONDS> 
    

    หน่วยเวลาแฝงของคำสั่งต่อไปนี้คือ microseconds ดังนั้นฉันจึงใช้บัฟเฟอร์ 50 มิลลิวินาทีสำหรับคำสั่งของฉันที่นี่:

    pactl set-port-latency-offset bluez_card.28_11_A5_84_B6_F9 speaker-output 50000 
    
  3. เริ่มบริการบลูทู ธ ใหม่เพื่อใช้การเปลี่ยนแปลงของคุณ

    sudo service bluetooth restart
    

เนื่องจากปกติแล้วจะไม่มีเอกสารเกี่ยวกับเรื่องนี้คุณอาจต้องทำการทดสอบด้วยค่าบัฟเฟอร์ที่สูงกว่าหรือต่ำกว่า


1
คุณสมควรได้รับการโหวตมากขึ้น! ฉันต้องการพูดถึงว่า 45000 ใช้งานได้ดีสำหรับ Macbook Air (ต้นปี 2014) และ Bose QC35
Ole Aldric

ถูกต้องแล้วขอบคุณ
jhtong

ยังพูดติดอ่างสำหรับฉัน :( (Manjaro)
Lucas Bustamante

3

การแก้ไขทำงานได้สำหรับฉันแม้ว่าฉันจะพบว่าฉันต้อง REM บรรทัดก่อนหน้า ดูด้านล่าง:

# Keep snd-usb-audio from beeing loaded as first soundcard  
# options snd-usb-audio index=-2  <-REM this line if it doesn't work at first  
options snd-hda-intel model=generic

3

Chris_128 คำตอบใช้ได้สำหรับฉัน แต่สำหรับมือใหม่ฉันจะเพิ่มรายละเอียดเล็กน้อย

สำหรับ NAME และ PORT สำหรับคำสั่งด้านล่าง:

pactl set-port-latency-offset NAME PORT 50000 

คุณจะได้รับมันหลังจากที่คุณพิมพ์ผลลัพธ์:

pactl list | grep -Pzo '.*bluez_card(.*\n)*'


Name: bluez_card.5C_FB_7C_0D_0F_EE
Driver: module-bluez5-device.c
Owner Module: 28
Properties:
    ...
Profiles:
    headset_head_unit: Headset Head Unit (HSP/HFP) (sinks: 1, sources: 1, priority: 30, available: yes)
    a2dp_sink: High Fidelity Playback (A2DP Sink) (sinks: 1, sources: 0, priority: 40, available: yes)
    off: Off (sinks: 0, sources: 0, priority: 0, available: yes)
Active Profile: a2dp_sink
Ports:
    headset-output: Headset (priority: 0, latency offset: 0 usec, available)
        Part of profile(s): headset_head_unit, a2dp_sink
    headset-input: Headset (priority: 0, latency offset: 0 usec)
        Part of profile(s): headset_head_unit

NAME จะเป็น "bluez_card.5C_FB_7C_0D_0F_EE" และ PORT จะเป็น "headset-output"

ดังนั้นสำหรับกรณีของฉันคำสั่งของฉันคือ

"pactl set-port-latency-offset bluez_card.5C_FB_7C_0D_0F_EE headset-output 50000"

เริ่มบริการบลูทู ธ ของคุณใหม่

sudo service bluetooth restart

1

มีปัญหาเดียวกันกับ Ubuntu 18.04 ที่ทำงานเป็นบูตคู่ใน MacBook Mini พยายามเปลี่ยนการกำหนดค่า ALSA ตามที่ระบุไว้โดย @ConfirmAndCreateThisAccount

แต่มันไม่ทำงาน

ดังนั้นฉันจึงติดตั้ง Blueman โดยใช้คำสั่งด้านล่าง

sudo apt-get install blueman

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


0

คุณสามารถเปิดแถบค้นหา (CTRL-D โดยรวม, Windows-Key ใน Gnome) พิมพ์ใน "Pulse" หรือ "Volume" เปิดเครื่องมือ GUI "Pulseaudio Volume Control" ไอคอนดูเหมือนลูกบิดหรือมาตรวัด

ที่นั่นคุณสามารถเลือกลำโพง Bluetooth ของคุณ คลิกที่ขั้นสูงตั้งค่าความหน่วงเช่นเดียวกับที่เสนอในคำตอบอื่น ๆ 45 ms หรือ 50 ms ดูเหมือนจะใช้ได้สำหรับพวกเขา แต่ฉันไม่พบว่ามีค่าที่ดีสำหรับฉัน

แนบภาพหน้าจอแล้ว ลำโพง Bluetooth ของฉันชื่อ SRS-BTX300 คุณไม่จำเป็นต้องรีสตาร์ทบลูทู ธ หลังจากเปลี่ยนค่าเวลาแฝง

ป้อนคำอธิบายรูปภาพที่นี่

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