Profil Audio Bluetooth A2DP mendukung banyak codec. Semua perangkat harus mendukung SBC (codec subband), kemudian mereka dapat mendukung "codec opsional" tambahan seperti MP3 dan AAC, atau codec "non-A2DP" seperti apt-X.
Tentu saja codec ini tidak benar-benar dapat digunakan jika penerima tidak juga mendukungnya, dalam hal ini kedua perangkat kembali ke SBC.
- Bagaimana cara mengetahui codec mana yang didukung oleh hardware / ROM saya?
- Bagaimana cara mengetahui codec yang saat ini digunakan? (Mungkin ini tergantung pada trek, juga, jika itu melewati file MP3 / AAC secara langsung tanpa pengkodean ulang, misalnya)
bluetooth
audio
a2dp
bluetooth-audio
endolit
sumber
sumber
Jawaban:
Pada ponsel Cyanogen 10.1 saya (AOSP 4.2.2), dimungkinkan untuk memungkinkan penangkapan lalu lintas bluetooth. Anda kemudian dapat memuat tangkapan ini ke Wireshark dan melihat fase negosiasi untuk menentukan codec mana yang didukung oleh perangkat output audio yang dipasangkan. Tidak yakin OS apa yang mendukung ini: ketika saya pertama kali menemukan metode ini, ia mengklaim hanya mendukung dari 4.4 dan seterusnya, tetapi jelas tidak demikian halnya dengan CM pada Doubleshot. :-)
Dengan asumsi Anda memiliki pengaturan yang diperlukan (di-root ~ 4.2.2 atau yang lebih baru), ini adalah langkah-langkahnya:
Anda juga dapat menyejajarkan stempel waktu pengambilan dengan stempel waktu log CatLog untuk mencari entri log yang sugestif. Saya menemukan pasangan dan secara cerdik lupa untuk memasukkannya ke dalam catatan yang menjadi dasar tulisan ini.
Setelah saya memiliki lebih banyak waktu, saya berharap untuk mengurangi set langkah yang agak panjang ke aplikasi, tetapi tidak yakin apakah itu mungkin dan tidak akan memiliki waktu untuk sementara waktu. Sementara itu, saran untuk meningkatkan proses di atas dipersilahkan.
sumber
Discover
mengembalikan tiga audio sink. TanggapanGetCapabilities
untukACP SEID [2 - Audio Sink]
termasukService: Media Codec - Audio MPEG-1,2 Audio
yang telahMP3: True
. Saya telah mengunggah file log yang diambil ke github .Melihat sumbernya, setidaknya ada 4 codec: SBC (wajib), MP3 (MPEG12), AAC (MPEG24) dan ATRAC Sony.
Perangkat lunak yang mendasarinya adalah tumpukan linux "bluez". Ini mendukung SBC dan memiliki kemampuan MP3 yang terbatas.
Changelog untuk v3.25 (2009?) Berbunyi: "Tambahkan dukungan terbatas untuk codec MPEG12 / MP3".
Lihat juga pengumuman v3.25 . Dukungan MP3 tampaknya bergantung pada gstreamer yang tidak tersedia di Android, jadi saya kira SBC adalah satu-satunya pilihan A2DP untuk boot.
PS: Sebagian besar perangkat A2DP tampaknya kurang mendukung untuk MP3 / AAC karena masalah paten / lisensi (termasuk Linux).
sumber
Dengan perangkat Nexus 4 (5.0.1) atau Nexus 7 (2012) (4.4.4) dimungkinkan untuk menggunakan mode pengembang untuk mendapatkan btsnoop_hci.log. "Aktifkan log pengintai Bluetooth HCI". Perangkat tidak perlu di-root. Tampaknya kedua perangkat tidak menawarkan aptx. Saya mengujinya dengan Moto Stream (tanpa aptx) dan Philips AEA2500 (dengan aptx).
sumber
[Kredit untuk jawaban ini sebagian besar jatuh ke ewedel, yang mengklarifikasi bahwa jawabannya ada di file btsnoop_hci.log, menggunakan Wireshark; dan prittstift69, untuk berbagi cara mudah membuat file log ini.]
Ini adalah tutorial yang ramah bagi pemula, langkah-demi-langkah, meringkas jawaban yang sudah diberikan, dengan beberapa interpretasi hasil dari saya.
Seperti yang disebutkan prittstift69 dan lainnya, Anda dapat "Mengaktifkan log pengintai Bluetooth HCI" di bawah opsi Pengembang. Tidak perlu mengikuti pendekatan yang lebih rumit yang disarankan oleh ewedel.
Mulailah dengan mematikan Bluetooth pada perangkat android (saya akan menyebutnya 'telepon').
Nyalakan log pengintai Bluetooth HCI di bawah Opsi Pengembang.
Nyalakan Bluetooth di telepon dan hubungkan ke penerima Bluetooth (saya akan menyebutnya 'penerima'). Langkah ini mengasumsikan bahwa penerima sebelumnya telah dipasangkan dengan telepon.
Putar musik di ponsel Anda (idealnya file WAV atau FLAC yang tidak terkompresi). Hanya sepuluh detik yang Anda butuhkan. (Mungkin bahkan kurang)
Matikan Bluetooth di telepon.
Matikan log pengintai Bluetooth HCI
Transfer file btsnoop_hci.log (saya menemukannya di / sdcard / Android / Data /) ke komputer Anda. Jalankan wireshark di komputer Anda dan buka file btsnoop_hci.log
Filter untuk "btavdtp" (tanpa tanda kutip) Cari pesan dari telepon ke penerima "Sent Command - SetConfiguration ...." Ini adalah pesan yang dikirim oleh telepon ke penerima dengan konfigurasi akhir yang akan digunakan untuk audio ini. setelah handshaking selesai. Teks di bidang Info akan memberi tahu Anda apa konfigurasi finalnya.
[SBC] Jika itu SBC, Anda mungkin ingin tahu apa itu bitpool. Untuk melakukan ini, hapus Filter untuk btavdtp dan cari pesan dengan Protokol SBC dan klik. Di bawah ini, di bagian detail, perluas informasi Bluetooth SBC Codec. Kemudian perluas (atau semua) data Frame. Di sana, itu harus dengan jelas menunjukkan Bitpool yang digunakan oleh Frame itu. Jika 35, ada kemungkinan besar bahwa tingkat sampel Anda adalah 44,1 kHz, Anda menggunakan Stereo Bersama, dan menggunakan profil audio SBC Kualitas Menengah ( http://soundexpert.org/news/-/blogs/bluetooth-audio -quality-a2dp ). Bitrate untuk audio terkompresi adalah 229 kbits / detik SBC, yang mendapat skor 4,68 dalam pengujian Sound Expert ( http://soundexpert.org/encoders-224-kbps ) yang sebanding dengan mp3 sekitar 110-130 kbits / detik.
[APT-X] Jika APT-X, maka telepon dan penerima Anda mendukung APT-X, dan itulah yang digunakannya. Dengan asumsi 16-bit, 44.1kHz, codec berjalan pada 352kbits / s.
sumber