Știu că Ubuntu (PulseAudio) are probleme bine-cunoscute cu căștile Bluetooth și de ceva timp m-am chinuit să rezolv asta.
După diferite încercări Aceasta m-a ajutat și totul pare să funcționeze. Am reușit chiar să fac ca profilurile de comutare automată să funcționeze când folosesc un microfon.
Dar folosesc două sisteme Ubuntu (18.04 și 20.04) și codecurile disponibile diferă pentru aceleași căști pe ambele sisteme. Chiar dacă am verificat toate configurațiile, pachetele instalate, jurnalele etc., totul arată exact la fel.
Pe 20.04 am AAC codec în mod implicit și mSBC atunci când utilizați a microfon ceea ce este frumos.
Dar pe 18.04 am SBC codec în mod implicit și CVSD atunci când utilizați a microfon care este mai rau.
Toate profilurile disponibile pe 18.04:
- Unitate principală pentru căști (HSP/HPF, codec CVSD)
- Redare de înaltă fidelitate (A2DP Sink)
- Redare de înaltă fidelitate (A2DP Sink, codec SBC)
Toate profilurile disponibile pe 20.04:
- Unitate principală pentru căști (HSP/HPF, codec mSBC)
- Redare de înaltă fidelitate (A2DP Sink)
- Redare de înaltă fidelitate (A2DP Sink, codec SBC-XQ)
- Redare de înaltă fidelitate (A2DP Sink, codec SBC)
- Redare de înaltă fidelitate (A2DP Sink, codec AAC)
Cum să aduceți aceleași codecuri la 18.04 pentru a îmbunătăți calitatea?
/etc/pipewire/media-session.d/bluez-monitor.conf (la fel pentru ambele sisteme, aproape implicit dar bluez5.autoswitch-profil setat la adevărat):
# Fișierul de configurare a monitorului Bluez pentru versiunea PipeWire 0.4.1 #
#
# Copiați și editați acest fișier în /etc/pipewire/media-session.d/
# pentru modificări la nivel de sistem sau în
# ~/.config/pipewire/media-session.d/ pentru modificări locale.
proprietăți = {
# Aceste caracteristici nu funcționează pe toate căștile, așa că sunt activate
# implicit bazat pe baza de date hardware. Pot fi, de asemenea
# pornire/oprire forțată pentru toate dispozitivele de următoarele opțiuni:
#bluez5.enable-sbc-xq = adevărat
#bluez5.enable-msbc = adevărat
#bluez5.enable-hw-volume = adevărat
#bluez5.enable-faststream = adevărat
# Consultați bluez-hardware.conf pentru baza de date hardware.
# Roluri activate pentru căști (implicit: [ hsp_hs hfp_ag ]), aceasta
# proprietatea se aplică numai backend-ului nativ.Momentan niste casti
# (Sony WH-1000XM3) nu funcționează atât cu hsp_ag, cât și cu hfp_ag
# activat, dezactivați fie hsp_ag, fie hfp_ag pentru a o rezolva.
#
# Roluri suportate pentru căști: hsp_hs (HSP Headset),
# hsp_ag (HSP Audio Gateway),
# hfp_hf (HFP hands-free),
# hfp_ag (HFP Audio Gateway)
#bluez5.headset-roles = [ hsp_hs hsp_ag hfp_hf hfp_ag ]
# Codecuri A2DP activate (implicit: toate).
#bluez5.codecs = [ sbc sbc_xq aac ldac aptx aptx_hd aptx_ll aptx_ll_duplex faststream faststream_duplex ]
# Backend HFP/HSP (implicit: nativ).
# Valori disponibile: any, none, hsphfpd, ofono, native
#bluez5.hfphsp-backend = nativ
# Proprietăți pentru configurația codecului A2DP
#bluez5.default.rate = 48000
#bluez5.default.channels = 2
# Înregistrați playerul AVRCP fals, necesar pentru funcția de volum AVRCP.
# Dezactivați dacă rulați mpris-proxy sau echivalent.
#bluez5.dummy-avrcp-player = adevărat
}
reguli = [
# O serie de potriviri/acțiuni de evaluat.
{
# Reguli pentru potrivirea unui dispozitiv sau nod. Este o serie de
# proprietăți care trebuie să se potrivească cu expresia regulată. Dacă oricare dintre
# se potrivește cu lucrul, acțiunile sunt executate pentru obiect.
potriviri = [
{
# Aceasta se potrivește cu toate cărțile.
device.name = "~card_bluez.*"
}
]
acțiuni = {
# Acțiunile pot actualiza proprietățile obiectului potrivit.
update-props = {
# Conectați automat profilurile dispozitivului la pornire sau când sunt doar parțiale
S-au conectat # profiluri. Dezactivat implicit dacă proprietatea
# nu este specificat.
#bluez5.auto-connect = [
# hfp_hf
# hsp_hs
# a2dp_sink
# hfp_ag
# hsp_ag
# a2dp_source
#]
bluez5.auto-connect = [ hfp_hf hsp_hs a2dp_sink ]
# Controlul volumului hardware (implicit: toate)
#bluez5.hw-volume = [
# hfp_hf
# hsp_hs
# a2dp_sink
# hfp_ag
# hsp_ag
# a2dp_source
#]
# Calitate codificare LDAC
# Valori disponibile: automat (Adaptive Bitrate, implicit)
# hq (calitate înaltă, 990/909 kbps)
# sq (calitate standard, 660/606 kbps)
# mq (Calitate utilizare mobilă, 330/303 kbps)
#bluez5.a2dp.ldac.quality = auto
# Modul de rată de biți variabilă AAC
# Valori disponibile: 0 (cbr, implicit), 1-5 (nivel de calitate)
#bluez5.a2dp.aac.bitratemode = 0
# Profilul conectat primul
# Valori disponibile: a2dp-sink (implicit), headset-head-unit
#bluez5.profile = a2dp-sink
# Comutare automată a profilului A2DP <-> HFP (când dispozitivul este ieșirea implicită)
# Valori disponibile: false, rol (implicit), adevărat
# „rol” va schimba profilul dacă aplicația de înregistrare
# specifică Comunicarea (sau „telefon” în PA) ca rol de flux.
bluez5.autoswitch-profile = adevărat
}
}
}
{
potriviri = [
{
# Se potrivește cu toate sursele.
node.name = "~bluez_input.*"
}
{
# Se potrivește cu toate chiuvetele.
node.name = "~bluez_output.*"
}
]
acțiuni = {
update-props = {
#node.nick = „Nodul meu”
#node.nick = nul
#priority.driver = 100
#priority.session = 100
node.pause-on-idle = fals
#resample.quality = 4
#channelmix.normalize = fals
#channelmix.mix-lfe = fals
#session.suspend-timeout-seconds = 5 # 0 dezactivează suspendarea
#monitor.channel-volumes = false
# Rol sursă A2DP, „intrare” sau „redare”
# Setarea implicită la „redare”, redarea fluxului către difuzoare
# Setați la „input” pentru a fi utilizat ca intrare pentru aplicații
#bluez5.a2dp-source-role = intrare
}
}
}
]
upd. Se pare că motivul este versiunea bluez. Ubuntu 20.04 are bluez5.53, în timp ce cea mai recentă versiune Ubuntu 18.04 este bluez5.48.
Am încercat să caut PPA-uri, am găsit doar unul (ppa:bluetooth/bluez) care oferă versiunea 5.50. Dar, din păcate, nu schimbă nimic.
Vreo modalitate bună de a actualiza versiunea bluez în Ubuntu 18.04 la cea mai recentă? Doar compilare manuală?