共用方式為


核心串流考慮

本文說明與藍牙略過音訊串流相關的核心串流需求和特殊考慮。

音訊驅動程式應該完全支援 WaveRT 埠驅動程式,包括「提取模式」。 如需詳細資訊,請參閱 WaveRT 埠驅動程序簡介。 雖然不需要針對同步連線導向 (SCO) 略過輸出實作硬體音訊引擎,但不會造成損害。

格式支援的 Windows 標誌需求包括藍牙的例外狀況。

音訊驅動程式應該支援可透過側帶硬體提供的格式,通常是8kHz單聲道音訊串流。

拓撲

所有藍牙 Hands-Free 裝置都支援擷取和轉譯。 音訊驅動程式應該公開 Hands-Free 核心串流 (KS) 拓撲,如下圖所示,以支持轉譯和擷取。

圖表說明音訊驅動程式的 KS 拓撲,支援在藍牙 Hands-Free 裝置中轉譯和擷取。

注意: 音訊驅動程式開發人員可以選擇是否要針對擷取和轉譯路徑或個別篩選實作單一篩選條件。 不過,HFP 裝置只允許GUID_DEVINTERFACE_BLUETOOTH_HFP_SCO_HCIBYPASS裝置介面上的單一檔案物件。 因此,使用兩個篩選的設計必須允許這兩個篩選條件共用單一檔案物件。

DAC 和 ADC 節點代表類比/數字轉換,但不支援任何 KS 屬性。

磁碟區節點支援 KSPROPERTY_AUDIO_VOLUMELEVELKSEVENT_CONTROL_CHANGE ,方法是將 SETVOLUME 和 GETVOLUMESTATUSUPDATE IOCTLs 傳送至 HFP 驅動程式。

磁碟區節點應該實作如下:

  • 如果藍牙頭戴式裝置支援音量控制,音訊驅動程序應該在其 KS 拓撲中包含音量節點。 音訊驅動程式的音量屬性處理程式會將上述 IOCLT 傳送至藍牙 HFP 驅動程式來處理音量。
  • 如果藍牙頭戴式裝置未實作硬體磁碟區,而且編解碼器 (或 DSP) 具有硬體音量,音頻驅動程式應該處理編解碼器 (或 DSP) 上的音量控制。
  • 如果藍牙頭戴式裝置和音訊裝置都沒有硬體音量控件,則不應該顯示任何音量節點,而且 Windows 會插入軟體音量控制節點。
  • 靜音節點是選擇性的。 只有在 DSP 或音訊編解碼器提供將略過 PCM 訊號設為靜音的功能,再將它傳遞至藍牙控制器時,音訊驅動程式才應該實作靜音節點。 靜音節點支援 KSPROPERTY_AUDIO_MUTE

屬性要求

音訊驅動程式會使用下列 KS 屬性來取得音訊路徑中任何音訊插孔或插孔的相關信息。 音訊驅動程式也可以使用適當的屬性要求來建立或中斷音訊路徑中任何藍牙音訊裝置的連線。

KSPROPERTY_JACK_DESCRIPTION

這個屬性會傳回 KSJACK_DESCRIPTION 結構。 音訊驅動程式應該設定 KSPROPERTY_JACK_DESCRIPTION 欄位,如下所示。

  • ChannelMapping = KSAUDIO_SPEAKER_MONO
  • 色彩 = 0
  • ConnectionType = eConnTypeOtherDigital
  • GeoLocation = eGeoLocNotApplicable
  • GenLocation = eGenLocOther
  • PortConnection = ePortConnUnknown
  • IsConnected = <目前連線狀態的 BOOL>

KSPROPERTY_JACK_DESCRIPTION2

這個屬性會傳回 KSJACK_DESCRIPTION2 結構。 音訊驅動程式應該設定 KSPROPERTY_JACK_DESCRIPTION2 欄位,如下所示。

  • DeviceStateInfo = 0
  • JackCapabilities = JACKDESC2_PRESENCE_DETECT_CAPABILITY

KSPROPERTY_ONESHOT_RECONNECT

音訊驅動程式的篩選器應該支援 KSPROPERTY_ONESHOT_RECONNECT。 若要建立和初始化此結構,音訊驅動程式會將 IOCTL_BTHHFP_DEVICE_REQUEST_CONNECT 傳送至 HFP 驅動程式。 HFP 驅動程式會完成此要求,然後嘗試以異步方式連線到藍牙音訊裝置。

KSPROPERTY_ONESHOT_DISCONNECT

音訊驅動程式的篩選器應該支援 KSPROPERTY_ONESHOT_DISCONNECT。 若要建立和初始化此結構,音訊驅動程式會將 IOCTL_BTHHFP_DEVICE_REQUEST_DISCONNECT 傳送至 HFP 驅動程式。 HFP 驅動程式會完成此要求,然後嘗試以異步方式中斷與藍牙音訊裝置的連線。

當音訊驅動程式支援這些屬性時,控制台 中的 [音效] 對話框會公開 HFP 端點的 Connect 和 Disconnect 命令。

藍牙略過音訊串流的理論