Bluetooth Low Energy (LE) Audio
Artikel ini memberikan gambaran umum tentang Bluetooth LE Audio yang diperkenalkan dalam Windows 11 versi 22H2 (KB5026446).
Pengantar
Bluetooth LE Audio memungkinkan streaming unicast atau menyiarkan audio ke perangkat Bluetooth LE melalui transportasi isochronous. Pada versi 5.3 dari spesifikasi inti Bluetooth, tidak ada antarmuka pengontrol host (HCI) yang ditentukan standar untuk platform host untuk mengirim dan menerima data isochronous ke dan dari pengontrol Bluetooth. Dokumen ini mendefinisikan jalur audio khusus vendor Bluetooth Windows (VSAP) untuk memungkinkan platform menggunakan solusi khusus vendor untuk mengaktifkan streaming Bluetooth LE Audio. Antarmuka perangkat lunak VSAP menggunakan ekstensi kelas audio Windows (ACX) dan lebih banyak properti antarmuka yang ditentukan dalam dokumen ini.
Terminologi dan prasyarat
Selain istilah yang ditentukan dalam tabel ini, dokumen ini juga mereferensikan istilah yang ditentukan oleh ekstensi kelas audio Windows.
Istilah | Definisi |
---|---|
Audio LE | Kependek dari Bluetooth LE Audio |
Audio klasik | Streaming audio Bluetooth yang menggunakan profil hands-free (HFP) dan profil distribusi audio tingkat lanjut (A2DP) |
Perangkat Audio | Satu perangkat Bluetooth LE Audio jarak jauh atau sekumpulan perangkat Bluetooth LE Audio yang bersama-sama menyusun satu titik akhir audio dari perspektif Windows. |
BAP | Profil Audio Dasar menentukan bagaimana perangkat dapat mendistribusikan dan mengonsumsi audio menggunakan komunikasi Bluetooth Low Energy (LE). |
TMAP | Profil Audio Telepon dan Media menentukan konfigurasi yang dapat dioperasikan dari layanan dan profil audio tingkat bawah. |
ASCS | Layanan Kontrol Aliran Audio mendefinisikan cara standar bagi perangkat Audio LE Bluetooth untuk mengonfigurasi dan membuat aliran audio unicast. |
PACS | Layanan Kemampuan Audio yang Diterbitkan mendefinisikan cara standar bagi perangkat Bluetooth LE Audio untuk melaporkan kemampuan codec audio yang didukung. |
CIS | Transportasi Connected Isochronous Streams digunakan untuk mengirim dan menerima data audio unicast antara perangkat Bluetooth LE. |
BIS | Transportasi Streaming Isochronous Siaran digunakan untuk transfer data audio tanpa koneksi. |
ACX | Kependekan dari ekstensi kelas audio, yang merupakan model driver yang diperlukan oleh semua driver audio untuk mendukung Bluetooth LE Audio di Windows. |
Sirkuit streaming | Satu atau beberapa objek ACXCIRCUIT yang dibuat oleh Vendor Specific Audio Driver Stack untuk jalur streamingnya. |
Sirkuit profil | Objek ACXCIRCUIT yang dibuat oleh implementasi profil Bluetooth LE Audio di Windows. ACXCIRCUIT ini berfungsi sebagai sirkuit kepala seperti yang didefinisikan dalam spesifikasi ACX dan bukan sirkuit streaming. |
Dokumen ini mengasumsikan keakraban dengan istilah yang ditentukan sebelumnya dan perintah HCI berikut yang ditentukan dalam spesifikasi Bluetooth Core 5.3:
- HCI_Read_Local_Supported_Codecs (v2)
- HCI_Read_Local_Supported_Codec_Capabilities
- HCI_LE_Set_CIG_Parameters
- HCI_LE_Create_CIS
- HCI_Configure_Data_Path
- HCI_LE_Setup_ISO_Data_Path
- HCI_LE_Remove_ISO_Data_Path
- HCI_LE_Remove_CIG
Bluetooth LE Audio VSAP memerlukan driver audio untuk menggunakan kerangka kerja ACX. Mengadopsi ACX untuk Bluetooth LE Audio memberikan beberapa keuntungan, seperti:
- Mendukung model driver audio pilihan untuk Windows ke depannya.
- Menggunakan dukungan asli ACX untuk solusi audio multi tumpukan tanpa memerlukan DDI khusus antar driver.
- Tidak memerlukan driver audio IHV untuk menyampaikan permintaan dari sistem audio ke tumpukan Bluetooth. Sebagai gantinya, ACX dapat mengirim permintaan langsung ke tumpukan Bluetooth melalui sirkuit profil.
Arsitektur
Definisi
Komponen berikut terlibat dalam varian arsitektur VSAP yang berbeda.
Kerangka kerja WINDOWS ACX
Komponen ini memungkinkan dukungan untuk titik akhir audio multi-stack. Untuk Bluetooth LE Audio, komponen perangkat lunak yang menyusun titik akhir audio adalah tumpukan driver audio khusus vendor dan profil Windows Bluetooth LE Audio.
Tumpukan driver audio spesifik vendor
Komponen khusus vendor ini bertanggung jawab untuk mengirim dan menerima data Bluetooth LE Audio ke dan dari pengontrol Bluetooth melalui antarmuka audio yang ditentukan vendor. Ini harus terdiri dari minimal driver streaming ACX untuk mengelola data audio masuk dan keluar. Lebih banyak driver ACX dapat disertakan jika diperlukan bagian dari titik akhir audio ACX multi sirkuit. Komponen ini juga disebut sebagai Driver Streaming IHV ACX dalam dokumen ini.
Profil Windows Bluetooth LE Audio
Komponen ini berisi implementasi Profil Audio Dasar (BAP), Profil Kontrol Volume, dan Profil Kontrol Mikrofon. Ini bertanggung jawab untuk membuat kepala ACXCIRCUIT untuk setiap perangkat Bluetooth LE Audio atau set perangkat yang dipasangkan ke Windows, melaporkan format audio yang dilaporkan oleh perangkat jarak jauh dan pengontrol Bluetooth, dan mengelola status saluran dan grup isochronous.
Tumpukan inti Windows Bluetooth
Komponen ini menyediakan antarmuka untuk memungkinkan Profil Audio LE Bluetooth Windows untuk mengkueri kemampuan codec yang didukung dari pengontrol Bluetooth lokal dan mengelola status saluran dan grup isochronous.
Codec LC3
Subkomponen ini bertanggung jawab untuk menerjemahkan antara audio LC3 terkompresi dan audio PCM. Ini akan mendukung kemampuan pengodean dan pendekodean dan dapat diimplementasikan baik dalam perangkat lunak sebagai bagian dari tumpukan driver audio spesifik vendor (VSAP), atau dalam perangkat keras sebagai bagian dari DSP audio atau Pengontrol Bluetooth. Diagram ini menyebutkan LC3 berdasarkan nama karena ini adalah codec standar yang didukung oleh Bluetooth SIG. Namun, codec di masa mendatang dan codec khusus vendor yang didukung oleh Windows juga dapat dimasukkan ke dalam arsitektur dengan cara yang sama.
Varian Arsitektur
Arsitektur BLUETOOTH LE Audio VSAP mendukung varian yang berbeda untuk streaming.
- Streaming Audio LE Bluetooth Sideband tanpa offload audio
- Streaming Audio LE Sideband Bluetooth dengan offload audio
- Vendor khusus inband Bluetooth LE Audio streaming
Dalam diagram berikut, komponen berbayang disediakan oleh IHV dan komponen yang tidak dibayangkan disediakan oleh OS.
Arsitektur Audio LE Sideband Bluetooth tanpa offload audio
Arsitektur sideband menggunakan antarmuka audio khusus vendor untuk memungkinkan tumpukan driver audio mengirim dan menerima data audio ke pengontrol Bluetooth. Jalur data ini terpisah dari jalur data HCI yang digunakan untuk data Bluetooth lainnya, seperti memberi sinyal pesan antara klien unicast dan server unicast jarak jauh. Diagram berikut memodelkan arsitektur sideband tempat codec LC3 dihosting di pengontrol Bluetooth. Ini juga valid untuk memiliki codec LC3 yang dihosting sebagai bagian dari Vendor Specific Audio Driver Stack untuk pengodean dan decoding perangkat lunak. Dalam hal ini, audio yang dikirim ke pengontrol Bluetooth akan diformat sebagai bingkai audio LC3 alih-alih audio PCM.
Diagram berikut menunjukkan arsitektur Bluetooth LE Audio sideband dengan codec LC3 di pengontrol Bluetooth.
Diagram berikut menunjukkan arsitektur Le Audio Bluetooth sideband dengan codec LC3 di tumpukan driver audio.
Arsitektur Audio LE Sideband Bluetooth dengan offload audio
Arsitektur sideband dengan offload audio mencakup komponen perangkat keras DSP audio untuk memberikan solusi streaming Bluetooth LE Audio dengan manfaat penghematan daya. Diagram berikut menunjukkan kemungkinan arsitektur dengan codec LC3 di pengontrol Bluetooth dan codec di DSP audio.
Diagram berikut menunjukkan Sideband Bluetooth LE Audio dengan arsitektur offload audio dengan codec LC3 di pengontrol Bluetooth.
Diagram berikut menunjukkan Audio LE Bluetooth sideband dengan arsitektur offload audio dengan codec LC3 di DSP audio.
Vendor khusus arsitektur Inband Bluetooth LE Audio
Arsitektur inband VSAP memungkinkan alur kustom untuk mengirim dan menerima data Bluetooth LE Audio dari tumpukan driver audio khusus vendor ke HCI pengontrol Bluetooth. Arsitektur ini mencakup komponen baru, "Komponen Penggabungan ISO IHV." Komponen ini bertanggung jawab untuk mengelola kontrol alur untuk data ISO. Ini juga harus berbagi kontrol alur perintah HCI dengan Windows Bluetooth Core Stack jika perlu mengirim perintah HCI.
Diagram berikut menunjukkan arsitektur KHUSUS vendor inband Bluetooth LE Audio.
Desain terperinci
Persyaratan format audio
Durasi bingkai audio
Profil Audio LE Bluetooth memungkinkan implementasi untuk mendukung streaming audio dengan durasi bingkai audio 7,5 milidetik atau 10 milidetik. Windows memerlukan codec yang disediakan oleh IHV untuk mendukung kedua durasi bingkai untuk memastikan interoperabilitas dengan perangkat aksesori Bluetooth LE Audio dan koeksistensi kualitas dengan perangkat Bluetooth LE lainnya yang terhubung ke sistem.
Definisi mode pemrosesan sinyal
Bluetooth LE Audio mendukung berbagai format streaming untuk mendukung skenario pengguna yang berbeda. Spesifikasi BAP dan TMAP menentukan format wajib yang didukung untuk sertifikasi. Windows menerapkan mode pemrosesan sinyal audio untuk menghubungkan format yang akan digunakan dengan skenario yang dilakukan oleh sistem. Driver audio yang mendukung Bluetooth LE Audio akan menunjukkan dukungan untuk mode dan format pemrosesan sinyal dalam tabel berikut. Selain itu, Bluetooth LE Audio tidak mendukung mode pemrosesan sinyal mentah, sehingga driver audio tidak boleh mengiklankan format yang didukung untuk mode ini.
Merender mode pemrosesan sinyal audio streaming
Audio LE Bluetooth mengharuskan format audio render dinyatakan untuk mode pemrosesan sinyal berikut:
- Default (AUDIO_SIGNALPROCESSINGMODE_DEFAULT)
- Mode ini digunakan untuk skenario render searah, seperti pemutaran musik, pemberitahuan, dan audio permainan video.
- Komunikasi (AUDIO_SIGNALPROCESSINGMODE_COMMUNICATIONS)
- Mode ini digunakan untuk skenario dua arah, seperti panggilan suara.
Tabel berikut adalah daftar format untuk setiap kasus penggunaan dan mode pemrosesan sinyal. Format audio diurutkan dari yang paling disukai daripada yang paling tidak disukai.
Suara sistem, pemutaran musik, dan audio permainan video saat terhubung ke perangkat stereo atau sekumpulan perangkat terkoordinasi
Mode pemrosesan sinyal: Default
Frekuensi Pengambilan Sampel | Jumlah Saluran | Kedalaman Bit | Durasi Bingkai | Laju Data Audio | ID Konfigurasi Codec BAP (Tabel 3.11 dari Spesifikasi BAP) |
---|---|---|---|---|---|
48 kHz | 2 | 16 | 7,5 mdtk | 96 kbps | 48_3 |
48 kHz | 2 | 16 | 7,5 mdtk | 80 kbps | 48_1 |
48 kHz | 2 | 16 | 10 md | 96 kbps | 48_4 |
48 kHz | 2 | 16 | 10 md | 80 kbps | 48_2 |
24 kHz | 2 | 16 | 7,5 mdtk | 48 kbps | 24_1 |
24 kHz | 2 | 16 | 10 md | 48 kbps | 24_2 |
Suara sistem, pemutaran musik, dan audio video game saat terhubung ke satu anggota set terkoordinasi (earbud tunggal atau alat bantu dengar)
Mode pemrosesan sinyal: Default
Frekuensi Pengambilan Sampel | Jumlah Saluran | Kedalaman Bit | Durasi Bingkai | Laju Data Audio | ID Konfigurasi Codec BAP (Tabel 3.11 dari Spesifikasi BAP) |
---|---|---|---|---|---|
48 kHz | 1 | 16 | 7,5 mdtk | 96 kbps | 48_3 |
48 kHz | 1 | 16 | 7,5 mdtk | 80 kbps | 48_1 |
48 kHz | 1 | 16 | 10 md | 96 kbps | 48_4 |
48 kHz | 1 | 16 | 10 md | 80 kbps | 48_2 |
24 kHz | 1 | 16 | 7,5 mdtk | 48 kbps | 24_1 |
24 kHz | 1 | 16 | 10 md | 48 kbps | 24_2 |
16 kHz | 1 | 16 | 7,5 mdtk | 32 kbps | 16_1 |
16 kHz | 1 | 16 | 10 md | 32 kbps | 16_2 |
Merender perekam suara, panggilan VOIP, atau audio game video dengan obrolan suara
Mode pemrosesan sinyal: Komunikasi
Frekuensi Pengambilan Sampel | Jumlah Saluran | Kedalaman Bit | Durasi Bingkai | Laju Data Audio | ID Konfigurasi Codec BAP (Tabel 3.11 dari Spesifikasi BAP) |
---|---|---|---|---|---|
32 kHz | 1 | 16 | 7,5 mdtk | 64 kbps | 32_1 |
32 kHz | 1 | 16 | 10 md | 64 kbps | 32_2 |
24 kHz | 1 | 16 | 7,5 mdtk | 48 kbps | 24_1 |
24 kHz | 1 | 16 | 10 md | 48 kbps | 24_2 |
16 kHz | 1 | 16 | 7,5 mdtk | 32 kbps | 16_1 |
16 kHz | 1 | 16 | 10 md | 32 kbps | 16_2 |
Mengambil mode pemrosesan sinyal audio aliran
Audio LE Bluetooth mengharuskan pengambilan format audio dideklarasikan untuk mode pemrosesan sinyal Default (AUDIO_SIGNALPROCESSINGMODE_DEFAULT). Daftar format pengambilan yang didukung ada dalam tabel berikut.
Format audio diurutkan dari yang paling disukai daripada yang paling tidak disukai.
Mengambil perekam suara, panggilan VOIP, atau audio video game dengan obrolan suara
Mode pemrosesan sinyal: Default
Frekuensi Pengambilan Sampel | Jumlah Saluran | Kedalaman Bit | Durasi Bingkai | Laju Data Audio | ID Konfigurasi Codec BAP (Tabel 3.11 dari Spesifikasi BAP) |
---|---|---|---|---|---|
32 kHz | 1 | 16 | 7,5 mdtk | 64 kbps | 32_1 |
32 kHz | 1 | 16 | 10 md | 64 kbps | 32_2 |
24 kHz | 1 | 16 | 7,5 mdtk | 48 kbps | 24_1 |
24 kHz | 1 | 16 | 10 md | 48 kbps | 24_2 |
16 kHz | 1 | 16 | 7,5 mdtk | 32 kbps | 16_1 |
16 kHz | 1 | 16 | 10 md | 32 kbps | 16_2 |
Konfigurasi aliran dan topologi yang ditentukan
Konfigurasi khusus render
Konfigurasi profil audio dasar 1
Konfigurasi audio berikut didefinisikan dalam tabel 4.1 dari spesifikasi BAP Bluetooth
PC terhubung ke satu perangkat audio yang mendukung aliran mono. Perangkat tunggal mungkin merupakan perangkat mandiri atau satu anggota yang terhubung dari satu set terkoordinasi.
Contoh Kasus Penggunaan | Pengaturan Windows Audio | Pengaturan Pengontrol Bluetooth |
---|---|---|
Pemutaran media | Render: Mode Pemrosesan Sinyal: Default Jumlah Saluran: 1 Tangkap: Tidak ada |
Jumlah CIS: 1 Jumlah CIG: 1 Pengaturan BAP QoS: Keandalan tinggi |
Panggilan suara tanpa mikrofon di perangkat audio | Render: Mode Pemrosesan Sinyal: Komunikasi Jumlah Saluran: 1 Tangkap: Tidak ada |
Jumlah CIS: 1 Jumlah CIG: 1 Pengaturan QoS BAP: Latensi rendah |
Pemutaran video game | Render: Mode Pemrosesan Sinyal: Default Jumlah Saluran: 1 Tangkap: Tidak ada |
Jumlah CIS: 1 Jumlah CIG: 1 Pengaturan QoS BAP: Latensi rendah |
Konfigurasi profil audio dasar 4
Konfigurasi audio berikut didefinisikan dalam tabel 4.1 dari spesifikasi BAP Bluetooth
PC terhubung ke satu perangkat audio yang mendukung aliran stereo. Perangkat audio mampu memproses dua saluran audio pada satu CIS.
Contoh Kasus Penggunaan | Pengaturan Windows Audio | Pengaturan Pengontrol Bluetooth |
---|---|---|
Pemutaran media | Render: Mode Pemrosesan Sinyal: Default Jumlah Saluran: 2 Tangkap: Tidak ada |
Jumlah CIS: 1 Jumlah CIG: 1 Pengaturan QoS BAP: Alokasi Saluran Audio Dengan Keandalan Tinggi: Kiri depan dan kanan depan |
Pemutaran video game | Mode Pemrosesan Sinyal: Default Jumlah Saluran: 2 Tangkap: Tidak ada |
Jumlah CIS: 1 Jumlah CIG: 1 Pengaturan QoS BAP: Latensi rendah Alokasi Saluran Audio: Kiri depan dan kanan depan |
Konfigurasi profil audio dasar 6(i)
Konfigurasi audio berikut didefinisikan dalam tabel 4.1 dari spesifikasi BAP Bluetooth
PC terhubung ke satu perangkat audio yang mendukung aliran stereo. Perangkat audio hanya mampu memproses satu saluran audio di masing-masing dari dua CIS
Contoh Kasus Penggunaan | Pengaturan Windows Audio | Pengaturan Pengontrol Bluetooth |
---|---|---|
Pemutaran media | Mode Pemrosesan Sinyal: Default Jumlah Saluran: 2 Tangkap: Tidak ada |
Jumlah CIS: 2 Jumlah CIG: 1 Pengaturan BAP QoS: Keandalan tinggi |
Panggilan suara tanpa mikrofon di perangkat audio | Mode Pemrosesan Sinyal: Komunikasi Jumlah Saluran: 1 Tangkap: Tidak ada |
Jumlah CIS: 2 Jumlah CIG: 1 Pengaturan QoS BAP: Latensi rendah Alokasi Saluran Audio: Kiri depan atau kanan depan |
Pemutaran video game | Mode Pemrosesan Sinyal: Default Jumlah Saluran: 2 Tangkap: Tidak ada |
Jumlah CIS: 2 Jumlah CIG: 1 Pengaturan QoS BAP: Latensi rendah Alokasi Saluran Audio: Kiri depan dan kanan depan |
Konfigurasi profil audio dasar 6(ii)
Konfigurasi audio berikut didefinisikan dalam tabel 4.1 dari spesifikasi BAP Bluetooth
PC terhubung ke sekumpulan perangkat audio terkoordinasi. Set ini mampu memproses dua saluran audio dengan setiap anggota memproses satu saluran.
Contoh Kasus Penggunaan | Pengaturan Windows Audio | Pengaturan Pengontrol Bluetooth |
---|---|---|
Pemutaran media | Mode Pemrosesan Sinyal: Default Jumlah Saluran: 2 Tangkap: Tidak ada |
Jumlah CIS: 2 Jumlah CIG: 1 Pengaturan BAP QoS: Keandalan tinggi |
Panggilan suara tanpa mikrofon di salah satu perangkat | Mode Pemrosesan Sinyal: Komunikasi Jumlah Saluran: 1 Tangkap: Tidak ada |
Jumlah CIS: 2 Jumlah CIG: 1 Pengaturan QoS BAP: Latensi rendah |
Pemutaran video game | Mode Pemrosesan Sinyal: Default Jumlah Saluran: 2 Tangkap: Tidak ada |
Jumlah CIS: 2 Jumlah CIG: 1 Pengaturan QoS BAP: Latensi rendah |
Konfigurasi dua arah
Konfigurasi dua arah digunakan saat profil Bluetooth LE Audio mendeteksi bahwa aplikasi berniat untuk membuat tangkapan dan merender aliran ke perangkat jarak jauh atau sekumpulan perangkat. Karena aplikasi mengontrol pengambilan dan render aliran secara terpisah, driver audio IHV dan pengontrol Bluetooth akan memungkinkan audio mengalir melalui satu arah CIS dua arah setelah disediakan menggunakan perintah HCI Mengonfigurasi Jalur Data dan Jalur Data ISO Penyiapan LE.
Konfigurasi profil audio dasar 3
Konfigurasi audio berikut didefinisikan dalam tabel 4.1 dari spesifikasi BAP Bluetooth
PC terhubung ke satu perangkat audio dengan aliran mono dua arah yang dibuat pada satu CIS.
Kasus penggunaan 6 | Pengaturan Windows Audio | Pengaturan Pengontrol Bluetooth |
---|---|---|
Panggilan suara | Membuat: Mode Pemrosesan Sinyal: Komunikasi Jumlah Saluran: 1 Menangkap: Mode Pemrosesan Sinyal: Default Jumlah Saluran: 1 |
Jumlah CIS: 1 Jumlah CIG: 1 Pengaturan QoS BAP: Latensi Rendah |
Pemutaran video game dengan obrolan suara | Membuat: Mode Pemrosesan Sinyal: Komunikasi Jumlah Saluran: 1 Menangkap: Mode Pemrosesan Sinyal: Default Jumlah Saluran: 1 |
Jumlah CIS: 1 Jumlah CIG: 1 Pengaturan QoS BAP: Latensi Rendah |
Konfigurasi profil audio dasar 8(i)
Konfigurasi audio berikut didefinisikan dalam tabel 4.1 dari spesifikasi BAP Bluetooth
PC terhubung ke satu perangkat audio yang mendukung aliran render stereo dan aliran pengambilan mono. Perangkat ini mampu memproses satu saluran audio pada satu CIS untuk arah tertentu.
Kasus penggunaan 6 | Pengaturan Windows Audio | Pengaturan Pengontrol Bluetooth |
---|---|---|
Panggilan suara | Membuat: Mode Pemrosesan Sinyal: Komunikasi Jumlah Saluran: 1 Menangkap: Mode Pemrosesan Sinyal: Default Jumlah Saluran: 1 |
Jumlah CIS: 2 Jumlah CIG: 1 Pengaturan QoS BAP: Latensi Rendah |
Pemutaran video game dengan obrolan suara | Membuat: Mode Pemrosesan Sinyal: Komunikasi Jumlah Saluran: 2 Menangkap: Mode Pemrosesan Sinyal: Default Jumlah Saluran: 1 |
Jumlah CIS: 2 Jumlah CIG: 1 Pengaturan QoS BAP: Latensi Rendah |
Konfigurasi profil audio dasar 8(ii)
Konfigurasi audio berikut didefinisikan dalam tabel 4.1 dari spesifikasi BAP Bluetooth
PC terhubung ke sekumpulan perangkat audio terkoordinasi. Setiap anggota set menerima satu saluran audio render. Satu anggota set memiliki aliran pengambilan yang ditetapkan. Anggota set dengan aliran pengambilan adalah anggota set pertama yang terhubung ke PC yang juga mendukung aliran pengambilan.
Kasus penggunaan 6 | Pengaturan Windows Audio | Pengaturan Pengontrol Bluetooth |
---|---|---|
Panggilan suara | Membuat: Mode Pemrosesan Sinyal: Komunikasi Jumlah Saluran: 1 Menangkap: Mode Pemrosesan Sinyal: Default Jumlah Saluran: 1 |
Jumlah CIS: 2 Jumlah CIG: 1 Pengaturan QoS BAP: Latensi Rendah |
Pemutaran video game dengan obrolan suara | Membuat: Mode Pemrosesan Sinyal: Komunikasi Jumlah Saluran: 2 Menangkap: Mode Pemrosesan Sinyal: Default Jumlah Saluran: 1 |
Jumlah CIS: 2 Jumlah CIG: 1 Pengaturan QoS BAP: Latensi Rendah |
Konfigurasi khusus pengambilan
Konfigurasi profil audio dasar 2
Konfigurasi audio berikut didefinisikan dalam tabel 4.1 dari spesifikasi BAP Bluetooth
PC terhubung ke satu perangkat audio yang mendukung aliran pengambilan mono.
Kasus penggunaan 6 | Pengaturan Windows Audio | Pengaturan Pengontrol Bluetooth |
---|---|---|
Panggilan suara tanpa speaker di perangkat | Render: Tidak ada Menangkap: Mode Pemrosesan Sinyal: Default Jumlah Saluran: 1 |
Jumlah CIS: 1 Jumlah CIG: 1 Pengaturan QoS BAP: Latensi Rendah |
Konfigurasi profil audio dasar 9(i)
Konfigurasi audio berikut didefinisikan dalam tabel 4.1 dari spesifikasi BAP Bluetooth
PC terhubung ke satu perangkat audio yang mendukung pengiriman data audio stereo. Perangkat ini mampu mengodekan satu saluran audio pada satu CIS.
Kasus penggunaan 6 | Pengaturan Windows Audio | Pengaturan Pengontrol Bluetooth |
---|---|---|
Pengambilan mikrofon multi saluran | Render: Tidak ada Menangkap: Mode Pemrosesan Sinyal: Default Jumlah Saluran: 1 |
Jumlah CIS: 2 Jumlah CIG: 1 Pengaturan QoS BAP: Latensi Rendah |
Konfigurasi profil audio dasar 9(ii)
PC terhubung ke satu perangkat audio yang mendukung aliran pengambilan mono.
Konfigurasi audio berikut didefinisikan dalam tabel 4.1 dari spesifikasi BAP Bluetooth
PC terhubung ke satu set perangkat audio. Setiap anggota set mengirimkan satu saluran audio ke PC.
Kasus penggunaan 6 | Pengaturan Windows Audio | Pengaturan Pengontrol Bluetooth |
---|---|---|
Pengambilan mikrofon multi saluran | Render: Tidak ada Menangkap: Mode Pemrosesan Sinyal: Default Jumlah Saluran: 1 |
Jumlah CIS: 2 Jumlah CIG: 1 Pengaturan QoS BAP: Latensi Rendah |
Jika perangkat jarak jauh atau set perangkat mendukung audio dua arah, konfigurasi untuk aliran pengambilan saja sama dengan konfigurasi dua arah. Ini memungkinkan transisi dari skenario hanya tangkap ke skenario dua arah tanpa perlu membuat ulang aliran.
Struktur data
Properti antarmuka Bluetooth LE Audio yang ditentukan Microsoft
Properti pembuatan aliran
Properti berikut dibagikan antara tumpukan driver audio khusus vendor dan Profil Audio LE Bluetooth melalui ACXOBJECTBAGDDIs untuk menginformasikan keputusan tentang pembuatan dan konfigurasi titik akhir aliran, seperti yang ditunjukkan dalam skenario Pembuatan Stream .
BluetoothLEAudio_CodecCapabilities
Properti ini diatur oleh driver audio untuk menunjukkan dukungan untuk kemampuan streaming audio yang didukung di driver audio atau DSP audio. Nilai properti diatur menggunakan DDI AcxObjectBagAddBlob dan format nilainya sama dengan catatan PAC seperti yang ditentukan dalam spesifikasi PACS.
Profil Windows Bluetooth LE Audio membaca properti untuk menentukan kemungkinan konfigurasi codec dan komposisi streaming yang akan digunakan.
Bidang | Oktet |
---|---|
Jumlah Kapabilitas | 0 |
ID Codec[i] | 1-6 |
Panjang Kapabilitas Khusus Codec[i] | 7 |
Kemampuan Khusus Codec | 8... n |
Panjang Metadata (m) | n + 1 |
Metadata | n+2... M |
Nilai bidang ditentukan dalam tabel 3.2 dan 3.4 dari spesifikasi PACS.
Bluetooth_DatapathID
Properti ini diatur oleh driver audio untuk menunjukkan ID jalur data yang digunakan sebagai parameter untuk perintah HCI_LE_Setup_ISO_Data_Path dan HCI_Configure_Data_Path. Nilai properti diatur menggunakan AcxObjectBagAddUI8 DDI.
Profil Audio LE Bluetooth membaca dan menggunakan properti ini adalah sebagai parameter dalam perintah HCI_Configure_Data_Path dan HCI_LE_Setup_ISO_Data_Path. ID ini diterapkan untuk semua aliran isochronous yang dibuat untuk ACXSTREAM yang terkait dengan tas objek.
Bidang | Oktet |
---|---|
ID jalur data | 0 |
Jika properti tidak diatur oleh driver audio, maka OS menggunakan nilai 1 sebagai parameter untuk perintah HCI.
Bluetooth_DatapathConfiguration
Properti ini diatur oleh driver audio untuk menyediakan konfigurasi khusus vendor ke pengontrol Bluetooth melalui perintah HCI_Configure_Data_Path. Ini tidak boleh lebih besar dari 255 byte, yang merupakan payload terbesar yang diterima pengontrol Bluetooth untuk perintah HCI. Nilai properti diatur menggunakan AcxObjectBagAddBlob DDI. Konfigurasi ini diterapkan untuk semua ID jalur data yang ditetapkan oleh driver audio.
BluetoothLEAudio_CodecConfiguration
Properti ini harus diatur oleh profil Audio LE Bluetooth menggunakan DDI AcxObjectBagAddBlob setelah konfigurasi codec dikonfigurasi dengan perangkat audio. Struktur nilainya adalah:
Bidang | Oktet |
---|---|
Jumlah Konfigurasi | 0 |
Format Pengkodian[i] | 3 |
ID Perusahaan[i] | 1-2 |
ID Codec Spesifik Vendor[i] | 3-4 |
Panjang Konfigurasi Khusus Codec[i] | 5 |
Konfigurasi Khusus Codec[i] | 6... n |
Nilai bidang ditentukan dalam tabel 4.3 dari Spesifikasi Layanan Kontrol Aliran Audio Bluetooth.
Tumpukan driver audio khusus vendor harus membaca properti ini jika codec LC3 berada di driver streaming ACX atau DSP audio.
Antarmuka
ID pengikatan templat titik akhir audio
Digunakan oleh pabrik sirkuit ACX driver audio untuk mengetahui kapan sirkuit ACX untuk perangkat Bluetooth yang dipasangkan dibuat.
ID komponen berikut digunakan untuk membuat sirkuit Bluetooth LE Audio:
// {5C52FDB5-722A-4AB7-A342-70163B7E9B5C}
DEFINE_GUID(GUID_BLUETOOTH_LEAUDIO_RENDER_COMPONENT_ID,
0x5c52fdb5, 0x722a, 0x4ab7, 0xa3, 0x42, 0x70, 0x16, 0x3b, 0x7e, 0x9b, 0x5c);
// {1DFF2EE3-AE89-441C-BDE3-24F885C55DF8}
DEFINE_GUID(GUID_BLUETOOTH_LEAUDIO_CAPTURE_COMPONENT_ID,
0x1dff2ee3, 0xae89, 0x441c, 0xbd, 0xe3, 0x24, 0xf8, 0x85, 0xc5, 0x5d, 0xf8);
Antarmuka dukungan Bluetooth LE Audio
Digunakan oleh tumpukan driver audio untuk menunjukkan bahwa itu tersedia untuk streaming Bluetooth LE Audio. Watch tingkat layanan Windows Bluetooth Audio untuk antarmuka ini dan tunggu hingga diterbitkan sebelum mengaktifkan dukungan Bluetooth LE Audio.
ID antarmuka berikut digunakan untuk menerbitkan antarmuka dukungan Bluetooth LE Audio:
// {BA02FA1B-0FD0-4A0F-A748-4FAE2E2D2F67}
DEFINE_GUID(GUID_BLUETOOTH_LEAUDIO_SUPPORT_INTERFACE,
0xba02fa1b, 0x0fd0, 0x4a0f, 0xa7, 0x48, 0x4f, 0xae, 0x2e, 0x2d, 0x2f, 0x67);
Urutan
Inisialisasi driver audio
Ketika driver Streaming IHV ACX memuat dan menentukan bahwa ia mendukung streaming Bluetooth LE Audio, itu akan menunjukkan dukungan untuk teknologi dengan membuat objek ACXFACTORYCIRCUIT dan mendaftar untuk pengikatan templat Bluetooth dengan ACX menggunakan ID yang ditentukan dalam ID Pengikatan Templat Titik Akhir Audio.
Pembuatan titik akhir
- Saat perangkat LE Audio dipasangkan dengan sistem, Profil Audio LE Bluetooth:
- Membaca kemampuan audio yang diterbitkan dari perangkat jarak jauh.
- Menemukan kemampuan yang didukung pengontrol dengan mengirim perintah HCI_Read_Local_Support_Codecs [v2] dan HCI_Read_Local_Supported_Codec_Capabilities.
- Membuat ACXCIRCUIT dengan format yang didukung yang ditetapkan berdasarkan kemampuan codec yang didukung oleh pengontrol Bluetooth dan perangkat audio jarak jauh. Jika pengontrol tidak mendukung codec apa pun karena dukungan codec ada di DSP audio atau driver audio, maka format yang didukung diatur ke format yang didukung oleh perangkat audio jarak jauh.
- Setelah ACXCIRCUIT dibuat, ACX meminta pabrik sirkuit ACX driver streaming IHV ACX untuk membuat ACXCIRCUIT untuk pemrosesan streaming.
- Ketika permintaan untuk membuat sirkuit diterima, driver streaming IHV ACX:
- Membuat objek ACXCIRCUIT, ACXPIN, ACXOBJECTBAG, dan ACXSTREAMBRIDGE .
- Jika kodek khusus LC3 atau vendor dihosting di driver audio atau DSP, driver streaming IHV ACX mengatur properti BluetoothLEAudio_CodecCapabilities pada ACXOBJECTBAG.
- Driver streaming IHV ACX dapat mengatur Bluetooth_DatapathID atau Bluetooth_DatapathConfiguration pada ACXOBJECTBAG jika diketahui saat ini.
- Setelah kedua sirkuit dibuat, ACX memanggil panggilan balik EvtAcxPinConnected pada pin penghubung driver IHV ACX.
- Ketika panggilan balik EvtAcxPinConnected dipanggil, driver streaming IHV ACX:
- Mengambil pin jembatan sirkuit profil dengan AcxTarget... API untuk mengambil format yang didukung oleh sirkuit profil.
- Melakukan iterasi melalui daftar ACXDATAFORMATyang ditetapkan oleh sirkuit profil. Jika codec audio Bluetooth dihosting di driver audio atau DSP audio, maka driver audio IHV memperbarui ACXDATAFORMAT-nyadengan format yang didukung oleh codec dan sirkuit profil. Jika tidak, semua format disalin ke pin host driver streaming IHV ACX.
- Mengatur daftar format yang diperbarui pada pin jembatan jika mesin audio dibuat untuk streaming offload.
- Setelah format diperbarui, ACX mengaktifkan kedua antarmuka, dan titik akhir audio dibuat.
Pembuatan aliran
- Ketika aplikasi meminta untuk membuat aliran audio, ACX memanggil panggilan balik EvtCircuitCreateStream terdaftar untuk setiap sirkuit, dimulai dengan driver streaming IHV ACX.
- Ketika panggilan balik EvtCircuitCreateStream dipanggil, driver streaming IHV ACX:
- Mengatur atau memperbarui properti Bluetooth_DatapathId dan Bluetooth_DataPathConfiguration pada ACXOBJECTBAG yang dilampirkan ke ACXSTREAMBRIDGE.
- Membuat ACXSTREAM dengan panggilan balik yang ditetapkan untuk transisi status aliran dan pemrosesan aliran RT
- Membuat elemen mesin audio pada aliran jika alur audio mendukung streaming offload.
- Menambahkan ACXSTREAM ke jembatan alirannya. Ini memanggil panggilan balik EvtCircuitCreateStream profil Bluetooth LE Audio.
- Ketika panggilan balik EvtAcxCircuitCreateStream dipanggil, profil Audio LE Bluetooth:
- Menyimpan properti secara lokal dari ACXOBJECTBAG yang ditetapkan oleh driver streaming IHV ACX untuk panggilan balik transisi streaming di masa mendatang.
- Jika titik akhir audio adalah untuk streaming unicast profil Bluetooth LE Audio:
- Melakukan Operasi Kodek Konfigurasi seperti yang didefinisikan dalam spesifikasi BAP. Parameter untuk operasi berasal dari ACXDATAFORMAT yang ditentukan dalam panggilan balik EvtAcxCircuitCreateStream dan parameter aliran lainnya di ACXOBJECTBAG atau kemampuan codec yang didukung oleh Pengontrol Bluetooth.
- Mengatur properti BluetoothLEAudio_CodecConfiguration pada ACXOBJECTBAG dengan nilai yang digunakan untuk mengonfigurasi perangkat audio jarak jauh.
- Jika driver streaming IHV ACX perlu memperbarui ID jalur data atau konfigurasi jalur data berdasarkan nilai tas objek yang ditetapkan oleh profil, maka itu dapat memanggil operasi set KSPROPERTY untuk memperbarui nilai yang disimpan oleh sirkuit profil.
- Membuat ACXSTREAM dengan panggilan balik yang diatur untuk transisi status aliran.
Transisi status aliran
ACX memutuskan urutan sirkuit transisi status aliran berdasarkan aliran audio dan apakah status beralih ke status yang lebih aktif atau kurang aktif.
- Untuk Streaming render dari status kurang aktif ke status yang lebih aktif, sirkuit profil menerima peristiwa terlebih dahulu, diikuti oleh sirkuit streaming.
- Untuk Streaming render dari status yang lebih aktif ke status kurang aktif, sirkuit streaming menerima peristiwa terlebih dahulu, diikuti oleh sirkuit profil.
- Untuk aliran Capture dari status kurang aktif ke status yang lebih aktif, sirkuit streaming menerima peristiwa terlebih dahulu, diikuti oleh sirkuit profil.
- Untuk aliran Capture dari status yang lebih aktif ke status kurang aktif, sirkuit profil dengan menerima peristiwa terlebih dahulu, diikuti oleh sirkuit streaming.
Menyiapkan aliran
Ketika panggilan balik EvtAcxStreamPrepareHardware dipanggil, profil Audio LE Bluetooth:
- Mengalokasikan sumber daya untuk aliran unicast dengan:
- Mengonfigurasi CIG dengan perintah HCI_LE_Set_CIG_Parameters.
- Mengirim operasi QoS konfigurasi ASCS untuk menyinkronkan pengaturan dengan perangkat jarak jauh.
Ketika panggilan balik EvtAcxStreamPrepareHardware dipanggil, driver streaming IHV ACX mengalokasikan sumber daya streaming yang diperlukan dan menginisialisasi alur audio untuk berada dalam status diperoleh.
Mulai streaming
Ketika panggilan balik EvtAcxStreamRun dipanggil, profil Audio LE Bluetooth:
- Menerapkan pengaturan konfigurasi jalur data apa pun yang diatur oleh driver streaming ACX dalam prosedur pembuatan aliran menggunakan perintah HCI_Configure_Data_Path.
- Memulai prosedur mulai aliran dengan:
- Melakukan aliran unicast BAP Aktifkan prosedur untuk aliran unicast:
- Mengirim operasi Aktifkan ke titik akhir jarak jauh.
- Membuat CIS jika belum dibuat menggunakan perintah HCI_LE_Create_CIS.
- Melakukan aliran unicast BAP Aktifkan prosedur untuk aliran unicast:
- Jika jalur data belum dikonfigurasi, profil Audio LE Bluetooth:
- Menetapkan jalur data ISO menggunakan perintah HCI_LE_Setup_ISO_Data_Path
- Jika driver streaming IHV ACX mengatur properti BluetoothLEAudio_CodecCapabilities , nilai bidang Codec_ID di HCI_LE_Setup_ISO_Data_Path harus diatur ke transparan (0x3) seperti yang didefinisikan dalam Bluetooth Assigned Numbers. Jika tidak, nilainya harus sama dengan ID Codec yang digunakan dalam operasi codec konfigurasi dalam prosedur pembuatan aliran.
- Menetapkan jalur data ISO menggunakan perintah HCI_LE_Setup_ISO_Data_Path
- Jika aliran audio adalah aliran pengambilan unicast, profil Audio LE Bluetooth melakukan operasi siap mulai penerima BAP.
Ketika panggilan balik EvtAcxStreamRun dipanggil, driver streaming IHV ACX mulai memproses data audio masuk dari sistem audio Windows (render) atau pengontrol Bluetooth (ambil).
Menjeda aliran
Ketika panggilan balik EvtAcxStreamPause dipanggil, profil Audio LE Bluetooth:
- Melakukan prosedur nonaktifkan aliran unicast BAP.
- Menghapus jalur data ISO menggunakan perintah HCI_LE_Remove_ISO_Data_Path.
- Melakukan prosedur siap berhenti penerima ASCS jika aliran audio adalah aliran pengambilan unicast.
Ketika panggilan balik EvtAcxStreamPause dipanggil, driver streaming IHV ACX menjeda alur pemrosesan audionya.
Aliran rilis
Ketika panggilan balik EvtAcxStreamReleaseHardware dipanggil, Profil Audio LE Bluetooth melakukan prosedur rilis aliran unicast BAP dengan:
- Mengirim operasi Rilis ASCS ke perangkat Bluetooth LE Audio jarak jauh
- Memutuskan sambungan CIS jika tidak digunakan oleh aliran aktif lain.
- Menghapus CIG jika semua CIS terputus.
Ketika panggilan balik EvtAcxStreamReleaseHardware dipanggil, driver streaming IHV ACX merilis sumber daya alur audionya.
Pemutusan titik akhir
Profil Windows Bluetooth LE Audio memperbarui status koneksi titik akhir jika perangkat unicast jarak jauh tidak memiliki koneksi LE-ACL ke PC atau melaporkan melalui konteks audio PACS yang tersedia yang tidak tersedia untuk streaming. Ketika titik akhir terputus, layanan audio Windows membatalkan aliran aktif apa pun ke titik akhir. Ini menghasilkan jeda aliran dan urutan rilis yang akan terjadi.
Penghapusan titik akhir
Titik akhir Bluetooth LE Audio dihapus dari sistem saat sirkuit profil atau sirkuit streaming dihancurkan. Sirkuit profil dapat dihapus ketika pemasangan perangkat unicast jarak jauh dihapus dari Windows atau radio Bluetooth dinonaktifkan.
- Ketika profil Windows Bluetooth LE Audio menghapus sirkuitnya, ACX menonaktifkan antarmuka titik akhirnya untuk memberi sinyal ke layanan audio Windows bahwa titik akhir harus dihapus.
- Ketika antarmuka dinonaktifkan, layanan audio Windows membatalkan aliran aktif apa pun ke titik akhir Bluetooth LE Audio, operasi ini menghasilkan jeda aliran dan merilis panggilan balik untuk dipanggil di sirkuit streaming.
- Untuk menyelesaikan penghapusan titik akhir, ACX membatalkan sirkuit driver streaming IHV ACX, yang mengakibatkan WDF memanggil panggilan balik pembersihan sirkuit.
- Ketika panggilan balik pembersihannya dipanggil, driver streaming IHV ACX merilis sirkuitnya.
Volume dan bisu
Sirkuit streaming IHV ACX hanya boleh menyertakan elemen volume dan bisukan jika driver streaming memerlukan mesin audio. Saat menggunakan mesin audio, bendera konfigurasi harus diatur seperti:
ACX_AUDIOENGINE_CONFIG audioEngineCfg;
ACX_AUDIOENGINE_CONFIG_INIT(&audioEngineCfg);
…
audioEngineCfg.Flags |= AcxAudioEngineConfigVolumeSecondary; // Use this control only if endpoint doesn't have one.
audioEngineCfg.MuteElement = muteElement;
audioEngineCfg.Flags |= AcxAudioEngineConfigMuteSecondary; // Use this control only if endpoint doesn't have one.
audioEngineCfg.PeakMeterElement = peakmeterElement;
audioEngineCfg.Flags |= AcxAudioEngineConfigPeakMeterSecondary; // Use this control only if endpoint doesn't have one.
Ini diperlukan untuk memungkinkan titik akhir Bluetooth LE Audio menggunakan volume yang ditentukan Bluetooth SIG dan profil kontrol mikrofon untuk volume dan membisukan perubahan untuk titik akhir audio unicast.
Jika perangkat Bluetooth LE Audio jarak jauh tidak mendukung layanan kontrol volume atau mikrofon, atau titik akhir dibuat untuk audio siaran, maka elemen volume dan bisu di mesin audio akan berfungsi sebagai fallback untuk menangani permintaan perubahan dari sistem audio. Sistem audio Windows menangani perubahan pada volume dan bisukan. Jika tidak ada mesin audio dan perangkat jarak jauh tidak mendukung volume, atau layanan mikrofon atau titik akhir audio adalah untuk audio siaran.
Bluetooth LE dan koeksistensi audio klasik
Windows harus memastikan bahwa hanya audio klasik atau audio LE yang aktif untuk perangkat audio Bluetooth yang dipasangkan yang mendukung kedua teknologi tersebut. Jika audio LE aktif, maka DDI sideband untuk A2DP dan HFP untuk perangkat jarak jauh dinonaktifkan dan sirkuit profil dibuat untuk titik akhir audio LE. Jika audio klasik aktif, DDI sideband untuk A2DP dan HFP untuk perangkat jarak jauh diaktifkan dan sirkuit profil tidak dibuat untuk titik akhir audio LE.
Manajemen daya
Bluetooth LE Audio tidak memiliki persyaratan atau alur manajemen daya di luar apa yang sudah ditentukan oleh WDF.
Topik terkait
- Ekstensi kelas audio ACX
- Spesifikasi Profil Audio Dasar Bluetooth
- Spesifikasi Bluetooth Core 5.3
- Spesifikasi Layanan Kemampuan Audio yang Diterbitkan Bluetooth
- Spesifikasi Layanan Kontrol Aliran Audio Bluetooth
- Nomor yang Ditetapkan Bluetooth
- Panduan bypass HFP Bluetooth untuk driver audio
- Bluetooth HFP melewati streaming audio
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk