Tôi biết rằng Ubuntu (PulseAudio) có các sự cố nổi tiếng với Tai nghe Bluetooth và trong một thời gian, tôi đã phải vật lộn để khắc phục sự cố này.
Sau những nỗ lực khác nhau cái này đã giúp tôi và mọi thứ dường như đang hoạt động. Tôi thậm chí còn quản lý để làm cho các cấu hình tự động chuyển đổi hoạt động khi tôi sử dụng micrô.
Nhưng tôi sử dụng hai hệ thống Ubuntu (18.04 và 20.04) và các codec khả dụng khác nhau đối với cùng một tai nghe trên cả hai hệ thống. Mặc dù tôi đã kiểm tra tất cả các cấu hình, gói đã cài đặt, nhật ký, v.v. nhưng mọi thứ trông giống hệt nhau.
Vào ngày 20.04 tôi có AAC giải mã theo mặc định và mSBC khi sử dụng một cái mic cờ rô cái gì là tốt.
Nhưng vào ngày 18.04 tôi có SBC giải mã theo mặc định và CVSD khi sử dụng một cái mic cờ rô điều gì là tệ nhất.
Tất cả các hồ sơ có sẵn vào ngày 18.04:
- Bộ phận Tai nghe (HSP/HPF, codec CVSD)
- Phát lại độ trung thực cao (A2DP chìm)
- Phát lại độ trung thực cao (A2DP Sink, codec SBC)
Tất cả các hồ sơ có sẵn vào ngày 20.04:
- Bộ phận Tai nghe (HSP/HPF, codec mSBC)
- Phát lại độ trung thực cao (A2DP chìm)
- Phát lại độ trung thực cao (A2DP Sink, codec SBC-XQ)
- Phát lại độ trung thực cao (A2DP Sink, codec SBC)
- Phát lại độ trung thực cao (A2DP Sink, codec AAC)
Làm cách nào để đưa các codec tương tự lên 18.04 để chất lượng tốt hơn?
/etc/pipewire/media-session.d/bluez-monitor.conf (giống nhau cho cả hai hệ thống, mặc định khá nhiều nhưng bluez5.autoswitch-profile đặt thành đúng):
# Tệp cấu hình màn hình Bluez cho phiên bản PipeWire 0.4.1 #
#
# Sao chép và chỉnh sửa tệp này trong /etc/pipewire/media-session.d/
# cho các thay đổi trên toàn hệ thống hoặc trong
# ~/.config/pipewire/media-session.d/ cho các thay đổi cục bộ.
thuộc tính = {
# Các tính năng này không hoạt động trên tất cả các tai nghe, vì vậy chúng được bật
# theo mặc định dựa trên cơ sở dữ liệu phần cứng. Họ cũng có thể được
# bắt buộc bật/tắt cho tất cả các thiết bị bằng các tùy chọn sau:
#bluez5.enable-sbc-xq = true
#bluez5.enable-msbc = true
#bluez5.enable-hw-volume = true
#bluez5.enable-faststream = true
# Xem bluez-hardware.conf để biết cơ sở dữ liệu phần cứng.
# Đã bật vai trò tai nghe (mặc định: [ hsp_hs hfp_ag ]), cái này
thuộc tính # chỉ áp dụng cho chương trình phụ trợ gốc.Hiện nay một số tai nghe
# (Sony WH-1000XM3) không hoạt động với cả hsp_ag và hfp_ag
# đã bật, hãy tắt hsp_ag hoặc hfp_ag để khắc phục.
#
# Vai trò tai nghe được hỗ trợ: hsp_hs (Tai nghe HSP),
# hsp_ag (Cổng âm thanh HSP),
# hfp_hf (Rảnh tay HFP),
# hfp_ag (Cổng âm thanh HFP)
#bluez5.headset-roles = [ hsp_hs hsp_ag hfp_hf hfp_ag ]
# Đã bật codec A2DP (mặc định: tất cả).
#bluez5.codecs = [ sbc sbc_xq aac ldac aptx aptx_hd aptx_ll aptx_ll_duplex luồng nhanh faststream_duplex ]
# Phần phụ trợ HFP/HSP (mặc định: bản địa).
# Các giá trị khả dụng: bất kỳ, không có gì, hsphfpd, ofono, gốc
#bluez5.hfphsp-backend = gốc
# Thuộc tính cho cấu hình codec A2DP
#bluez5.default.rate = 48000
#bluez5.default.channels = 2
# Đăng ký trình phát AVRCP giả, cần thiết cho chức năng âm lượng AVRCP.
# Tắt nếu bạn đang chạy mpris-proxy hoặc tương đương.
#bluez5.dummy-avrcp-player = true
}
quy tắc = [
# Một loạt các trận đấu/hành động để đánh giá.
{
# Quy tắc khớp thiết bị hoặc nút. Nó là một mảng
# thuộc tính mà tất cả cần khớp với biểu thức chính quy. Nếu bất kỳ của
# khớp hoạt động, các hành động được thực hiện cho đối tượng.
phù hợp = [
{
# Điều này phù hợp với tất cả các thẻ.
device.name = "~bluez_card.*"
}
]
hành động = {
# Hành động có thể cập nhật thuộc tính trên đối tượng phù hợp.
cập nhật đạo cụ = {
# Tự động kết nối cấu hình thiết bị khi khởi động hoặc khi chỉ một phần
# hồ sơ đã được kết nối. Bị tắt theo mặc định nếu thuộc tính
# không được chỉ định.
#bluez5.tự động kết nối = [
#hfp_hf
#hsp_hs
# a2dp_sink
#hfp_ag
# hsp_ag
# a2dp_source
#]
bluez5.auto-connect = [ hfp_hf hsp_hs a2dp_sink ]
# Điều khiển âm lượng phần cứng (mặc định: tất cả)
#bluez5.hw-volume = [
#hfp_hf
#hsp_hs
# a2dp_sink
#hfp_ag
# hsp_ag
# a2dp_source
#]
# Chất lượng mã hóa LDAC
# Các giá trị khả dụng: tự động (Tốc độ bit thích ứng, mặc định)
# hq (Chất lượng cao, 990/909kbps)
# sq (Chất lượng chuẩn, 660/606kbps)
# mq (Chất lượng sử dụng di động, 330/303kbps)
#bluez5.a2dp.ldac.quality = tự động
# Chế độ bitrate biến AAC
# Giá trị khả dụng: 0 (cbr, mặc định), 1-5 (mức chất lượng)
#bluez5.a2dp.aac.bitratemode = 0
# Hồ sơ được kết nối đầu tiên
# Các giá trị khả dụng: a2dp-sink (mặc định), bộ tai nghe-đầu
#bluez5.profile = a2dp-sink
# A2DP <-> Tự động chuyển cấu hình HFP (khi thiết bị là đầu ra mặc định)
# Giá trị khả dụng: sai, vai trò (mặc định), đúng
# 'role' sẽ chuyển đổi cấu hình nếu ứng dụng ghi âm
# chỉ định Giao tiếp (hoặc "điện thoại" trong PA) làm vai trò phát trực tiếp.
bluez5.autoswitch-profile = true
}
}
}
{
phù hợp = [
{
# Phù hợp với tất cả các nguồn.
node.name = "~bluez_input.*"
}
{
# Phù hợp với tất cả các bồn rửa.
node.name = "~bluez_output.*"
}
]
hành động = {
cập nhật đạo cụ = {
#node.nick = "Nút của tôi"
#node.nick = null
#priority.driver = 100
#priority.session = 100
node.pause-on-idle = false
#resample.chất lượng = 4
#channelmix.normalize = false
#channelmix.mix-lfe = false
#session.suspend-timeout-seconds = 5 # 0 vô hiệu hóa tạm ngưng
#monitor.channel-volume = false
# Vai trò nguồn A2DP, "đầu vào" hoặc "phát lại"
# Mặc định là "phát lại", phát trực tiếp tới loa
# Đặt thành "đầu vào" để sử dụng làm đầu vào cho ứng dụng
#bluez5.a2dp-source-role = đầu vào
}
}
}
]
cập nhật Có vẻ như lý do là phiên bản bluez. Ubuntu 20.04 có bluez5.53 trong khi phiên bản mới nhất của Ubuntu 18.04 là bluez5.48.
Tôi đã thử tìm PPA, chỉ tìm thấy một (ppa:bluetooth/bluez) cung cấp phiên bản 5.50. Nhưng thật không may, nó không thay đổi gì cả.
Có cách nào hay để nâng cấp phiên bản bluez trong Ubuntu 18.04 lên phiên bản mới nhất không? Chỉ biên dịch thủ công?