Tôi mới dùng Linux và cũng mới với kịch bản Bluetooth. Những gì tôi đã phát hiện ra cho đến nay là như sau:
- Bluez là ngăn xếp BT mặc định.
- BluezTools là một bộ tiện ích bạn có thể sử dụng để dễ dàng tương tác hơn với Bluez
- DBus là giao diện mà Bluez kết nối trong khi tương tác trực tiếp với phần cứng.
- PulseAudio là hệ thống con chịu trách nhiệm sản xuất âm thanh trên hệ thống.
Điều này thật ý nghĩa. Vì vậy, giả sử tôi có một bộ tai nghe BlueTooth, điều tôi mong đợi là (tất cả sau khi ghép nối và tin tưởng), để có thể đưa ra lệnh có thể kết nối trực tiếp với một cấu hình nhất định trên tai nghe BT.
Con đường kỹ thuật tôi có trong đầu sẽ là một cái gì đó như:
- Bật tai nghe.
- Phát hành lệnh BluezTools - chẳng hạn như bt-audio -c
- Đợi thiết bị kết nối với dịch vụ tôi đang theo dõi
- PulseAudio bây giờ sẽ nhận một thiết bị đầu ra mới
- Đưa ra một lệnh khác để thay đổi âm thanh từ âm thanh thành âm thanh đầu ra mới (tai nghe BT).
- Tận hưởng trải nghiệm nghe liền mạch.
Tất cả điều này có vẻ hợp lý, nhưng việc triển khai thực tế không như thế này và tôi đang tìm kiếm TẠI SAO, vì vậy tôi có thể hiểu rõ hơn vấn đề và thử và khắc phục nó.
Đây là những gì thực sự xảy ra:
- Bật tai nghe.
- Phát hành lệnh BluezTools - chẳng hạn như bt-audio -c
- Đợi thiết bị kết nối với dịch vụ tôi đang theo dõi
- PulseAudio bây giờ sẽ nhận một thiết bị đầu ra mới
- Ban hành lệnh PulseAudio để thay đổi cấu hình âm thanh từ chất lượng điện thoại sang độ trung thực cao.
Hãy để tôi mở rộng về điều này một chút. Tai nghe bluetooth cung cấp 2 chế độ chất lượng (điện thoại và độ trung thực cao). Chỉ có 1 là thực sự phù hợp để nghe nhạc.
Tôi hy vọng rằng tai nghe BT hiển thị từng chế độ chất lượng như một dịch vụ, điều này có đúng không? Giả định này có thể sai, nhưng tôi sẽ mong đợi một cái gì đó như
bt-audio -c highFidelityProfile
hoặc là
bt-audio -changeProfile highFidelityProfile
Thay vào đó, có vẻ như Bluez chỉ xử lý kết nối RAW với thiết bị và từ đó bạn cần phát hành: pacmd set-card-profile $ INDEX a2dp
Điều này về cơ bản là sai. Tại sao kiểm soát chất lượng trong hệ thống con âm thanh, do đó yêu cầu triển khai khác cho xung hoặc alsa hoặc bất kỳ hệ thống phụ âm thanh nào khác ngoài đó?
Tôi đang thiếu gì? Tại sao không thể kết nối trực tiếp với một cấu hình nhất định bằng Bluez / BluezTools, v.v.?