Share via


Bluetooth Low Energy (LE) Audio

Dieser Artikel bietet eine Übersicht über Bluetooth LE Audio, die in Windows 11 Version 22H2 (KB5026446) eingeführt wurde.

Einführung

Bluetooth LE Audio ermöglicht das Streamen von Unicast- oder Broadcastaudiodaten an Bluetooth LE-Geräte über einen isochronen Transport. Ab Version 5.3 der Bluetooth-Core-Spezifikation gibt es keine standardmäßig definierte Hostcontrollerschnittstelle (HCI) für Hostplattformen, die isochrone Daten an und vom Bluetooth-Controller senden und empfangen können. In diesem Dokument wird der Windows Bluetooth Vendor Specific Audio Path (VSAP) definiert, damit Plattformen anbieterspezifische Lösungen verwenden können, um Bluetooth LE Audio-Streaming zu ermöglichen. Die VSAP-Softwareschnittstelle verwendet Windows-Audioklassenerweiterungen (ACX) und weitere Schnittstelleneigenschaften, die in diesem Dokument definiert sind.

Terminologie und Voraussetzungen

Zusätzlich zu den in dieser Tabelle definierten Begriffen verweist dieses Dokument auch auf Begriffe, die von Windows-Audioklassenerweiterungen definiert werden.

Begriff Definition
LE-Audio Kurzform für Bluetooth LE Audio
Klassisches Audio Bluetooth-Audiostreaming, das das Freisprechprofil (HFP) und das erweiterte Audioverteilungsprofil (A2DP) verwendet
Audiogerät Ein einzelnes Bluetooth LE Audio-Remotegerät oder eine Gruppe von Bluetooth LE Audio-Geräten, die aus Windows-Sicht zusammen einen einzelnen Audioendpunkt bilden.
BAP Das Grundlegende Audioprofil definiert, wie Geräte Audio mithilfe von Bluetooth Low Energy (LE)-Kommunikation verteilen und nutzen können.
TMAP Das Telefonie- und Medienaudioprofil gibt interoperable Konfigurationen der Audiodienste und Profile auf niedriger ebener Ebene an.
ASCS Der Audiostream-Steuerungsdienst definiert eine Standardmethode für Bluetooth LE-Audiogeräte zum Konfigurieren und Einrichten von Unicast-Audiostreams.
PACS Der Dienst für veröffentlichte Audiofunktionen definiert eine Standardmethode für Bluetooth LE-Audiogeräte, um die unterstützten Audiocodecfunktionen zu melden.
CIS Der Transport von verbundenen isochronen Streams wird verwendet, um Unicastaudiodaten zwischen Bluetooth LE-Geräten zu senden und zu empfangen.
BIS Der Broadcast Isochronous Stream-Transport wird für verbindungslose Audiodatenübertragungen verwendet.
ACX Kurzform für Audioklassenerweiterungen. Dies ist das Treibermodell, das von allen Audiotreibern zur Unterstützung von Bluetooth LE Audio unter Windows benötigt wird.
Streamingschaltungen Mindestens ein ACXCIRCUIT-Objekt , das vom anbieterspezifischen Audiotreiberstapel für den Streamingpfad erstellt wurde.
Profilschaltung Ein ACXCIRCUIT-Objekt , das von der Bluetooth LE Audio-Profilimplementierung unter Windows erstellt wird. Dieser ACXCIRCUIT dient als Hauptschaltung, wie in der ACX-Spezifikation definiert, und ist keine Streamingschaltung.

In diesem Dokument wird vorausgesetzt, dass sie mit den zuvor definierten Begriffen und den folgenden HCI-Befehlen vertraut sind, die in der Bluetooth Core 5.3-Spezifikation definiert sind:

  • 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 erfordert, dass die Audiotreiber das ACX-Framework verwenden. Die Einführung von ACX für Bluetooth LE Audio bietet mehrere Vorteile, z. B.:

  • Unterstützt in Zukunft das bevorzugte Audiotreibermodell für Windows.
  • Verwendet die native Unterstützung von ACX für Multistapel-Audiolösungen, ohne dass ein dedizierter DDI zwischen Treibern erforderlich ist.
  • Erfordert keine IHV-Audiotreiber, um Anforderungen vom Audiosystem an den Bluetooth-Stapel weiterzu leiten. Stattdessen kann ACX Anforderungen direkt über die Profilschaltung an den Bluetooth-Stapel senden.

Aufbau

Definitionen

Die folgenden Komponenten sind an den verschiedenen VSAP-Architekturvarianten beteiligt.

Windows ACX-Framework

Diese Komponente ermöglicht die Unterstützung für einen Multi-Stack Audioendpunkt. Für Bluetooth LE Audio sind die Softwarekomponenten, aus denen ein Audioendpunkt besteht, der herstellerspezifische Audiotreiberstapel und das Windows Bluetooth LE-Audioprofil.

Anbieterspezifischer Audiotreiberstapel

Diese herstellerspezifische Komponente ist für das Senden und Empfangen von Bluetooth LE-Audiodaten an und von einem Bluetooth-Controller über eine vom Hersteller definierte Audioschnittstelle verantwortlich. Es muss mindestens aus einem ACX-Streamingtreiber zum Verwalten der ein- und ausgehenden Audiodaten bestehen. Weitere ACX-Treiber können enthalten sein, wenn sie erforderlich sind Teile des ACX-Audioendpunkts mit mehreren Schaltungen. Diese Komponente wird in diesem Dokument auch als IHV ACX-Streamingtreiber bezeichnet.

Windows Bluetooth LE Audioprofil

Diese Komponente enthält die Implementierung des Basic Audio Profile (BAP), des Lautstärkesteuerungsprofils und des Mikrofonsteuerungsprofils. Es ist verantwortlich für die Erstellung des Haupt-ACXCIRCUIT für jedes Bluetooth LE Audio-Gerät oder jede Gruppe von Geräten, die mit Windows gekoppelt sind, die Vom Remotegerät und Bluetooth-Controller gemeldeten Audioformate zu melden und den Status isochroner Kanäle und Gruppen zu verwalten.

Windows Bluetooth Core Stack

Diese Komponente stellt eine Schnittstelle bereit, mit der das Windows Bluetooth LE-Audioprofil unterstützte Codecfunktionen vom lokalen Bluetooth-Controller abfragen und den Status isochroner Kanäle und Gruppen verwalten kann.

LC3-Codec

Dieser Teilkomponenten ist für die Übersetzung zwischen komprimiertem LC3-Audio und PCM-Audio zuständig. Es muss sowohl Codierungs- als auch Decodierungsfunktionen unterstützen und kann entweder in Software als Teil des anbieterspezifischen Audiotreiberstapels (VSAP) oder in Hardware als Teil des Audio-DSP oder Bluetooth-Controllers implementiert werden. Das Diagramm erwähnt LC3 anhand des Namens, da es sich um den Standardcodec handelt, der von der Bluetooth SIG unterstützt wird. Zukünftige Codecs und anbieterspezifische Codecs, die von Windows unterstützt werden, können jedoch auch auf ähnliche Weise in die Architektur integriert werden.

Architekturvarianten

Die VSAP-Architektur von Bluetooth LE Audio unterstützt verschiedene Varianten für das Streaming.

  1. Sideband Bluetooth LE Audio Streaming ohne Audioauslagerung
  2. Sideband Bluetooth LE Audio streaming with audio offload
  3. Herstellerspezifisches Inband-Bluetooth LE-Audiostreaming

In den folgenden Diagrammen werden die schattierten Komponenten vom IHV und die nicht abgeschirmten Komponenten vom Betriebssystem bereitgestellt.

Sideband Bluetooth LE Audio-Architektur ohne Audioauslagerung

Eine Sidebandarchitektur verwendet eine herstellerspezifische Audioschnittstelle, damit der Audiotreiberstapel Audiodaten an den Bluetooth-Controller senden und empfangen kann. Dieser Datenpfad ist vom HCI-Datenpfad getrennt, der für andere Bluetooth-Daten verwendet wird, z. B. signalisieren von Nachrichten zwischen dem Unicastclient und dem Remote-Unicastserver. Das folgende Diagramm modelliert eine Seitenbandarchitektur, bei der der LC3-Codec im Bluetooth-Controller gehostet wird. Es ist auch gültig, dass der LC3-Codec als Teil des herstellerspezifischen Audiotreiberstapels für die Softwarecodierung und -decodierung gehostet wird. In diesem Fall würden die an den Bluetooth-Controller gesendeten Audiodaten als LC3-Audioframes statt als PCM-Audio formatiert.

Das folgende Diagramm zeigt eine Randband-Bluetooth LE-Audioarchitektur mit einem LC3-Codec im Bluetooth-Controller.

Diagramm der Bluetooth LE-Audioarchitektur mit dem LC3-Codec, der sich im Bluetooth-Controller befindet.

Das folgende Diagramm zeigt eine Sideband-Bluetooth LE-Audioarchitektur mit einem LC3-Codec im Audiotreiberstapel.

Diagramm der Randband-Bluetooth LE-Audioarchitektur mit LC3-Codec im Audiotreiberstapel.

Sideband Bluetooth LE Audio-Architektur mit Audioausladung

Eine Seitenbandarchitektur mit Audioauslagerung umfasst eine DSP-Audio-Hardwarekomponente, um eine Bluetooth LE Audio-Streaminglösung mit Energiesparvorteilen bereitzustellen. Die folgenden Diagramme veranschaulichen eine mögliche Architektur mit dem LC3-Codec im Bluetooth-Controller und dem Codec im Audio-DSP.

Das folgende Diagramm zeigt ein Sideband Bluetooth LE Audio mit Audio offload-Architektur mit einem LC3-Codec im Bluetooth-Controller.

Diagramm: Sideband Bluetooth LE Audio mit Audio offload-Architektur mit LC3-Codec im Bluetooth-Controller.

Das folgende Diagramm zeigt eine Randband-Bluetooth LE-Audio-Architektur mit Audioauslagerungsarchitektur mit einem LC3-Codec im Audio-DSP.

Diagramm der Seitband-Bluetooth LE-Audio mit Audio offload-Architektur mit LC3-Codec im Audio-DSP.

Herstellerspezifische Inband-Bluetooth LE-Audioarchitektur

Die VSAP-Inbandarchitektur ermöglicht es einer benutzerdefinierten Pipeline, Bluetooth LE-Audiodaten vom herstellerspezifischen Audiotreiberstapel an die HCI des Bluetooth-Controllers zu senden und zu empfangen. Diese Architektur enthält eine neue Komponente, die "IHV ISO Merge Component". Diese Komponente ist für die Verwaltung der Flusssteuerung für die ISO-Daten zuständig. Außerdem muss die HCI-Befehlsflusssteuerung mit dem Windows Bluetooth Core Stack gemeinsam verwendet werden, wenn HCI-Befehle gesendet werden müssen.

Das folgende Diagramm zeigt eine herstellerspezifische Inband-Bluetooth LE-Audioarchitektur.

Diagramm der herstellerspezifischen Inband-Bluetooth LE-Audioarchitektur.

Detaillierter Entwurf

Anforderungen an das Audioformat

Dauer des Audioframes

Die Bluetooth LE-Audioprofile ermöglichen implementierungen die Unterstützung von Audiostreaming mit Audioframedauern von entweder 7,5 Millisekunden oder 10 Millisekunden. Windows erfordert die von IHVs bereitgestellten Codecs, um beide Framedauern zu unterstützen, um die Interoperabilität mit Bluetooth LE Audio-Zubehörgeräten und eine hochwertige Koexistenz mit anderen Bluetooth LE-Geräten sicherzustellen, die mit dem System verbunden sind.

Definitionen des Signalverarbeitungsmodus

Bluetooth LE Audio unterstützt eine Vielzahl von Streamingformaten, um verschiedene Benutzerszenarien zu unterstützen. Die BAP- und TMAP-Spezifikationen definieren obligatorische unterstützte Formate für die Zertifizierung. Windows wendet Audiosignalverarbeitungsmodi an, um das zu verwendende Format mit dem szenario zu korrelieren, das vom System ausgeführt wird. Audiotreiber, die Bluetooth LE Audio unterstützen, müssen die Unterstützung für die Signalverarbeitungsmodi und -formate in der folgenden Tabelle angeben. Darüber hinaus unterstützt Bluetooth LE Audio den Rohdatenverarbeitungsmodus nicht, sodass Audiotreiber keine unterstützten Formate für diesen Modus ankündigen dürfen.

Rendern von Audiosignalverarbeitungsmodi

Bluetooth LE Audio erfordert render-Audioformate, die für die folgenden Signalverarbeitungsmodi deklariert werden müssen:

  • Standard (AUDIO_SIGNALPROCESSINGMODE_DEFAULT)
    • Dieser Modus wird für unidirektionale Renderszenarien wie Musikwiedergabe, Benachrichtigungen und Videospielaudio verwendet.
  • Kommunikation (AUDIO_SIGNALPROCESSINGMODE_COMMUNICATIONS)
    • Dieser Modus wird für bidirektionale Szenarien wie Sprachanrufe verwendet.

Die folgenden Tabellen enthalten Eine Liste der Formate für jeden Anwendungsfall und signalverarbeitungsmodus. Audioformate werden von den am meisten bevorzugten bis zu den am wenigsten bevorzugten geordnet.

Systemsounds, Musikwiedergabe und Videospielaudio, wenn sie mit einem Stereogerät oder einem koordinierten Satz von Geräten verbunden sind

Signalverarbeitungsmodus: Standard

Stichprobenhäufigkeit Kanalanzahl Bittiefe Framedauer Audiodatenrate Konfigurations-ID des BAP-Codecs (Tabelle 3.11 der BAP-Spezifikation)
48 kHz 2 16 7,5 ms 96 KBit/s 48_3
48 kHz 2 16 7,5 ms 80 KBit/s 48_1
48 kHz 2 16 10 ms 96 KBit/s 48_4
48 kHz 2 16 10 ms 80 KBit/s 48_2
24 kHz 2 16 7,5 ms 48 KBit/s 24_1
24 kHz 2 16 10 ms 48 KBit/s 24_2
Systemsounds, Musikwiedergabe und Videospielaudio, wenn sie mit einem einzelnen Mitglied eines koordinierten Satzes verbunden sind (einzelner Ohrhörer oder Hörgerät)

Signalverarbeitungsmodus: Standard

Stichprobenhäufigkeit Kanalanzahl Bittiefe Framedauer Audiodatenrate Konfigurations-ID des BAP-Codecs (Tabelle 3.11 der BAP-Spezifikation)
48 kHz 1 16 7,5 ms 96 KBit/s 48_3
48 kHz 1 16 7,5 ms 80 KBit/s 48_1
48 kHz 1 16 10 ms 96 KBit/s 48_4
48 kHz 1 16 10 ms 80 KBit/s 48_2
24 kHz 1 16 7,5 ms 48 KBit/s 24_1
24 kHz 1 16 10 ms 48 KBit/s 24_2
16 kHz 1 16 7,5 ms 32 KBit/s 16_1
16 kHz 1 16 10 ms 32 KBit/s 16_2
Rendern von Sprachrekorder, VOIP-Anrufen oder Videospielaudio mit Sprachchat

Signalverarbeitungsmodus: Kommunikation

Stichprobenhäufigkeit Kanalanzahl Bittiefe Framedauer Audiodatenrate Konfigurations-ID des BAP-Codecs (Tabelle 3.11 der BAP-Spezifikation)
32 kHz 1 16 7,5 ms 64 KBit/s 32_1
32 kHz 1 16 10 ms 64 KBit/s 32_2
24 kHz 1 16 7,5 ms 48 KBit/s 24_1
24 kHz 1 16 10 ms 48 KBit/s 24_2
16 kHz 1 16 7,5 ms 32 KBit/s 16_1
16 kHz 1 16 10 ms 32 KBit/s 16_2
Erfassen von Audiosignalverarbeitungsmodi für Den Datenstrom

Bluetooth LE Audio erfordert, dass Audio-Aufnahmeformate für den Standardsignalverarbeitungsmodus (AUDIO_SIGNALPROCESSINGMODE_DEFAULT) deklariert werden. Die Liste der unterstützten Aufnahmeformate ist in der folgenden Tabelle aufgeführt.

Audioformate werden von den am meisten bevorzugten bis zu den am wenigsten bevorzugten geordnet.

Aufzeichnen von Sprachrekorder, VOIP-Anrufen oder Videospielaudio mit Sprachchat

Signalverarbeitungsmodus: Standard

Stichprobenhäufigkeit Kanalanzahl Bittiefe Framedauer Audiodatenrate Konfigurations-ID des BAP-Codecs (Tabelle 3.11 der BAP-Spezifikation)
32 kHz 1 16 7,5 ms 64 KBit/s 32_1
32 kHz 1 16 10 ms 64 KBit/s 32_2
24 kHz 1 16 7,5 ms 48 KBit/s 24_1
24 kHz 1 16 10 ms 48 KBit/s 24_2
16 kHz 1 16 7,5 ms 32 KBit/s 16_1
16 kHz 1 16 10 ms 32 KBit/s 16_2

Definierte Streamkonfigurationen und Topologien

Reine Renderkonfigurationen
Grundlegende Audioprofilkonfiguration 1

Die folgende Audiokonfiguration ist in Tabelle 4.1 der Bluetooth BAP-Spezifikation definiert.

Diagramm, das die grundlegende Konfiguration des Audioprofils 1 veranschaulicht.

Der PC ist mit einem einzelnen Audiogerät verbunden, das Monostreams unterstützt. Das einzelne Gerät kann ein eigenständiges Gerät oder ein einzelnes verbundenes Mitglied einer koordinierten Gruppe sein.

Anwendungsbeispiele Windows-Audioeinstellungen Einstellungen des Bluetooth-Controllers
Medienwiedergabe Rendern:
Signalverarbeitungsmodus: Standard
Kanalanzahl: 1
Erfassung: Keine
CIS-Anzahl: 1
CIG-Anzahl: 1
BAP QoS-Einstellungen: Hohe Zuverlässigkeit
Sprachanruf ohne Mikrofon auf einem Audiogerät Rendern:
Signalverarbeitungsmodus: Kommunikation
Kanalanzahl: 1
Erfassung: Keine
CIS-Anzahl: 1
CIG-Anzahl: 1
BAP QoS-Einstellungen: Geringe Latenz
Wiedergabe von Videospielen Rendern:
Signalverarbeitungsmodus: Standard
Kanalanzahl: 1
Erfassung: Keine
CIS-Anzahl: 1
CIG-Anzahl: 1
BAP QoS-Einstellungen: Geringe Latenz
Grundlegende Audioprofilkonfiguration 4

Die folgende Audiokonfiguration ist in Tabelle 4.1 der Bluetooth BAP-Spezifikation definiert.

Diagramm, das die grundlegende Konfiguration des Audioprofils 4 veranschaulicht.

Der PC ist mit einem einzelnen Audiogerät verbunden, das Stereostreams unterstützt. Das Audiogerät kann zwei Audiokanäle auf einem cis verarbeiten.

Anwendungsbeispiele Windows-Audioeinstellungen Einstellungen des Bluetooth-Controllers
Medienwiedergabe Rendern: Signalverarbeitungsmodus: Standard
Kanalanzahl: 2
Erfassung: Keine
CIS-Anzahl: 1
CIG-Anzahl: 1
BAP QoS-Einstellungen: Hohe Zuverlässigkeit Audiokanalzuordnung: Vorne links und vorne rechts
Wiedergabe von Videospielen Signalverarbeitungsmodus: Standard
Kanalanzahl: 2
Erfassung: Keine
CIS-Anzahl: 1
CIG-Anzahl: 1
BAP QoS-Einstellungen: Geringe Latenz
Audiokanalzuordnung: Vorne links und vorne rechts
Grundlegende Audioprofilkonfiguration 6(i)

Die folgende Audiokonfiguration ist in Tabelle 4.1 der Bluetooth BAP-Spezifikation definiert.

Diagramm, das die grundlegende Konfiguration des Audioprofils 6 I veranschaulicht.

Der PC ist mit einem einzelnen Audiogerät verbunden, das Stereostreams unterstützt. Das Audiogerät kann nur einen Audiokanal auf jedem der beiden CIS verarbeiten.

Anwendungsbeispiele Windows-Audioeinstellungen Einstellungen des Bluetooth-Controllers
Medienwiedergabe Signalverarbeitungsmodus: Standard
Kanalanzahl: 2
Erfassung: Keine
CIS-Anzahl: 2
CIG-Anzahl: 1
BAP QoS-Einstellungen: Hohe Zuverlässigkeit
Sprachanruf ohne Mikrofon auf einem Audiogerät Signalverarbeitungsmodus: Kommunikation
Kanalanzahl: 1
Erfassung: Keine
CIS-Anzahl: 2
CIG-Anzahl: 1
BAP QoS-Einstellungen: Geringe Latenz
Audiokanalzuordnung: Entweder vorne links oder vorne rechts
Wiedergabe von Videospielen Signalverarbeitungsmodus: Standard
Kanalanzahl: 2
Erfassung: Keine
CIS-Anzahl: 2
CIG-Anzahl: 1
BAP-QoS-Einstellungen: Geringe Latenz
Audiokanalzuordnung: Vorne links und vorne rechts
Grundlegende Audioprofilkonfiguration 6(ii)

Die folgende Audiokonfiguration ist in Tabelle 4.1 der Bluetooth BAP-Spezifikation definiert.

Diagramm zur Veranschaulichung der grundlegenden Audioprofilkonfiguration 6 II.

Der PC ist mit einem koordinierten Satz von Audiogeräten verbunden. Die Gruppe kann zwei Audiokanäle verarbeiten, wobei jeder Member einen einzelnen Kanal verarbeitet.

Anwendungsfallbeispiele Windows-Audioeinstellungen Einstellungen des Bluetooth-Controllers
Medienwiedergabe Signalverarbeitungsmodus: Standard
Kanalanzahl: 2
Erfassung: Keine
CIS-Anzahl: 2
CIG-Anzahl: 1
BAP-QoS-Einstellungen: Hohe Zuverlässigkeit
Sprachanruf ohne Mikrofon auf einem Gerät Signalverarbeitungsmodus: Kommunikation
Kanalanzahl: 1
Erfassung: Keine
CIS-Anzahl: 2
CIG-Anzahl: 1
BAP-QoS-Einstellungen: Geringe Latenz
Wiedergabe von Videospielen Signalverarbeitungsmodus: Standard
Kanalanzahl: 2
Erfassung: Keine
CIS-Anzahl: 2
CIG-Anzahl: 1
BAP-QoS-Einstellungen: Geringe Latenz
Bidirektionale Konfigurationen

Bidirektionale Konfigurationen werden verwendet, wenn das Bluetooth LE-Audioprofil erkennt, dass eine Anwendung sowohl einen Aufnahme- als auch einen Renderstream auf ein Remotegerät oder eine Gruppe von Geräten erstellen möchte. Da Anwendungen aufzeichnungs- und renderdatenströme separat steuern, müssen IHV-Audiotreiber und Bluetooth-Controller den Audiofluss über eine einzelne Richtung eines bidirektionalen CIS ermöglichen, nachdem es mit den HCI-Befehlen Configure Data Path und LE Setup ISO Data Path bereitgestellt wurde.

Grundlegende Audioprofilkonfiguration 3

Die folgende Audiokonfiguration ist in Tabelle 4.1 der Bluetooth BAP-Spezifikation definiert.

Diagramm zur Veranschaulichung der Konfiguration des grundlegenden Audioprofils 3.

Der PC ist mit einem einzelnen Audiogerät mit einem bidirektionalen Monostream verbunden, der auf einem einzelnen CIS eingerichtet ist.

Anwendungsfall Windows-Audioeinstellungen Einstellungen des Bluetooth-Controllers
Anruf Erbringen:
Signalverarbeitungsmodus: Kommunikation
Kanalanzahl: 1
Erfassen:
Signalverarbeitungsmodus: Standard
Kanalanzahl: 1
CIS-Anzahl: 1
CIG-Anzahl: 1
BAP-QoS-Einstellungen: Geringe Latenz
Wiedergabe von Videospielen mit Sprachchat Erbringen:
Signalverarbeitungsmodus: Kommunikation
Kanalanzahl: 1
Erfassen:
Signalverarbeitungsmodus: Standard
Kanalanzahl: 1
CIS-Anzahl: 1
CIG-Anzahl: 1
BAP-QoS-Einstellungen: Geringe Latenz
Grundlegende Audioprofilkonfiguration 8(i)

Die folgende Audiokonfiguration ist in Tabelle 4.1 der Bluetooth BAP-Spezifikation definiert.

Diagramm zur Veranschaulichung der grundlegenden Audioprofilkonfiguration 8 I.

Der PC ist mit einem einzelnen Audiogerät verbunden, das Stereo-Renderstreams und Monoaufnahmestreams unterstützt. Das Gerät ist in der Lage, einen Audiokanal auf einem einzelnen CIS für eine bestimmte Richtung zu verarbeiten.

Anwendungsfall Windows-Audioeinstellungen Einstellungen des Bluetooth-Controllers
Anruf Erbringen:
Signalverarbeitungsmodus: Kommunikation
Kanalanzahl: 1
Erfassen:
Signalverarbeitungsmodus: Standard
Kanalanzahl: 1
CIS-Anzahl: 2
CIG-Anzahl: 1
BAP-QoS-Einstellungen: Geringe Latenz
Wiedergabe von Videospielen mit Sprachchat Erbringen:
Signalverarbeitungsmodus: Kommunikation
Kanalanzahl: 2
Erfassen:
Signalverarbeitungsmodus: Standard
Kanalanzahl: 1
CIS-Anzahl: 2
CIG-Anzahl: 1
BAP-QoS-Einstellungen: Geringe Latenz
Grundlegende Audioprofilkonfiguration 8(ii)

Die folgende Audiokonfiguration ist in Tabelle 4.1 der Bluetooth BAP-Spezifikation definiert.

Diagramm zur Veranschaulichung der grundlegenden Audioprofilkonfiguration 8 II.

Der PC ist mit einem koordinierten Satz von Audiogeräten verbunden. Jedes Setelement empfängt einen Kanal mit Renderaudio. Ein einzelnes Setmember verfügt über einen eingerichteten Erfassungsdatenstrom. Das Setmember mit dem Erfassungsdatenstrom ist das erste Setelement, das eine Verbindung mit dem PC herstellt, der auch Aufzeichnungsstreams unterstützt.

Anwendungsfall Windows-Audioeinstellungen Einstellungen des Bluetooth-Controllers
Anruf Erbringen:
Signalverarbeitungsmodus: Kommunikation
Kanalanzahl: 1
Erfassen:
Signalverarbeitungsmodus: Standard
Kanalanzahl: 1
CIS-Anzahl: 2
CIG-Anzahl: 1
BAP-QoS-Einstellungen: Geringe Latenz
Wiedergabe von Videospielen mit Sprachchat Erbringen:
Signalverarbeitungsmodus: Kommunikation
Kanalanzahl: 2
Erfassen:
Signalverarbeitungsmodus: Standard
Kanalanzahl: 1
CIS-Anzahl: 2
CIG-Anzahl: 1
BAP-QoS-Einstellungen: Geringe Latenz
Konfigurationen, die nur erfasst werden
Grundlegende Audioprofilkonfiguration 2

Die folgende Audiokonfiguration ist in Tabelle 4.1 der Bluetooth BAP-Spezifikation definiert.

Diagramm zur Veranschaulichung der grundlegenden Audioprofilkonfiguration 2.

Der PC ist mit einem einzelnen Audiogerät verbunden, das Mono-Aufnahmestreams unterstützt.

Anwendungsfall Windows-Audioeinstellungen Einstellungen des Bluetooth-Controllers
Sprachanruf ohne Sprecher auf dem Gerät Rendern: Keine
Erfassen:
Signalverarbeitungsmodus: Standard
Kanalanzahl: 1
CIS-Anzahl: 1
CIG-Anzahl: 1
BAP-QoS-Einstellungen: Geringe Latenz
Grundlegende Audioprofilkonfiguration 9(i)

Die folgende Audiokonfiguration ist in Tabelle 4.1 der Bluetooth BAP-Spezifikation definiert.

Diagramm zur Veranschaulichung der grundlegenden Audioprofilkonfiguration 9 I.

Der PC ist mit einem einzelnen Audiogerät verbunden, das das Senden von Stereoaudiodaten unterstützt. Das Gerät kann einen Audiokanal auf einem einzelnen CIS codieren.

Anwendungsfall Windows-Audioeinstellungen Einstellungen des Bluetooth-Controllers
Mehrkanal-Mikrofonaufnahme Rendern: Keine
Erfassen:
Signalverarbeitungsmodus: Standard
Kanalanzahl: 1
CIS-Anzahl: 2
CIG-Anzahl: 1
BAP-QoS-Einstellungen: Geringe Latenz
Grundlegende Audioprofilkonfiguration 9(ii)

Der PC ist mit einem einzelnen Audiogerät verbunden, das Mono-Aufnahmestreams unterstützt.

Die folgende Audiokonfiguration ist in Tabelle 4.1 der Bluetooth BAP-Spezifikation definiert.

Diagramm der grundlegenden Audioprofilkonfiguration 9(ii) mit einem PC, der an ein einzelnes Audiogerät angeschlossen ist.

Der PC ist mit einer Reihe von Audiogeräten verbunden. Jedes Setmitglied sendet einen Audiokanal an den PC.

Anwendungsfall Windows-Audioeinstellungen Einstellungen des Bluetooth-Controllers
Mehrkanal-Mikrofonaufnahme Rendern: Keine
Erfassen:
Signalverarbeitungsmodus: Standard
Kanalanzahl: 1
CIS-Anzahl: 2
CIG-Anzahl: 1
BAP-QoS-Einstellungen: Geringe Latenz

Wenn das Remotegerät oder der Gerätesatz bidirektionale Audiodaten unterstützt, sind die Konfigurationen für einen aufzeichnungsgeschützten Datenstrom identisch mit bidirektionalen Konfigurationen. Dies ermöglicht Übergänge von Szenarien, die nur erfasst werden, zu bidirektionalen Szenarien, ohne dass die Streams neu erstellt werden müssen.

Datenstrukturen

Von Microsoft definierte Bluetooth LE-Audioschnittstelleneigenschaften

Eigenschaften für die Streamerstellung

Die folgenden Eigenschaften werden zwischen dem herstellerspezifischen Audiotreiberstapel und dem Bluetooth LE-Audioprofil über die ACXOBJECTBAG-DDIs gemeinsam genutzt, um Entscheidungen zur Erstellung und Konfiguration des Streamendpunkts zu treffen, wie im Szenario "Streamerstellung" gezeigt.

BluetoothLEAudio_CodecCapabilities

Diese Eigenschaft wird vom Audiotreiber festgelegt, um die Unterstützung für Audiostreamingfunktionen anzugeben, die im Audiotreiber oder Audio-DSP unterstützt werden. Der Eigenschaftswert wird mithilfe von DDI AcxObjectBagAddBlob festgelegt, und das Format des Werts entspricht einem PAC-Datensatz, wie in der PACS-Spezifikation definiert.

Das Windows Bluetooth LE-Audioprofil liest die -Eigenschaft, um die möglichen Codeckonfigurationen und die zu verwendende Streamkomposition zu bestimmen.

Feld Oktett
Anzahl der Funktionen 0
Codec-ID[i] 1-6
Länge der codecspezifischen Funktionen[i] 7
Codec-spezifische Funktionen 8... n
Metadatenlänge (m) n + 1
Metadaten n+2... M

Feldwerte werden in den Tabellen 3.2 und 3.4 der PACS-Spezifikation definiert.

Bluetooth_DatapathID

Diese Eigenschaft wird vom Audiotreiber festgelegt, um die Datenpfad-ID anzugeben, die als Parameter für die Befehle HCI_LE_Setup_ISO_Data_Path und HCI_Configure_Data_Path verwendet wird. Der -Eigenschaftswert wird mithilfe des AcxObjectBagAddUI8-DDI festgelegt.

Das Bluetooth LE-Audioprofil liest und verwendet diese Eigenschaft als Parameter in HCI_Configure_Data_Path- und HCI_LE_Setup_ISO_Data_Path-Befehlen. Diese ID wird für alle isochronen Datenströme angewendet, die für den ACXSTREAM erstellt wurden, der dem Objektbehälter zugeordnet ist.

Feld Oktett
Datenpfad-ID 0

Wenn die Eigenschaft nicht vom Audiotreiber festgelegt wird, verwendet das Betriebssystem den Wert 1 als Parameter für die HCI-Befehle.

Bluetooth_DatapathConfiguration

Diese Eigenschaft wird vom Audiotreiber festgelegt, um dem Bluetooth-Controller über den Befehl HCI_Configure_Data_Path herstellerspezifische Konfigurationen bereitzustellen. Er darf nicht größer als 255 Byte sein. Dies ist die größte Nutzlast, die ein Bluetooth-Controller für einen HCI-Befehl akzeptiert. Der -Eigenschaftswert wird mithilfe des AcxObjectBagAddBlob-DDI festgelegt. Diese Konfiguration wird auf alle Datenpfad-ID angewendet, die vom Audiotreiber festgelegt wurde.

BluetoothLEAudio_CodecConfiguration

Diese Eigenschaft muss vom Bluetooth LE-Audioprofil mithilfe des DDI AcxObjectBagAddBlob festgelegt werden, nachdem die Codeckonfiguration mit einem Audiogerät konfiguriert wurde. Die Struktur des Werts lautet:

Feld Oktett
Anzahl der Konfigurationen 0
Codierungsformat[i] 3
Unternehmens-ID[i] 1 - 2
Anbieterspezifische Codec-ID[i] 3–4
Codecspezifische Konfigurationslänge[i] 5
Codec-spezifische Konfiguration[i] 6... n

Feldwerte werden in Tabelle 4.3 der Bluetooth Audio Stream Control Service-Spezifikation definiert.

Der herstellerspezifische Audiotreiberstapel sollte diese Eigenschaft lesen, wenn sich der LC3-Codec im ACX-Streamingtreiber oder Audio-DSP befindet.

Schnittstellen

Bindungs-IDs für Audioendpunktvorlagen

Wird von der ACX-Leitungsfactory des Audiotreibers verwendet, um zu wissen, wann eine ACX-Leitung für ein gekoppeltes Bluetooth-Gerät erstellt wird.

Die folgenden Komponenten-IDs werden verwendet, um Bluetooth LE-Audioschaltungen zu erstellen:

// {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);

Bluetooth LE Audio-Unterstützungsschnittstelle

Wird vom Audiotreiberstapel verwendet, um anzugeben, dass er für das Streaming von Bluetooth LE-Audio verfügbar ist. Windows Bluetooth Audio service level watch für diese Schnittstelle und warten Sie, bis sie veröffentlicht wird, bevor Sie bluetooth LE Audio-Unterstützung aktivieren.

Die folgenden Schnittstellen-IDs werden verwendet, um die Bluetooth LE Audio-Unterstützungsschnittstelle zu veröffentlichen:

// {BA02FA1B-0FD0-4A0F-A748-4FAE2E2D2F67}
DEFINE_GUID(GUID_BLUETOOTH_LEAUDIO_SUPPORT_INTERFACE, 
0xba02fa1b, 0x0fd0, 0x4a0f, 0xa7, 0x48, 0x4f, 0xae, 0x2e, 0x2d, 0x2f, 0x67);

Sequenzen

Initialisierung des Audiotreibers

Wenn der IHV ACX Streaming-Treiber lädt und feststellt, dass er Bluetooth LE-Audiostreaming unterstützt, muss die Unterstützung für die Technologie angezeigt werden, indem ein ACXFACTORYCIRCUIT-Objekt erstellt und für Bluetooth-Vorlagenbindungen mit ACX mithilfe der IDs registriert wird, die in der Bindungs-IDs für Audioendpunktvorlagen definiert sind.

Flussdiagramm zur Veranschaulichung der Initialisierungssequenz des Bluetooth LE Audio-Treibers.

Endpunkterstellung

  1. Wenn ein LE-Audiogerät mit dem System gekoppelt ist, wird das Bluetooth LE-Audioprofil:
    1. Liest die veröffentlichten Audiofunktionen des Remotegeräts.
    2. Ermittelt die vom Controller unterstützten Funktionen, indem die Befehle HCI_Read_Local_Support_Codecs [v2] und HCI_Read_Local_Supported_Codec_Capabilities gesendet werden.
    3. Erstellt eine ACXCIRCUIT mit den unterstützten Formaten, die auf den Codecfunktionen basieren, die vom Bluetooth-Controller und dem Remoteaudiogerät unterstützt werden. Wenn der Controller keine Codecs unterstützt, da codec-Unterstützung im Audio-DSP oder Audiotreiber vorhanden ist, werden die unterstützten Formate auf die formate festgelegt, die vom Remoteaudiogerät unterstützt werden.
  2. Nachdem der ACXCIRCUIT erstellt wurde, fordert ACX die ACX-Leitungsfactory des IHV ACX-Streamingtreibers an, um eine ACXCIRCUIT-Instanz für die Streamverarbeitung zu erstellen.
  3. Wenn eine Anforderung zum Erstellen einer Verbindung empfangen wird, wird der IHV ACX-Streamingtreiber:
    1. Erstellt ACXCIRCUIT-, ACXPIN-, ACXOBJECTBAG- und ACXSTREAMBRIDGE-Objekte .
    2. Wenn der LC3- oder anbieterspezifische Codec im Audiotreiber oder DSP gehostet wird, legt der IHV ACX-Streamingtreiber die BluetoothLEAudio_CodecCapabilities-Eigenschaft auf dem ACXOBJECTBAG fest.
    3. Der IHV ACX-Streamingtreiber kann Bluetooth_DatapathID oder Bluetooth_DatapathConfiguration für acxobjectbag festlegen, wenn es zu diesem Zeitpunkt bekannt ist.
  4. Nachdem beide Leitungen erstellt wurden, ruft ACX den EvtAcxPinConnected-Rückruf auf dem Bridge-Pin des IHV ACX-Treibers auf.
  5. Wenn evtAcxPinConnected-Rückruf aufgerufen wird, wird der IHV ACX-Streamingtreiber aufgerufen:
    1. Ruft den Bridge-Pin der Profilschaltung mit AcxTarget... ab. APIs zum Abrufen der von der Profilschaltung unterstützten Formate.
    2. Durchläuft die Liste der ACXDATAFORMAT-Elemente, die von der Profilschaltung festgelegt werden. Wenn der Bluetooth-Audiocodec im Audiotreiber oder Audio-DSP gehostet wird, aktualisiert der IHV-Audiotreiber seine ACXDATAFORMATsmit den Formaten, die von der Codec- und Profilschaltung unterstützt werden. Andernfalls werden alle Formate auf den Hostpin des IHV ACX-Streamingtreibers kopiert.
    3. Legt die aktualisierte Formatliste auf der Bridge-Pin fest, wenn eine Audio-Engine für das Auslagerungsstreaming erstellt wird.
  6. Nachdem die Formate aktualisiert wurden, aktiviert ACX beide Schnittstellen, und es wird ein Audioendpunkt erstellt.

Flussdiagramm, das den Erstellungsprozess des Bluetooth LE-Audioendpunkts darstellt.

Streamerstellung

  1. Wenn eine Anwendung die Erstellung eines Audiodatenstroms anfordert, ruft ACX die registrierten EvtCircuitCreateStream-Rückrufe für jede Verbindung auf, beginnend mit dem IHV ACX-Streamingtreiber.
  2. Wenn der EvtCircuitCreateStream-Rückruf aufgerufen wird, wird der IHV ACX-Streamingtreiber:
    1. Legt die eigenschaften Bluetooth_DatapathId und Bluetooth_DataPathConfiguration für acxobjectbag fest, die an ACXSTREAMBRIDGE angefügt sind, oder aktualisiert sie.
    2. Erstellt einen ACXSTREAM mit Rückrufen, die für Streamstatusübergänge und RT-Datenstromverarbeitung festgelegt sind
    3. Erstellt ein Audio-Engine-Element im Stream, wenn die Audiopipeline das Auslagerungsstreaming unterstützt.
    4. Fügt acXSTREAM der Streambrücke hinzu. Dadurch wird der EvtCircuitCreateStream-Rückruf des Bluetooth LE-Audioprofils aufgerufen.
  3. Wenn der EvtAcxCircuitCreateStream-Rückruf aufgerufen wird, wird das Bluetooth LE-Audioprofil:
    1. Speichert die Eigenschaften lokal aus dem ACXOBJECTBAG,das vom IHV ACX-Streamingtreiber für zukünftige Streamübergangsrückrufe festgelegt wurde.
    2. Wenn der Audioendpunkt für das Unicaststreaming des Bluetooth LE-Audioprofils vorgesehen ist:
      1. Führt den Konfigurationscodecvorgang wie in der BAP-Spezifikation definiert aus. Die Parameter für den Vorgang werden vom ACXDATAFORMAT abgeleitet, das im EvtAcxCircuitCreateStream-Rückruf angegeben ist, und entweder von den anderen Streamparametern in ACXOBJECTBAG oder den vom Bluetooth-Controller unterstützten Codecfunktionen.
      2. Legt die BluetoothLEAudio_CodecConfiguration-Eigenschaft für ACXOBJECTBAG mit dem Wert fest, der zum Konfigurieren der Remoteaudiogeräte verwendet wird.
  4. Wenn der IHV ACX-Streamingtreiber seine Datenpfad-ID oder Datenpfadkonfiguration basierend auf den vom Profil festgelegten Objektbehälterwerten aktualisieren muss, kann er die KSPROPERTY-Setvorgänge aufrufen, um den von der Profilschaltung gespeicherten Wert zu aktualisieren.
    1. Erstellt einen ACXSTREAM mit Rückrufen, die für Streamzustandsübergänge festgelegt sind.

Flussdiagramm, das den Erstellungsprozess des Bluetooth LE-Audiostreams zeigt.

Streamzustandsübergänge

ACX entscheidet die Leitungsreihenfolge der Streamzustandsübergänge basierend auf dem Audiofluss und ob der Zustand in einen aktiveren oder weniger aktiven Zustand wechselt.

  • Bei Renderdatenströmen, die von einem weniger aktiven Zustand zu einem aktiveren Zustand wechseln, empfängt die Profilschaltung zuerst das Ereignis, gefolgt von der Streamingschaltung.
  • Bei Renderdatenströmen, die von einem aktiveren Zustand zu einem weniger aktiven Zustand wechseln, empfängt die Streamingschaltung zuerst das Ereignis, gefolgt von der Profilschaltung. 
  • Bei Capture-Streams, die von einem weniger aktiven Zustand zu einem aktiveren Zustand wechseln, empfängt die Streamingschaltung zuerst das Ereignis, gefolgt von der Profilschaltung. 
  • Bei Capture-Streams, die von einem aktiveren Zustand zu einem weniger aktiven Zustand wechseln, empfängt die Profilschaltung mit zuerst das Ereignis, gefolgt von der Streamingschaltung.

Vorbereiten des Datenstroms

Wenn der EvtAcxStreamPrepareHardware-Rückruf aufgerufen wird, wird das Bluetooth LE-Audioprofil:

  1. Ordnet Ressourcen für einen Unicastdatenstrom wie folgt zu:
    1. Konfigurieren einer CIG mit dem Befehl HCI_LE_Set_CIG_Parameters
    2. Senden des QoS-Vorgangs für die ASCS-Konfiguration, um Einstellungen mit dem Remotegerät zu synchronisieren.

Flussdiagramm zur Veranschaulichung der Vorbereitung des Bluetooth LE-Audiostreams für eine Profilschaltung.

Wenn der EvtAcxStreamPrepareHardware-Rückruf aufgerufen wird, ordnet der IHV ACX-Streamingtreiber die erforderlichen Streamingressourcen zu und initialisiert die Audiopipeline so, dass sie den abgerufenen Zustand aufweist.

Flussdiagramm, das die Vorbereitung des Bluetooth LE-Audiostreams für eine Streamingschaltung darstellt.

Starten des Datenstroms

Wenn der EvtAcxStreamRun-Rückruf aufgerufen wird, wird das Bluetooth LE-Audioprofil:

  1. Wendet alle Datenpfadkonfigurationseinstellungen an, die vom ACX-Streamingtreiber in der Streamerstellungsprozedur mit dem Befehl HCI_Configure_Data_Path festgelegt werden.
  2. Startet die Streamstartprozedur wie folgt:
    1. Ausführen der BAP-Unicaststream-Aktivierungsprozedur für einen Unicastdatenstrom:
      1. Senden des Enable-Vorgangs an die Remoteendpunkte.
      2. Erstellen von CISes, wenn sie noch nicht mit dem Befehl HCI_LE_Create_CIS erstellt wurden.
  3. Wenn der Datenpfad noch nicht konfiguriert ist, gilt für das Bluetooth LE-Audioprofil Folgendes:
    1. Erstellt die ISO-Datenpfade mithilfe des Befehls HCI_LE_Setup_ISO_Data_Path
      1. Wenn der IHV ACX-Streamingtreiber die eigenschaft BluetoothLEAudio_CodecCapabilities festlegt, wird der Wert des felds Codec_ID in HCI_LE_Setup_ISO_Data_Path auf transparent (0x3) festgelegt, wie in bluetooth assigned Numbers definiert. Andernfalls muss der Wert mit der Codec-ID identisch sein, die im Konfigurationscodec-Vorgang in der Streamerstellungsprozedur verwendet wird.
  4. Wenn es sich beim Audiodatenstrom um einen Unicastaufnahmedatenstrom handelt, führt das Bluetooth LE Audio-Profil den Startvorgang des BAP-Empfängers aus.

Flussdiagramm, das den Startvorgang des Bluetooth LE-Audiostreams für eine Profilleitung zeigt.

Wenn der EvtAcxStreamRun-Rückruf aufgerufen wird, beginnt der IHV ACX-Streamingtreiber mit der Verarbeitung eingehender Audiodaten vom Windows-Audiosystem (Rendern) oder vom Bluetooth-Controller (Aufzeichnung).

Flussdiagramm, das den Startvorgang des Bluetooth LE-Audiostreams für eine Streamingleitung veranschaulicht.

Stream anhalten

Wenn der EvtAcxStreamPause-Rückruf aufgerufen wird, wird das Bluetooth LE Audio-Profil:

  1. Führt die Deaktivierung des BAP-Unicaststreams aus.
  2. Entfernt den ISO-Datenpfad mithilfe des Befehls HCI_LE_Remove_ISO_Data_Path.
  3. Führt die Prozedur zum Beenden des ASCS-Empfängers aus, wenn es sich bei dem Audiodatenstrom um einen Unicastaufnahmedatenstrom handelt.

Flussdiagramm, das den Bluetooth LE Audio-Stream pausing-Prozess für eine Profilleitung darstellt.

Wenn der EvtAcxStreamPause-Rückruf aufgerufen wird, hält der IHV ACX-Streamingtreiber seine Audioverarbeitungspipeline an.

Flussdiagramm, in dem der Bluetooth LE Audio-Stream für eine Streamingschaltung angehalten wird.

Releasestream

Wenn der EvtAcxStreamReleaseHardware-Rückruf aufgerufen wird, führt das Bluetooth LE-Audioprofil die BAP-Unicaststreamfreigabeprozedur durch:

  1. Senden des ASCS Release-Vorgangs an das Remotegerät Bluetooth LE Audio
  2. Trennen sie die CIS, wenn sie nicht von einem anderen aktiven Stream verwendet wird.
  3. Entfernen sie die CIG, wenn alle CISes getrennt sind.

Flussdiagramm, das den Bluetooth LE Audio-Stream-Freigabeprozess für eine Profilleitung veranschaulicht.

Wenn der EvtAcxStreamReleaseHardware-Rückruf aufgerufen wird, gibt der IHV ACX-Streamingtreiber seine Audiopipelineressourcen frei.

Flussdiagramm, das den Bluetooth LE Audio-Stream-Freigabeprozess für eine Streamingschaltung darstellt.

Endpunkttrennung

Das Windows Bluetooth LE Audio-Profil aktualisiert den Verbindungsstatus eines Endpunkts, wenn das Remote-Unicastgerät keine LE-ACL-Verbindung mit dem PC aufweist oder über die verfügbaren PACS-Audiokontexte meldet, dass es nicht für streaming verfügbar ist. Wenn der Endpunkt getrennt wird, ungültigt der Windows-Audiodienst alle aktiven Streams an den Endpunkt. Dies führt dazu, dass die Streampausen und Releasesequenzen auftreten.

Endpunktentfernung

Ein Bluetooth LE Audio-Endpunkt wird aus dem System entfernt, wenn entweder die Profilleitung oder die Streamingschaltung zerstört wird. Die Profilverbindung kann entfernt werden, wenn die Kopplung des Remote-Unicast-Geräts von Windows entfernt oder das Bluetooth-Funkgerät deaktiviert ist.

  1. Wenn das Windows Bluetooth LE Audio-Profil seine Verbindung entfernt, deaktiviert ACX seine Endpunktschnittstellen, um dem Windows-Audiodienst zu signalisieren, dass der Endpunkt entfernt werden soll.
  2. Wenn die Schnittstellen deaktiviert sind, ungültig macht der Windows-Audiodienst alle aktiven Streams an den Bluetooth LE Audio-Endpunkt ungültig. Dieser Vorgang führt dazu, dass die Datenstroman- und Freigaberückrufe für die Streamingverbindung aufgerufen werden.
  3. Um die Endpunktentfernung abzuschließen, ungültigt ACX die Leitung des IHV ACX-Streamingtreibers, was dazu führt, dass der WDF den Rückruf der Bereinigung der Verbindung aufruft.
  4. Wenn der Bereinigungsrückruf aufgerufen wird, gibt der IHV ACX-Streamingtreiber seine Verbindung frei.

Flussdiagramm mit dem Entfernungsprozess des Bluetooth LE Audio-Endpunkts.

Lautstärke und Stummschaltung

Die IHV ACX-Streamingschaltung sollte nur Volume- und Stummschaltungselemente enthalten, wenn der Streamingtreiber eine Audio-Engine erfordert. Bei Verwendung einer Audio-Engine müssen die Konfigurationsflags wie folgt festgelegt werden:

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.

Dies ist erforderlich, damit Bluetooth LE Audio-Endpunkte die von Bluetooth SIG definierten Lautstärke- und Mikrofonsteuerungsprofile für Lautstärke- und Stummschaltungsänderungen für Unicast-Audioendpunkte verwenden können.

Wenn das Bluetooth LE Audio-Remotegerät die Lautstärke- oder Mikrofonsteuerungsdienste nicht unterstützt oder der Endpunkt für Die Audioübertragung erstellt wird, müssen die Lautstärke- und Stummschaltungselemente in der Audio-Engine als Fallback dienen, um die Änderungsanforderungen des Audiosystems zu verarbeiten. Das Windows-Audiosystem verarbeitet Änderungen an Lautstärke und Stummschaltung. Wenn keine Audio-Engine vorhanden ist und entweder das Remotegerät die Lautstärke oder die Mikrofondienste nicht unterstützt oder der Audioendpunkt für Broadcastaudio verwendet wird.

Koexistenz von Bluetooth LE und klassischem Audio

Windows stellt sicher, dass nur klassische Audio- oder LE-Audiowiedergabe für ein gekoppeltes Bluetooth-Audiogerät aktiv ist, das beide Technologien unterstützt. Wenn LE-Audio aktiv ist, werden die Sideband-DDIs für A2DP und HFP für das Remotegerät deaktiviert, und die Profilleitung wird für den LE-Audioendpunkt erstellt. Wenn die klassische Audiowiedergabe aktiv ist, werden die Sideband-DDIs für A2DP und HFP für das Remotegerät aktiviert, und die Profilleitung wird nicht für den LE-Audioendpunkt erstellt.

Energieverwaltung

Bluetooth LE Audio hat keine Energieverwaltungsanforderungen oder Flows außerhalb des bereits von WDF definierten Bereichs.