Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье разъясняются требования и особые соображения для потоковой передачи в ядре, связанной с обходом потоковой передачи аудио Bluetooth.
Звуковой драйвер должен полностью поддерживать драйвер порта WaveRT, включая режим извлечения данных. Дополнительные сведения см. в разделе "Знакомство с драйвером порта WaveRT". Несмотря на отсутствие необходимости реализовать аппаратный аудиодвижок для обходного выхода, ориентированного на синхронное подключение (SCO), это не представляет никакого вреда.
Требования к логотипу Windows для поддержки формата включают исключение для Bluetooth.
Звуковой драйвер должен поддерживать форматы, которые возможны через боковое оборудование, обычно 8kHz mono audio streaming.
Топология
Все устройства Bluetooth Hands-Free поддерживают как запись, так и отрисовку. Звуковой драйвер должен предоставлять топологию потоковой передачи ядра (KS) для устройства Hands-Free, как показано на следующей схеме, для поддержки как воспроизведения, так и захвата.
Заметка: Разработчик звукового драйвера может выбрать, следует ли реализовать один фильтр для отслеживания и отрисовки путей или отдельных фильтров. Однако устройство HFP поддерживает только один файловый объект в интерфейсе устройства GUID_DEVINTERFACE_BLUETOOTH_HFP_SCO_HCIBYPASS. Таким образом, конструктор, использующий два фильтра, должен позволить обоим фильтрам совместно использовать один объект файла.
Узлы DAC и ADC представляют аналоговые и цифровые преобразования, но не поддерживают какие-либо свойства KS.
Узлы тома поддерживают KSPROPERTY_AUDIO_VOLUMELEVEL и KSEVENT_CONTROL_CHANGE путем отправки IOCTLs SETVOLUME и GETVOLUMESTATUSUPDATE драйверу HFP.
Узел тома должен быть реализован следующим образом:
- Если гарнитура Bluetooth поддерживает управление громкостью, звуковой драйвер должен включать узел громкости в топологию KS. Обработчики свойств громкости аудиодрайвера отправляют вышеупомянутые IOCLTs в драйвер Bluetooth HFP для управления громкостью.
- Если Bluetooth-гарнитура не реализует аппаратную регулировку громкости, а кодек (или DSP) имеет такую возможность, звуковой драйвер должен обрабатывать управление громкостью в кодеке (или DSP).
- Если ни гарнитура Bluetooth, ни звуковое устройство не имеют аппаратных регуляторов громкости, узел управления громкостью не должен быть представлен, и Windows вставляет программный узел управления громкостью.
- Узел заглушки является необязательным. Звуковой драйвер должен реализовать узел отключения звука, если и только если DSP или звуковой кодек предоставляет возможность отключить сигнал обхода PCM перед передачей в контроллер Bluetooth. Узлы приглушения поддерживают KSPROPERTY_AUDIO_MUTE.
Запросы свойств
Звуковой драйвер использует следующие свойства KS для получения сведений о любом звуковом разъеме или разъемах в звуковом пути. Драйвер аудиоустройства также может использовать соответствующий запрос свойства, чтобы подключить или отключить любое устройство Bluetooth в аудиопотоке.
KSPROPERTY_JACK_DESCRIPTION
Это свойство возвращает структуру KSJACK_DESCRIPTION . Звуковой драйвер должен задать поля KSPROPERTY_JACK_DESCRIPTION следующим образом.
- ChannelMapping = KSAUDIO_SPEAKER_MONO
- Цвет = 0
- ConnectionType = eConnTypeOtherDigital
- GeoLocation = eGeoLocНеПрименимо
- GenLocation = eGenLocOther
- PortConnection = ePortConnUnknown
- IsConnected = <BOOL для текущего состояния подключения>
KSPROPERTY_JACK_DESCRIPTION2
Это свойство возвращает структуру KSJACK_DESCRIPTION2 . Звуковой драйвер должен задать поля KSPROPERTY_JACK_DESCRIPTION2 следующим образом.
- DeviceStateInfo = 0
- ВозможностиДжека = JACKDESC2_PRESENCE_DETECT_CAPABILITY
KSPROPERTY_ONESHOT_RECONNECT
Фильтр драйвера звука должен поддерживать KSPROPERTY_ONESHOT_RECONNECT. Чтобы создать и инициализировать эту структуру, звуковой драйвер отправляет IOCTL_BTHHFP_DEVICE_REQUEST_CONNECT драйверу HFP. Драйвер HFP завершает этот запрос, а затем пытается подключиться к звуковому устройству Bluetooth асинхронно.
KSPROPERTY_ONESHOT_DISCONNECT
Фильтр драйвера звука должен поддерживать KSPROPERTY_ONESHOT_DISCONNECT. Чтобы создать и инициализировать эту структуру, звуковой драйвер отправляет IOCTL_BTHHFP_DEVICE_REQUEST_DISCONNECT драйверу HFP. Драйвер HFP завершает этот запрос, а затем пытается отключиться от аудиоустройства Bluetooth асинхронно.
Если звуковой драйвер поддерживает эти свойства, диалоговое окно "Звук" на панели управления предоставляет команды подключения и отключения для конечной точки HFP.
Связанные темы
Теория обходного метода потоковой передачи аудио через Bluetooth