使用方式
目錄
- 視窗
- 系統匣與快顯視窗
- 隨 Windows 啟動
- CLI 模式
- 擷取模式
- 轉碼器比較
- aptX 系列與 aptX Adaptive
- 媒體封包大小上限(依裝置)
- 驗證媒體串流 (bluecaster_decode)
- 連線品質與 AFH
- 延遲
- 對端接收器測試 (tools/linux_sink)
- 服務與配對金鑰
- LE Audio
- 更新
- 疑難排解
視窗
從「開始」功能表啟動 BlueCaster(或執行 bluecaster.exe)。左側的功能表有下列畫面(首頁、編解碼器、音訊裝置、介面卡、診斷、設定、關於,以及開發人員模式下的開發者,和在其中開啟時的音量混音程式);視窗較窄時會收合為圖示。視窗只是顯示常駐程式 bluecaster-core.exe 的運作情形:關閉視窗並不會停止串流(請參閱 系統匣與快顯視窗)。
首頁
- 每個已儲存的音訊裝置各有一張卡片,並排顯示:其狀態、電量,以及已連線的裝置所用的轉碼器(以清單取代其名稱,見下文)與位元率。若使用的轉碼器與所選的不同,轉碼器那一行會在幾秒內於其名稱旁說明原因,例如 aptX Adaptive (不支援 Opus)(或 使用中),之後只保留其警告標記(將滑鼠游標停在上方可查看原因);狀態行只會顯示 已連線
- 每張卡片下方的 連線 / 中斷連線。同一時間只會連線一個裝置:在另一個裝置上按 連線,會中斷使用中裝置的連線並連線到該裝置
- 音量:耳機的音量(請參閱 音量);按一下喇叭圖示即可靜音(傳送無聲),再按一下取消靜音。其他裝置的卡片也保留此滑桿,但處於停用狀態
- 使用中裝置的轉碼器,可從其卡片上的清單選擇以快速切換(例如遊戲用一個、音樂用一個):列出裝置支援的轉碼器(與 編解碼器 頁面相同的選項),只顯示名稱。自動選擇 開啟時也會顯示使用中的轉碼器;選擇某個轉碼器會關閉自動選擇(可在編解碼器頁面重新開啟)。選擇後立即套用(裝置會以它重新連線;與編解碼器頁面一樣,下一次選擇會等到裝置連線完成)
- 使用中裝置的連線品質,附一個小型圖表,在串流期間顯示於其卡片上。輸出來源在 音訊裝置 中選擇;設為輸出來源的應用程式尚未執行時,裝置的卡片會顯示此狀況
- 發生錯誤時會顯示原因,若有解決方法,也會顯示對應的按鈕(替換為 WinUSB 驅動程式、開啟下載頁面、重新啟動藍牙、重試、編解碼器、音訊裝置 等)
- 卡片上方會顯示下列警告,直到關閉為止:Windows 中有另一個藍牙介面卡在使用中時,以及 OPPO 耳機開啟了 Hi-Res 時(請參閱 編解碼器)
側邊欄在每個畫面上都會顯示每個裝置的相同內容,系統匣快顯視窗則顯示使用中的裝置。
編解碼器
每個已儲存音訊裝置的轉碼器,每個裝置一個區段(裝置連線期間呈綠色的圓點、名稱、已配對 / 音訊 標籤;位址位於 音訊裝置 中),其下是該裝置的轉碼器卡片,除非您自訂了順序,否則依音質由高到低排列,各附三條橫條(音質、低延遲、穩定性),並標示裝置上次連線時是否提供該轉碼器:支援(綠色標記)或 不支援(紅色標記)。開啟 僅顯示支援的編解碼器(預設)時,顯示的卡片不需要也不會有 支援 標籤。從未連線過的裝置(例如從 Windows 匯入的裝置)此時只顯示 SBC 卡片(每個藍牙音訊裝置都有的轉碼器),以及為它選擇的轉碼器;其他卡片會在第一次連線後出現,或在關閉此開關後顯示。華為與榮耀耳機會保留其 LDAC 卡片並標示為 未確認,直到耳機列出它為止:它們可能要在選擇 LDAC 之後才會列出。為 LHDC V5 列出峰值位元率的 OPPO 耳機,會在 LHDC V5 串流時(無論是手動選擇或由自動選擇,但品質為 低 或開啟 ABR 時除外)被要求一次 Hi-Res:耳機會為此重新連線一次,若因此提高了位元率,首頁會顯示提示;之後 Hi-Res 會在耳機中保持開啟(沒有因此獲益的耳機會被還原)。在開發者模式下,LHDC V5 設定中的 重新要求 Hi-Res 會清除裝置列出的內容與已要求過的紀錄,讓下次連線時再次要求。
- 自動選擇支援的音質最高的編解碼器(頁面頂端,適用於所有裝置的設定;預設開啟):每個裝置使用其支援的音質最高的編解碼器,順序為 LHDC V5 > LDAC > aptX Adaptive > Opus > aptX HD > aptX > aptX LL > AAC > SBC XQ > SBC,並採用其預設設定:高音質、編解碼器支援時為 24 位元,以及 48 kHz(裝置未列出 48 kHz 時,使用其列出的其他取樣率,以 44.1 kHz 優先;Windows 本身的取樣率會重新取樣),與轉碼器設定中的 自動 相同。除順序外卡片為唯讀(依下文拖曳;「自動」選擇裝置支援的第一張卡片),正在使用(或將自動選擇)的編解碼器會醒目顯示;按一下卡片或其 … 會詢問是否關閉自動選擇(關閉自動選擇 / 取消);關閉後即選擇所按的卡片(其 … 會開啟其設定)。關閉後可為每個裝置自行選擇編解碼器及其設定;尚未選擇的裝置沿用自動選擇的結果。開啟期間,為各裝置選擇的編解碼器會被保留。如果 2.0.2 之前的設定曾為某個裝置選擇編解碼器,則初始為關閉
- 關閉時,按一下卡片即可選擇該裝置的轉碼器;選擇會立即儲存,正在串流的裝置會以它重新連線。裝置不支援的卡片(僅顯示支援的編解碼器 關閉時才會顯示)也會被選擇:BlueCaster 仍會向裝置要求使用該轉碼器,若裝置拒絕,連線會停止並顯示相應的錯誤(請選擇其他卡片或開啟自動選擇)。首頁、側邊欄、系統匣快顯視窗與系統匣圖示的提示隨後會以幾個字說明原因(例如 不支援 LDAC),轉碼器造成的其他停止(裝置不支援、拒絕或被其他音源使用的轉碼器)也一樣;為該裝置選擇其他卡片或其他設定,或開啟自動選擇,即會重新連線。在裝置提供時選擇、之後裝置不再提供的轉碼器(耳機改用了其他轉碼器),會改用裝置順序中其支援的第一張卡片:除非您變更了順序,否則就是它支援的最佳轉碼器(請參閱 明確指定的轉碼器不在清單中)
- 拖曳裝置的卡片(按住按鈕時會顯示手形游標;自動選擇關閉時也可在卡片上按 Alt 加方向鍵),即可自訂其轉碼器的順序;每個裝置各自保留自己的順序。自動選擇與尚未選擇轉碼器的裝置會使用其支援的第一張卡片,所選轉碼器不受支援時也是如此。FastStream 與 Opus 05(Opus (PipeWire) 卡片,僅在開發人員模式下顯示;關閉時即使已選擇也不會使用)無論排在哪裡,都只在明確選擇時使用。重設編解碼器順序 可還原順序;它只在顯示的卡片不是預設順序時出現(移回原位後即恢復為預設順序)。如果正在串流的轉碼器因此改變,裝置會重新連線
- 為正在串流的裝置選擇其他編解碼器時,會以該編解碼器重新連線。之後卡片(以及首頁與系統匣快顯視窗中的轉碼器清單)會等到裝置重新連線才接受下一次選擇,因此快速連續點選不會中斷仍在建立的連線。切換編解碼器不會顯示連線通知;連線裝置時會顯示
- 僅顯示支援的編解碼器(預設開啟;關閉後將同時顯示支援與不支援的編解碼器):裝置沒有提供的轉碼器會被隱藏。裝置第一次連線之前,只顯示 SBC(以及為它選擇的轉碼器)
- 卡片上的 … 會開啟該轉碼器的設定。變更會立即套用:對於使用中的轉碼器,變更會儲存並讓裝置以它重新連線,但 Bitpool 例外,它會在聆聽時直接改變,下方的開關在兩種情況下串流建立方式相同時也不會重新連線;對於其他轉碼器,變更會保留到選擇該轉碼器時使用。每個轉碼器各自保留自己的設定:選擇另一個轉碼器再切換回來,原本的設定就會回復。只會提供該轉碼器支援、且裝置上次連線時列出的選項。頂端的 僅顯示 裝置 支援的選項(預設開啟;裝置列出選項後顯示)關閉後,會提供該轉碼器的所有選項,例如裝置未列出的取樣率、位元深度、音質或 Bitpool(標示為 (不支援))。裝置可能會拒絕:此時連線會停止並顯示相應的錯誤。重新開啟後,裝置未列出的選項會恢復為「自動」。每個轉碼器各有此開關;自動選擇從不使用這些選項:
- 品質:LDAC 高 / 中 / 低(990 / 660 / 330 kbps),LHDC V5 高 / 中高 / 中 / 低(1000 / 900 / 500 / 400 kbps,即 Android 的四個等級);aptX Adaptive 高 / 低延遲(請參閱 aptX Adaptive);開啟 LHDC V5 的 ABR 時,品質會呈灰色(ABR 會維持在 400 kbps 以下)。AAC、Opus、Opus 05、SBC 與 SBC XQ 只有一個等級 高,僅顯示而無法選擇:裝置接受的最高位元率(若有提供 ABR 或 VBR,位元率仍會變動;SBC 與 SBC XQ 會顯示由其 bitpool 與訊框設定得出的位元率)。aptX、aptX HD、aptX LL 與 FastStream 的位元率由轉碼器固定。舊版儲存、但轉碼器已不再提供的品質(aptX Adaptive 的標準 / 行動、AAC 的較低等級等)會以高載入
- 自適應位元率 (ABR):適用於 LDAC、LHDC V5、aptX Adaptive、SBC 與 SBC XQ(請參閱 ABR);AAC 則為 VBR
- 取樣率:「自動」會連同它所採用的取樣率一起顯示(例如 自動 (48000 Hz)),為 48 kHz;裝置未列出 48 kHz 時,使用其列出的其他取樣率,以 44.1 kHz 優先(96 kHz 會增加延遲與相容性問題,卻聽不出差別,而且 Windows 以 48 kHz 混音)。若要使用 96 kHz,請在此處選擇。只會提供裝置列出的取樣率(LHDC V5 沒有 88.2 kHz;aptX Adaptive 的 96 kHz 只提供給列出它的裝置,請參閱 aptX Adaptive);只列出一種取樣率的裝置會直接顯示該取樣率,不提供「自動」
- 位元深度:LDAC 與 LHDC V5 為 16 或 24 位元(自動:24 位元;LHDC V5 僅限裝置列出時),以裝置列出的為限;aptX HD 與 aptX Adaptive 為 24 位元,其他轉碼器為 16 位元。LDAC 的 24 位元以 32 位元取樣送入編碼器,與 Android 的 32 位元選項相同:位元深度不屬於 LDAC 的設定,因此耳機收到的串流兩種情況下都相同
- Bitpool(SBC、SBC XQ):一個有兩個控點的滑桿,分別為最小與最大 bitpool,範圍為裝置列出的範圍。最大值是實際使用的 bitpool;最小值是使用的最低 bitpool(建立連線時範圍的下限,也是 ABR 最多可降到的值)。自動 會將兩者還原:最大值依品質而定,最小值使用裝置與 ABR 本身的值。其下方一行顯示聲道模式,每個轉碼器固定:SBC 為 Joint stereo,SBC XQ 為雙聲道。SBC XQ 的 bitpool 在 44.1 kHz 時最高 47,在 48 kHz 時最高 43;關閉 僅顯示 裝置 支援的選項 後最高可到 53。
- 訊框結構(SBC 與 SBC XQ,僅限開發人員模式):區塊數、子頻帶數、位元配置,以及 SBC 的聲道模式。自動保持 16 區塊、8 子頻帶、Loudness 與 Joint stereo。裝置不接受的值在連線時回到自動。在一位使用者測試的 Sony 裝置上,12 區塊會使聲音失真,並可能中斷連線(編碼器的輸出可正確解碼;其他區塊數都能正常播放)。關閉開發人員模式後,這些選擇仍會保留,但不會使用。AAC 與 LHDC V5 的位元率不會超過裝置列出的上限
預設值的音質最佳;大多數裝置只需維持 自動。LE Audio 裝置有兩張卡片:LC3 與 LC3 低延遲(請參閱 LE Audio)。
傳統裝置的麥克風開啟期間(請參閱 音訊裝置),其音樂卡片會讓位給它可用的通話編解碼器:LC3(32 kHz)、mSBC(16 kHz)與 CVSD(8 kHz),已開啟的那一種會被選取。開啟 自動選擇 時,通話連結會選擇雙方都支援的最佳一種,點選卡片會詢問是否關閉自動選擇。關閉後,點選卡片即可選擇通話編解碼器:麥克風會以它重新開啟;若耳機不支援,則使用其支援的下一檔。… 以唯讀方式顯示其設定。麥克風關閉後,音樂卡片會恢復。開啟自動選擇期間,所選的通話編解碼器會保留。開啟 僅顯示支援的編解碼器 後,耳機不支援的編解碼器不會顯示。
LE Audio 裝置的麥克風開啟期間,其音樂卡片下方會顯示一張 麥克風 卡片(LC3,單聲道)。關閉自動選擇時,可在其 … 中從耳機支援的取樣率裡選擇麥克風的取樣率(自動 使用第一個;變更後裝置會重新連線);開啟自動選擇時顯示使用中的取樣率。
在背景中,BlueCaster 在 profiles.json 中為每個裝置保留一個項目(其轉碼器、各轉碼器的設定與其轉碼器順序),其名稱為「裝置 | 轉碼器」;視窗與系統匣選單會顯示裝置的名稱。舊版允許為同一個裝置建立多個設定檔:第一次啟動具有「編解碼器」畫面的版本時,會保留最近使用的那一個(否則保留第一個),並把其他的併入其中,同時為它們各自的轉碼器保留其轉碼器設定(品質、取樣率、位元深度、ABR、SBC 設定)。它們自己的名稱、輸出來源與封包大小不會保留;原本的 profiles.json 會以 profiles-before-codecs.json 之名在設定資料夾中儲存一次。2.0.2 搶先版的 自動選擇的順序…(所有裝置共用一個順序,位於開發人員模式中)已不再使用:現在每個裝置都有自己的順序。 |
音訊裝置
BlueCaster 可以串流到的耳機與喇叭,各有自己的設定,其下方是 新增音訊裝置:掃描裝置 會以 USB 介面卡尋找附近的裝置(30 秒,裝置一有回應就會列出;停止掃描 可結束掃描;請將耳機切換到配對模式;有裝置連線時,會先詢問是否中斷其連線)。新增 會儲存找到的裝置並連線。BlueCaster 曾經配對過的裝置會標示為 已配對。若掃描找不到耳機,請在 手動: 欄位輸入位址,然後按一下 新增;輸入或貼上的位址會即時格式化(aa-bb-cc-dd-ee-ff、AABBCCDDEEFF 與 AA BB CC DD EE FF 都會變成 AA:BB:CC:DD:EE:FF)。耳機看到的轉接器名稱是電腦名稱加上 BlueCaster(例如 Taro-PC (BlueCaster)),以便與 Windows 本身的藍牙區分。Windows 透過其他介面卡(例如電腦內建藍牙)配對的裝置會先詢問(已在 Windows 中配對:在 Windows 中將其移除,或選擇 仍要新增);Windows 透過此介面卡配對的裝置也會先詢問(匯入其配對在設定精靈中進行,請參閱 服務與配對金鑰)。已儲存的裝置可以重新命名或移除(移除時也會刪除其設定與配對,因此重新配對之前無法再連線),並具有:
- 輸出來源:單獨位於清單最前面的 Windows 預設(Windows 預設輸出,括號中顯示其名稱,也可能是虛擬裝置;新裝置的預設值)、音效裝置 下的單一輸出裝置、虛擬裝置,或應用程式(請參閱 擷取模式)。旁邊顯示 Windows 混合所擷取裝置時使用的格式(取樣率與位元深度,唯讀);當裝置串流時使用(或未連線時其轉碼器設定要求)其他格式時會顯示為琥珀色,並在下方以一行列出兩種格式(仍會轉換後繼續串流);再下方是該輸出來源的說明
- 連線時設為 Windows 預設輸出,使用虛擬裝置時
- 輸入來源:耳機的麥克風(見下文)
輸入來源位於每個裝置上:讓耳機的麥克風進入 Windows,用於通話與語音聊天。BlueCaster 沒有自己的音訊驅動程式,因此會把麥克風的聲音播放到 VB-CABLE 這類虛擬音訊線。清單以應用程式錄音的一端為每條音訊線命名(VB-CABLE 為 CABLE Output),也就是要在應用程式中選為麥克風的那一端。在 輸入來源 右側可選 關閉、自動 或 開啟:自動 僅在有應用程式從中錄音時開啟麥克風,其餘時間播放維持完整音質;開啟 則一直開啟麥克風。選擇 關閉 時,清單仍會顯示,但呈灰色。今後新增的傳統裝置預設使用 VB-CABLE(已安裝時),否則使用 Hi-Fi Cable,並設為 自動,除非其 輸出來源 就是這條音訊線。音訊裝置 畫面和設定精靈會推薦缺少的音訊線(請參閱 擷取模式);之後 BlueCaster 首次發現某條音訊線時,麥克風沒有可用輸出的裝置(未選擇,或就是輸出來源自己的音訊線)會改用它播放,可用的麥克風輸出則維持不變。麥克風播放到 Hi-Fi Cable,而其播放端與錄音端在 Windows 音效設定中的取樣率不同時,會顯示警告:若應用程式聽不到聲音,請將兩者設為相同的取樣率。清單中只列出應用程式可以從中錄音的音訊線。BlueCaster 自己正在擷取的音訊線(輸出來源,或使用 Windows 預設 時的 Windows 預設輸出)不會列出,同一條音訊線的另一端也不會列出(VB-CABLE 的 CABLE In 16ch 與 CABLE Input 錄入同一個 CABLE Output):否則麥克風會與正在播放的聲音混在一起。同樣地,當 輸入來源 不是 關閉 時,輸出來源 清單不會列出麥克風播放到的音訊線。開啟 開發者 > 應用程式設定 > 在來源清單中顯示所有音訊裝置 後,兩個清單都會列出所有裝置:沒有錄音端的輸出(喇叭等)列在 監聽 下,因為它們只播放麥克風;VB-CABLE 的 16 聲道音訊線名稱為 CABLE Output · CABLE In 16ch(共用的錄音端加上它自己的名稱);輸出來源的音訊線顯示為灰色,名稱後附有 (用作輸出來源)。CABLE Input 與 CABLE Output 是同一條音訊線的兩端:要同時使用虛擬輸出來源與麥克風,需要兩條音訊線。推薦:聲音使用 VB-Audio 的 Hi-Fi Cable(VB-Audio 頁面上的 HiFi-Cable & ASIO-Bridge),因為它增加的延遲最小;麥克風使用 VB-CABLE。麥克風所在的裝置也不能是 Windows 預設輸出:應用程式會聽到正在播放的聲音與麥克風混在一起,而另一個裝置作為輸出來源時則什麼也收不到;輸入來源 下方會顯示警告。傳統藍牙裝置在麥克風開啟期間透過通話連線播放:通話音質的單聲道(CVSD、mSBC 或 LC3,取雙方都支援的最佳者);其間轉碼器呈灰暗顯示,麥克風關閉後不重新連線即回到原本的轉碼器。LE Audio 裝置以平常的音質繼續播放 LC3,同時傳送麥克風;切換模式時會重新連線(自動在此會保持麥克風開啟)。部分耳機可能會拒絕,或在沒有通話時顯示通話畫面。選擇 自動 或 開啟 並選好裝置後,在裝置已連線或正在連線期間,側邊欄、首頁與飛出視窗中轉碼器下方會有一行 麥克風:,顯示麥克風的狀態:開啟時為轉碼器和取樣率加一個紅點(麥克風:mSBC 16 kHz),關閉時連同其模式呈灰暗顯示。在首頁與飛出視窗中,旁邊的麥克風按鈕可停用麥克風(加上刪除線:與 關閉 一樣關閉麥克風,傳統裝置回到原本的轉碼器);再點一次即重新啟用,在 輸入來源 中選擇模式也會重新啟用。自動在等待應用程式錄音時按鈕以虛線顯示;麥克風未能開啟時會顯示警告標誌,原因見其工具提示。
清單上方的 所有音訊裝置 包含適用於每個裝置的開關:Windows 音量同步(請參閱 音量)、用音訊裝置的按鈕控制播放 與 自動重新連線。每個裝置的 媒體封包大小上限 位於 開發者 畫面(請參閱 媒體封包大小上限)。
診斷
- 串流期間的 連線品質:實際位元率、封包、傳送前捨棄的封包、擷取時捨棄的音訊、傳送佇列、裝置回報的延遲(請參閱 延遲)、無線電使用時間、訊號 (RSSI) 與 AFH 通道(請參閱 連線品質與 AFH)。耳機麥克風開啟期間,經典裝置的通話連線也以同樣方式測量(編解碼器如 mSBC 及傳送量),傳回的封包顯示在 麥克風 卡片中:收到、無線傳輸中損壞與補償的數量
- 無線:顯示 2.4 GHz 頻段的 79 個藍牙通道中連線使用的與介面卡避開的,下方標出 Wi-Fi 通道,並附幾條改善提示。開發人員模式下,掃描 會疊加顯示周圍的 2.4 GHz Wi-Fi(見 無線分頁)
- 串流期間的 轉碼器詳細資訊:媒體酬載、標頭、轉碼器訊框與每個封包的訊框數,以及裝置端點列出的內容與實際使用的內容:SBC 為 bitpool、取樣率、聲道模式、區塊、子頻帶與位元配置;AAC 為物件類型、取樣率、聲道、峰值位元率與 VBR;其他轉碼器為取樣率、位元深度與峰值位元率
- 麥克風:在串流期間測試傳統藍牙裝置的耳機麥克風。錄音會開啟麥克風(期間裝置以通話音質播放;如果該連線從未開啟過麥克風,會先重新連線),最多錄製 10 秒,並在長條上顯示音量;播放會在耳機上播放錄音。離開該分頁即結束測試,播放恢復為原本的轉碼器。尚不支援 LE Audio 裝置
- 連線流程:最近一次連線嘗試的十一個階段(開始、藍牙介面卡、ACL / AVDTP 連線、功能探索、轉碼器選擇、音訊擷取、串流設定、編碼器、串流開始、音訊傳送,以及包含中斷 / 重新連線的連線維持),標示為 OK、警告或失敗,並附上所花的時間。複製流程 可將其複製
- 記錄:即時顯示,可依層級(所有層級、資訊及以上、警告與錯誤、僅錯誤)、文字及目前的連線嘗試(僅目前嘗試)篩選。複製顯示的記錄 會複製目前顯示的內容。開啟記錄資料夾 會開啟記錄檔所在的資料夾;與 複製診斷資訊 不同,這些檔案未經遮蔽(包含藍牙位址與您的 Windows 使用者名稱)
- 開始 HCI 擷取 / 停止 HCI 擷取(請參閱 驗證媒體串流)
- 複製診斷資訊:將版本、作業系統、介面卡、音訊裝置(轉碼器、其設定與順序)、連線流程、警告 / 錯誤與最近的記錄複製到剪貼簿,可直接貼到錯誤回報中。遮蔽藍牙位址(預設開啟)將位址替換為
<addr-1>、<addr-2>…(介面卡自身為<adapter>),裝置名稱替換為<device-1>、<device-2>…,並隱藏 USB 序號、應用程式本身資料夾以上的檔案路徑(<path>\BlueCaster\logs\...)以及您的 Windows 帳戶(使用者名稱與 SID)。為錯誤回報複製的當機報告與錯誤文字也會套用相同的遮蔽 - 回報問題:
- 詳細記錄:詳細(debug) 或 全部(trace,1 小時) 會記錄更多關於藍牙、USB、音訊擷取與編碼的資訊。Debug 會維持開啟 24 小時,重新啟動後也是如此(以便處理啟動時的問題),之後會自動關閉。請先開啟,重現問題,然後儲存診斷套件
- 診斷套件 > 儲存…:選擇是否包含 HCI 擷取(除非有人要求,否則請保持關閉:其中保留了位址與裝置名稱),以及是否在文字檔中遮蔽藍牙位址,然後儲存一個
.zip(位於設定資料夾的logs\bundles\,保留最新的 3 個):內容包括診斷資訊、核心、視窗與驅動程式輔助程式的記錄檔、當機報告、系統資訊(USB 藍牙介面卡及其驅動程式、Windows 已配對的裝置、音訊裝置)、設定與每個裝置的轉碼器設定(絕不包含連結金鑰),以及 HCI 飛行記錄器。HCI 擷取會保留位址(不含配對金鑰)。會盡可能維持在 GitHub 25 MB 的附件上限以下(最新的記錄優先,文字最多 48 MB,以及最新的 5 個錄製檔與 2 個 minidump) - 在 GitHub 上回報(儲存後):開啟一份新的錯誤回報,其中已填入版本、Windows 組建、介面卡、耳機、轉碼器、擷取模式與診斷資訊(位址已遮蔽),並在檔案總管中顯示套件,供您拖曳到回報中
BlueCaster 也會隨時記錄一些內容,讓只發生過一次的問題仍可事後查看:
- HCI 飛行記錄器:最近幾分鐘的藍牙通訊會保留在記憶體中(媒體酬載會截短,配對金鑰會移除),並在串流失敗或連線中斷時儲存到
logs\hci\(保留最新的 10 個檔案) - 當機報告:BlueCaster 當機時,
.dmpminidump 與.txt檔案會寫入logs\crash\(每個程式保留最新的 5 個)
磁碟用量有上限:一般一天的記錄遠小於 1 MB,並保留 7 天;開啟詳細記錄時,一天的檔案中 debug 與 trace 行最多佔 100 MB(超過後直到隔天只記錄資訊及以上層級);飛行記錄器的檔案最多幾 MB,保留 10 個。
開發者
在 設定 > 開發人員模式 開啟時顯示;大多數使用者從不需要它。它用於測試裝置與疑難排解:部分設定只對某些裝置有效。共有六個分頁:
- 應用程式設定:使用音量混音器(預設關閉):音量混音程式 畫面、快顯視窗的應用程式清單與輸出靜音(請參閱 擷取模式)。不建議使用;要讓 PC 保持無聲,VB-CABLE 是較好的方式。在來源清單中顯示所有音訊裝置(預設關閉):音訊裝置 畫面上的 輸出來源 與 輸入來源 會列出所有裝置,包括不適合它們的裝置(請參閱 音訊裝置)。檢查更新時包含 Alpha 版(Alpha 版中預設開啟):也會通知 Alpha 版(請參閱更新)
- 編解碼器設定:用於找出裝置無聲原因的開關(RTP marker bit、記錄最初的媒體封包、AAC 設定與編碼器選項)、每個已儲存裝置的 媒體封包大小上限(請參閱 媒體封包大小上限)。自動選擇編解碼器時也使用各編解碼器的設定:自動選擇開啟時,轉碼器卡片的 … 可直接開啟而不會關閉自動選擇,自動選擇的轉碼器會以這些設定連線,而不是自動的設定。讓取樣率和位元深度符合電腦的輸出:設為「自動」的取樣率或位元深度,會改為跟隨 Windows 音效設定中輸出裝置的格式(在轉碼器與裝置支援的範圍內),而不是 48 kHz。忽略裝置的最大位元率:即使裝置列出的最大值(LHDC V5、AAC 或 Opus 05 的位元率,SBC 的 bitpool)較低,所有編解碼器仍以所選音質的位元率運作,編解碼器 畫面會提供所有音質和 bitpool。超過其最大值時,裝置可能斷訊或無聲。傳送佇列上限:媒體封包在傳送佇列中最多可等待多久才會被捨棄,50 到 2000 ms(留空 = 350 ms);連線良好時它不會降低延遲(請參閱 延遲)。所有項目預設皆為關閉,並在下次開始串流時套用;任一項開啟時,會有橫幅提示。全部關閉 可將它們還原
- 廠商:BlueCaster 使用耳機自有協定的情況(華為:LDAC,OPPO:Hi-Res;請參閱 編解碼器),各有 自有協定:自動(名稱顯示為該廠商耳機的裝置;預設)、一律(任何裝置)或 不使用。OPPO 另有 每次連線都要求 Hi-Res(每次重新連線)。變更會在下次開始串流時套用;任一項變更時,會有橫幅提示,全部關閉 可將它們還原。關閉開發人員模式後不會使用
- 記錄:記錄檔的保留天數(預設 7 天)、每日大小上限(預設 100 MB)、持續開啟的詳細記錄(沒有 24 小時或 1 小時的限制,從核心啟動時即開啟)、每 10 秒一行的串流狀態,以及 新增標記(在記錄中加入一行編號,方便之後找到該時間點)。關閉開發人員模式會還原為預設值
- 對端接收器測試:串流到另一台 PC 上的測量用接收器,並比較送出與抵達的內容(請參閱 對端接收器測試)
- 晶片:在使用 WinUSB 的介面卡上執行晶片指令碼,也就是對晶片發出的請求,可直接輸入或從檔案開啟,供想為晶片加入支援的人使用(請參閱 加入晶片支援)。可能變更晶片的行,要按 允許執行 後才會執行;期間藍牙會停止,下次使用時重新啟動
- Debug:實驗功能,預設全部關閉。Realtek:開啟 從此電腦上的 Realtek Windows 驅動程式載入 RTL8761B 韌體 後,會載入 Realtek Windows 驅動程式安裝的韌體(介面卡改用 WinUSB 後仍會保留),而不是韌體資料夾中的韌體;設定檔仍來自該資料夾,沒有該驅動程式時則載入資料夾中的韌體。介面卡可能因此回報較新的藍牙版本;其他方面是否有改善尚未驗證。配對金鑰與 Windows:開啟 還原原始驅動程式時,也將 LE 金鑰交給 Windows 後,還原原始驅動程式 時會將 BlueCaster 的 LE 金鑰(Long Term Key、EDIV、Rand、金鑰長度、Identity Resolving Key)寫入 Windows,只針對 Windows 已透過該介面卡保存了 LE 金鑰的裝置;Windows 原有的金鑰保留在
pairing\replaced_windows_keys.json中(只有您的 Windows 使用者能讀取)。與 Windows 比較(需要系統管理員權限)針對一個介面卡,統計連結金鑰與 LE 金鑰在 BlueCaster 與 Windows 中相同、不同或只存在於一方的裝置數量。顯示與記錄中只有數字,不含位址或金鑰,因此可以直接分享結果。也會列出 Windows 為該介面卡及其 LE 裝置保存的值的名稱、類型與大小(從不顯示其內容)
介面卡
- 偵測到的 USB 藍牙介面卡,以及其晶片、位址、USB ID、藍牙版本、驅動程式 與 韌體;插入或拔除介面卡時清單會自動更新。驅動程式為 原始驅動程式(Windows 或製造商安裝的驅動程式;將滑鼠游標停在上方可查看其名稱)或 WinUSB 驅動程式(BlueCaster 使用的驅動程式)。Realtek 介面卡即使尚未使用過,也會顯示取自其 USB 序號的位址;其他介面卡的位址與藍牙版本,要等 Windows 的藍牙或 BlueCaster 使用過該介面卡後才會顯示(將滑鼠游標停在該行上可查看原因)。BlueCaster 無法使用的介面卡(部分 MediaTek 與 Qualcomm)會保留其驅動程式:其 WinUSB 與韌體按鈕會停用。在開發者模式下仍可為其指派 WinUSB;在使用 WinUSB 的介面卡上按 讀取晶片資訊,會將晶片對幾個讀取命令的回應儲存到
logs\probe\,供想為它加入支援的人使用(期間藍牙會停止,下次使用時重新啟動);接著按 在 GitHub 回報,會開啟一個已填入這些資訊的 issue。由 BlueCaster 自行載入韌體的介面卡(Intel、MediaTek、Qualcomm)啟動期間,畫面會顯示載入進度,以及是否失敗 - 替換為 WinUSB 驅動程式 / 還原原始驅動程式(請參閱 安裝設定);每次 Windows 都會要求系統管理員權限(帶有盾牌圖示的按鈕皆是如此)。還原時,對於 Windows 也透過此介面卡配對過的裝置,BlueCaster 會將較新的配對交給 Windows,因此不必在 Windows 中重新配對即可連線。限制:不會交出 LE 金鑰,因此 Windows 透過 LE(LE Audio)使用的裝置需要在 Windows 中重新配對(開發者模式下可以試用:開發者 > Debug)
- 韌體用的 藍牙晶片,以及 下載韌體、開啟下載頁面 與 開啟韌體資料夾(請參閱 韌體)。其他廠商的介面卡則顯示韌體的來源,例如 來自 MediaTek 的驅動程式、來自韌體資料夾 或 不需要,BlueCaster 載入後顯示 已載入
- 避開 Wi-Fi 通道:自動、關閉或手動,旁邊顯示 Wi-Fi 通道:自動時為目前避開的通道,關閉時不顯示(兩者皆為唯讀),手動時為您輸入的通道(請參閱 連線品質與 AFH)
- 藍牙堆疊:已停止(於第一次掃描或連線時啟動)、正在啟動、就緒或錯誤,以及 重新啟動藍牙
設定
| 區段 | 設定 |
|---|---|
| 外觀 | 語言、佈景主題(系統 / 淺色 / 深色) |
| 啟動 | 隨 Windows 啟動 與 在系統匣中啟動(請參閱 隨 Windows 啟動)、最小化至系統匣 與 系統匣視窗的開啟位置(請參閱 系統匣與快顯視窗) |
| 通知 | 裝置連線時通知(裝置、電量、轉碼器及其執行參數;預設開啟)、電池電量低時通知:低於 20%(預設)、低於 10%、低於 5% 或 永不,每次連線只通知一次(電量回升至高出 5 個百分點後才會再次通知) |
| 更新 | 檢查更新、啟動時檢查更新、檢查更新時包含搶先版(也會通知 Beta 版本)、立即更新(請參閱 更新) |
| 進階 | 開發人員模式(加入 開發者 畫面、轉碼器設定中 SBC 的 訊框結構、音訊裝置 畫面 服務 標籤中的配對金鑰(請參閱 服務與配對金鑰)、Opus (PipeWire) 轉碼器、介面卡 畫面的 讀取晶片資訊,並在記錄中寫入更多詳細資訊;不需要重新啟動)、設定資料夾 與 開啟設定資料夾、執行設定精靈 |
結束 BlueCaster 位於最下方。版本、授權與 第三方授權 位於 關於 畫面。
首次執行設定
第一次啟動時(尚無音訊裝置,或沒有任何介面卡使用 WinUSB)會開啟 設定精靈,直到完成或略過一次:選擇介面卡、驅動程式與韌體(Windows 透過該介面卡配對過的裝置會先列出,因為它們將無法再搭配 Windows 使用)、尋找音訊裝置(「連線」會以最適合該裝置的設定儲存裝置並連線;Windows 配對過的裝置會先詢問;匯入 Windows 的配對 會列出 Windows 透過此介面卡配對的裝置,請參閱 服務與配對金鑰;沒有裝置也可以按 下一步,裝置可之後在 音訊裝置 畫面新增),然後是 一般設定:佈景主題、隨 Windows 啟動 與 在系統匣中啟動(首次設定會將兩者開啟)、通知與 啟動時檢查更新。請參閱 安裝設定。可從 設定 > 執行設定精靈 再次開啟。
系統匣與快顯視窗
無論視窗是否開啟,BlueCaster 都會持續在系統匣中執行:
- 按左鍵 點選系統匣圖示會開啟快顯視窗:裝置與其狀態、連線 / 中斷連線、音量、裝置切換、轉碼器(與首頁一樣可從清單選擇)、連線品質,以及 開啟應用程式。其高度恰好符合所顯示的內容。按 Esc 或點選其他位置即可隱藏。若錯誤需要主視窗的某個畫面(編解碼器、音訊裝置、介面卡)才能處理,按下其按鈕會在該畫面開啟視窗
- 設定 > 系統匣視窗的開啟位置(預設為 系統匣圖示):在 Windows 11 上選擇 快速設定(音量按鈕) 時,系統匣圖示會開啟主視窗,快顯視窗則改為隨快速設定一起開啟,顯示在那裡的面板上方,並隨面板一起關閉。在快顯視窗中操作不會關閉那些面板。若螢幕高度不足,會開啟在面板的左側。選擇 不開啟 時,不會開啟快顯視窗,系統匣圖示會開啟主視窗。
- 按右鍵 會開啟選單:開啟 BlueCaster、前 10 個裝置,以名稱顯示(LE Audio 項目會標示「(LE Audio)」;正在串流的會打勾;點選即可連線到該裝置)、中斷連線 與 結束。選單會立即開啟,不需要啟動視窗
- 工具提示會顯示 BlueCaster 目前是閒置還是已連線
設定 > 最小化至系統匣 開啟時(預設),最小化或關閉視窗只會將它隱藏到系統匣,串流會繼續進行。關閉此項時,視窗會最小化至工作列,關閉視窗則會結束 BlueCaster。系統匣選單中的 結束 或 設定 > 結束 BlueCaster 會停止串流、釋放介面卡,並完全關閉 BlueCaster。
隨 Windows 啟動
設定 > 隨 Windows 啟動 會在您登入時啟動 BlueCaster。開啟 在系統匣中啟動 時,它會在背景啟動:只會顯示系統匣圖示,視窗可從圖示開啟。關閉此項時(預設),會開啟主視窗。它是 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run 下名為 BlueCaster 的值,資料為 "<folder>\bluecaster-core.exe",開啟 在系統匣中啟動 時後面會加上 --background。若要手動關閉,請刪除該值。在 v1 上覆蓋安裝 v2 時,在系統匣中啟動 會被開啟,因為 v1 一律在系統匣中啟動。
CLI 模式
bluecaster-core.exe --cli 會從主控台進行串流,使用與視窗相同的核心。請先結束 BlueCaster(系統匣 > 結束):同一時間只有一個程式能使用介面卡。CLI 不會讀取已儲存裝置的設定;所有內容都以選項指定。
基本用法
# Auto-select best codec
bluecaster-core.exe --cli -d AA:BB:CC:DD:EE:FF
按 Ctrl+C 停止串流。CLI 會輸出狀態、轉碼器與位元率,並在結束時輸出已傳送與捨棄的封包數。
轉碼器選擇
bluecaster-core.exe --cli -d AA:BB:CC:DD:EE:FF -c ldac # LDAC
bluecaster-core.exe --cli -d AA:BB:CC:DD:EE:FF -c aptxhd # aptX HD
bluecaster-core.exe --cli -d AA:BB:CC:DD:EE:FF -c aptxll # aptX Low Latency
bluecaster-core.exe --cli -d AA:BB:CC:DD:EE:FF -c aptx # aptX
bluecaster-core.exe --cli -d AA:BB:CC:DD:EE:FF -c aac # AAC
bluecaster-core.exe --cli -d AA:BB:CC:DD:EE:FF -c sbc # SBC
bluecaster-core.exe --cli -d AA:BB:CC:DD:EE:FF -c lhdcv5 # LHDC V5
bluecaster-core.exe --cli -d AA:BB:CC:DD:EE:FF -c opus # Opus (48 kHz, 256 kbps)
bluecaster-core.exe --cli -d AA:BB:CC:DD:EE:FF -c opus05 # PipeWire's Opus 05 (to PipeWire sinks)
bluecaster-core.exe --cli -d AA:BB:CC:DD:EE:FF -c aptxad # aptX Adaptive (48 kHz; --rate 96000 for 96 kHz)
自動選擇的優先順序:LHDC V5 > LDAC > aptX Adaptive > Opus > aptX HD > aptX > aptX LL > AAC > SBC XQ > SBC(FastStream 與 Opus 05 僅在明確選擇時使用)
如果耳機不提供所要求的轉碼器,CLI 會以說明原因的錯誤停止;請使用 -c auto(預設)來選用耳機提供的最佳轉碼器,或使用 --fallback,像應用程式一樣改用耳機提供的最佳轉碼器,而不是所要求的轉碼器 – 請參閱 aptX 系列與 aptX Adaptive。
品質
bluecaster-core.exe --cli -d AA:BB:CC:DD:EE:FF -c ldac -q hq # High, 990 kbps (default)
bluecaster-core.exe --cli -d AA:BB:CC:DD:EE:FF -c ldac -q sq # Medium, 660 kbps
bluecaster-core.exe --cli -d AA:BB:CC:DD:EE:FF -c ldac -q mq # Low, 330 kbps
# LHDC V5: hq 1000 / mhq 900 / sq 500 / mq 400 kbps
bluecaster-core.exe --cli -d AA:BB:CC:DD:EE:FF -c lhdcv5 -q sq # Medium, 500 kbps
# aptX Adaptive: hq 427 / ll 265 kbps
bluecaster-core.exe --cli -d AA:BB:CC:DD:EE:FF -c aptxad -q ll # Low Latency
其他轉碼器沒有品質選擇:它們以 hq 執行,即耳機接受的最高位元率(aptX、aptX HD、aptX LL 與 FastStream:由轉碼器固定)。轉碼器沒有的等級(LHDC V5 以外的轉碼器的 mhq、aptX Adaptive 的 sq / mq、aptX Adaptive 以外的轉碼器的 ll)會以 hq 執行。
ABR(自適應位元率)
bluecaster-core.exe --cli -d AA:BB:CC:DD:EE:FF -c ldac -a
bluecaster-core.exe --cli -d AA:BB:CC:DD:EE:FF -c lhdcv5 -a
bluecaster-core.exe --cli -d AA:BB:CC:DD:EE:FF -c aptxad -a
ABR 會在藍牙連線不穩定時自動降低位元率,並在狀況改善時提高位元率。LDAC 會在其品質模式之間切換;LHDC V5 依照 Android 的策略,維持在 160 到 400 kbps 之間;aptX Adaptive 在高品質時於其等級之間切換(請參閱 aptX Adaptive)。在視窗中,ABR 位於轉碼器的設定中(編解碼器 畫面上卡片的 …)。
裝置探索
# Nearby devices, found with the USB adapter (10 seconds; --scan 20 for longer)
bluecaster-core.exe --cli --scan
請先將耳機切換到配對模式。
所有選項
| 選項 | 說明 |
|---|---|
-d <addr> | 耳機 / 接收器的藍牙位址(AA:BB:CC:DD:EE:FF;預設:第一個與 Windows 配對的音訊裝置) |
--device-name <name> | 其名稱,搭配 -d 使用,如同已儲存裝置的名稱(華為耳機以此辨識) |
-l | 列出與 Windows 配對的藍牙裝置後結束 |
-u <adapter> | 有多個介面卡使用 WinUSB 時要使用的 USB 介面卡:執行個體 ID、裝置路徑或 VID:PID(例如 0bda:8771) |
-c <codec> | ldac、aptxhd、aptxll、aptx、aptxad、aac、sbcxq、sbc、lhdcv5、opus、opus05、faststream、auto(預設:auto) |
-q <mode> | 品質:hq(高,預設);LDAC 與 LHDC V5 另有 sq(中)與 mq(低),LHDC V5 另有 mhq(中高);aptX Adaptive 另有 ll(低延遲)。其他轉碼器的任何等級都以 hq 執行 |
-a | ABR(LDAC、LHDC V5 與 aptX Adaptive;SBC / SBC XQ:自適應 bitpool) |
--fallback | 耳機不提供 -c 指定的轉碼器時,像應用程式一樣改用耳機提供的最佳轉碼器,而不是顯示錯誤 |
-m <mode> | 擷取模式:loopback(預設)、virtual、app |
--audio-device <id> | -m virtual 使用的播放裝置 |
--app <exe> | -m app 使用的執行檔(例如 spotify.exe) |
--headset-mic | 耳機麥克風(請參閱 音訊裝置):把耳機的麥克風播放到 --mic-output;在此期間傳統裝置以通話音質播放。與 --le-audio 一起使用時,採用同時傳輸麥克風的 LE Audio 設定 |
--mic-output <名稱> | 播放麥克風的輸出裝置,以其名稱的一部分指定(例如 "CABLE Input";預設:Windows 的預設輸出),或要寫入的 .wav 檔案 |
--voice-codec <cvsd\|msbc\|lc3_swb> | 搭配 --headset-mic,傳統裝置:要使用的最佳通話編解碼器(耳機不支援時使用下一檔;預設:雙方都支援的最佳一種) |
--mic-rate <Hz> | 搭配 --headset-mic --le-audio:麥克風的取樣率(例如 16000;耳機不支援的取樣率改用其支援的第一個) |
--rate <hz> | 擷取取樣率(預設:48 kHz;裝置未列出 48 kHz 時,使用其列出的其他取樣率) |
--bits <16\|24> | 位元深度(預設:轉碼器支援時為 24) |
--max-packet <bytes> | 媒體封包大小上限,679-1679,預設 1023(請參閱 媒體封包大小上限) |
--sbc-blocks <n>, --sbc-subbands <n>, --sbc-alloc <method>, --sbc-bitpool <n> | SBC / SBC XQ 訊框結構:區塊數 4/8/12/16(預設 16)、子頻帶數 4/8(預設 8)、位元配置 loudness(預設)或 snr、bitpool(預設:依品質而定) |
--sbc-mode <mode> | SBC 聲道模式:joint_stereo(預設)、stereo、mono(雙聲道請使用 -c sbcxq) |
--afh <auto\|off\|6,11> | AFH 主機通道分類(請參閱 連線品質與 AFH) |
--remote-sink <host[:port]\|auto> | 顯示對端接收器收到的內容;未指定 -d 時,會串流到該接收器(請參閱 對端接收器測試) |
--scan [seconds] | 列出附近的裝置後結束(預設 10 秒) |
--probe | 將介面卡對讀取命令的回應儲存到 logs\probe\ 後結束,供 BlueCaster 尚無法使用的介面卡使用(請參閱 加入晶片支援) |
--script <file>, --allow-writes | 在介面卡上執行晶片指令碼,儲存其報告後結束;--allow-writes 允許執行可能變更晶片的行(請參閱 加入晶片支援) |
-h | 顯示說明 |
開發與測試用途另有 --hci-tcp <host:port>(以 TCP 連線的虛擬控制器取代 WinUSB 介面卡)、--test-tone(以左 1 kHz / 右 1.5 kHz 取代擷取的音訊)、--duration <s>(經過指定秒數後停止)、--sessions <n>(連續串流 n 次,相當於在應用程式中中斷連線 / 連線)、--restart(搭配 --sessions:每次之間重新啟動藍牙)、--restart-on-link(連結一建立就重新開始工作階段,如同在連線期間變更設定時一樣)、--wait-off(耳機關機不會結束執行)與 --hci-capture <file.pklg>(擷取整個執行期間的 HCI);請參閱 建置。LE Audio 選項可用 -h 列出(請參閱 LE Audio)。--services 在開始串流後列出裝置透過 SDP 提供的服務。
未加上 --cli 時,bluecaster-core.exe 即為常駐程式:它也會啟動視窗,但加上 --background 時除外(只顯示系統匣圖示,開啟 在系統匣中啟動 時,隨 Windows 啟動 使用此選項)。bluecaster-core.exe --quit 會要求執行中的 BlueCaster 停止串流並結束(安裝程式會使用此選項)。
擷取模式
BlueCaster 支援四種音訊擷取模式,分別為單獨列在最前面的 Windows 預設,以及列在 音效裝置、虛擬裝置 與 應用程式 下的模式,各自錄製音訊路徑中的不同位置:
| 模式 | 錄製的內容 |
|---|---|
| Windows 預設 | Windows 預設輸出裝置播放的內容:所有應用程式混合後的音訊 |
| 虛擬裝置 | 應用程式播放到所選裝置(例如 VB-CABLE)的內容 |
| 單一音效裝置 | 單一輸出裝置(喇叭、USB 耳機、電視等)播放的內容,無論 Windows 預設輸出是哪個裝置 |
| 應用程式 | 僅單一應用程式(及其子處理程序)播放的內容,經該應用程式本身處理後。需要 Windows 11 或 Windows 10 版本 2004(組建 19041)以上 |
---
config:
flowchart:
wrappingWidth: 480
rankSpacing: 30
---
flowchart TD
apps["應用程式"] --> out["輸出裝置<br>(喇叭、HDMI 電視等)"]
apps --> virt["虛擬裝置<br>(VB-CABLE 等)"]
out --> there["該處照樣播放"]
out -.->|"Windows 預設 /<br>單一音效裝置"| bc["BlueCaster"]
virt -.->|"虛擬裝置"| bc
apps -.->|"應用程式:<br>僅單一應用程式"| bc
bc --> hp["藍牙耳機"]
音訊裝置 畫面的 輸出來源 下方也有相同的說明。新裝置會擷取 Windows 預設,不需安裝任何其他軟體即可使用;如需其他輸出來源,請在該處為其選擇。
擷取 Windows 預設 是複製音訊,不會把音訊從預設輸出裝置上移走,因此音訊也會在該裝置(喇叭、有線耳機、HDMI 電視等)上播放。若只想從藍牙耳機聽到,請使用 VB-CABLE 等虛擬裝置。
在開發人員模式下開啟 開發者 > 應用程式設定 > 使用音量混音器 時,連線時將 Windows 預設輸出靜音(在 音量混音程式 畫面中;預設關閉)會在串流期間將該裝置靜音,並在串流停止時解除靜音,適用於測試音以外的所有擷取來源。這不會影響 BlueCaster 擷取的音訊。此時 Windows 的靜音鍵會改為將耳機靜音(傳送無聲;再按一次即可播放),裝置則維持靜音;音量鍵在 Windows 中也會解除靜音,但此時裝置仍維持靜音、耳機繼續播放。使用 LE Audio 裝置時,靜音鍵只會讓裝置維持靜音。原本已靜音的裝置會維持靜音;如果 BlueCaster 意外結束,裝置會維持靜音,請在 Windows 中解除。開發人員模式關閉時,無論此設定為何,都不會靜音。
開啟該開關時,音量混音程式 畫面與快顯視窗可以設定各應用程式的音量,無論是否搭配該靜音。輸出靜音時也可使用(Windows 混音程式此時可能中斷聲音)。如果 Windows 預設輸出是虛擬裝置,將它靜音可能使串流也沒有聲音:此時請關閉靜音。
在虛擬裝置模式下,連線時設為 Windows 預設輸出 會在串流期間將所選裝置設為 Windows 預設輸出,讓應用程式不需變更 Windows 設定即可播放到該裝置。停止串流時,BlueCaster 會切換回先前的預設裝置。
- 輸出來源 清單的虛擬裝置之下,只會提供 BlueCaster 偵測為虛擬音訊裝置的裝置。
- 虛擬線材:推薦聲音使用 VB-Audio 的 Hi-Fi Cable(增加的延遲最小),耳機的麥克風使用 VB-CABLE。缺少其中之一時,音訊裝置 畫面和設定精靈會推薦它;× 可關閉該推薦,設定 > 虛擬線材 中兩者都會保留。安裝 VB-CABLE 會從 VB-Audio 下載其 VB-CABLE 安裝套件(1.3 MB)並原樣安裝(會要求系統管理員權限;下載失敗時,下載 VB-Cable 會改為開啟 VB-Audio 的頁面;若沒有出現權限要求,請重新啟動 Windows);下載 Hi-Fi Cable 會開啟 VB-Audio 的頁面。兩者都是 VB-Audio 的捐贈軟體(vb-cable.com),捐款歸 VB-Audio 所有;在公司或其他組織中,VB-Audio 要求每次安裝都有授權(授權)。VB-CABLE 作為輸出來源時,會有提示推薦 Hi-Fi Cable:使用 Hi-Fi Cable 會將它設為輸出來源,並把原本播放到它或沒有輸出的麥克風改到 VB-CABLE。在您選擇之前,不會有任何變更。
- 不會變更預設通訊裝置(通話應用程式使用的裝置)。
- 部分應用程式在重新啟動前,仍會在先前的裝置上播放。
- 如果 BlueCaster 意外結束,預設裝置不會切換回來。請在 Windows 音效設定中變更。
輸出來源 清單的 音效裝置 下會列出 Windows 的每個輸出裝置,每個只列一次(VB-CABLE 的 16 聲道音訊線僅在開啟 開發者 > 應用程式設定 > 在來源清單中顯示所有音訊裝置 後列出)。BlueCaster 會錄製所選裝置播放的內容,無論 Windows 預設輸出是哪個裝置,也不會把它設為預設;Windows 音量同步 會同步該裝置的音量。如果連線時該裝置不存在(已拔除或已停用),BlueCaster 會改為傳送 Windows 預設,連線狀態會說明這一點;音訊裝置 畫面會將其顯示為未連線。
應用程式模式
應用程式模式會傳送單一應用程式的音訊,例如音樂播放器、瀏覽器或效果應用程式。請在 輸出來源 清單的應用程式之下選擇應用程式。其中會顯示目前正在播放音訊的應用程式;若找不到您的應用程式,請先在其中開始播放,再按一下清單旁的 重新整理。應用程式的子處理程序也包含在內,因此由獨立處理程序播放音訊的瀏覽器也能使用。
- 應用程式不必正在執行。BlueCaster 仍會連線到耳機,並在應用程式啟動後開始傳送。若應用程式在串流期間結束,BlueCaster 會保持連線,並在應用程式重新啟動時再次擷取。
- 應用程式也會繼續在其本身的輸出裝置上播放。若只想從耳機聽到,請將該輸出裝置靜音(主音量):這不會影響 BlueCaster 擷取的內容。但請勿在 Windows 音量混音程式中將該應用程式靜音,否則耳機也會沒有聲音。
- Windows 音量混音程式中該應用程式的滑桿,會改變傳送到耳機(以及其輸出裝置)的音量。主音量與音量鍵不會改變傳送的音訊;若 Windows 音量同步 已開啟,則會改為調整耳機的音量(請參閱 音量)。
- Windows 會將音訊轉換為 BlueCaster 要求的取樣率,因此不受音效設定中裝置格式的限制。
- 在 Windows 10 版本 2004(組建 19041)之前,Windows 不支援依應用程式擷取。此時連線設為「應用程式」擷取的裝置,會顯示要求您選擇其他輸出來源的錯誤。
音量
串流期間,若耳機支援 AVRCP 絕對音量,首頁與系統匣快顯視窗上的 音量 滑桿即可使用(否則會維持停用)。它會設定耳機本身的音量,因此傳送的音訊能保持完整解析度。旁邊的喇叭圖示可靜音(耳機音量設為 0)與取消靜音(回到先前的音量)。音量為 0 時,無論是以何種方式設定(喇叭圖示、滑桿、Windows 或耳機的按鈕),BlueCaster 都會傳送無聲,因為許多耳機在最低音量時仍會發出微弱的聲音。滑桿也會跟隨耳機上的音量按鈕與觸控操作。
Windows 音量同步(在 音訊裝置 畫面,適用於所有裝置;預設開啟)會在串流期間將某個 Windows 音量與耳機音量合而為一。同步的是 BlueCaster 擷取的裝置的 Windows 音量:使用 Windows 預設 與應用程式時為預設輸出裝置,使用虛擬裝置或單一音效裝置時為所選裝置。關閉時,Windows 音量與耳機音量各自獨立。
- 耳機的音量按鈕與手勢,以及 音量 滑桿,會調整同步的 Windows 音量;而音效設定中該裝置的滑桿會調整耳機的音量。
- 音量鍵與 Windows 音量浮出視窗一律作用於預設輸出裝置,因此只有當預設輸出裝置就是同步的裝置時(通常一律如此,但虛擬裝置模式且未開啟 連線時設為 Windows 預設輸出 時除外),才會改變耳機的音量。
- 開始串流時,耳機音量會套用 Windows 音量;停止串流時,裝置會恢復原本的音量。
- 音訊是在套用 Windows 音量之前擷取的,因此只會在耳機端降低一次音量。如果同步的音量也會改變擷取的音訊,音量就會套用兩次:此時請關閉同步(請參閱 系統層級效果應用程式)。
- 靜音不會同步:將輸出裝置靜音只會讓 PC 無聲,不會將耳機靜音。
舊版允許裝置跟隨另一個輸出裝置的音量(在開發人員模式下);該選擇已不再使用。
BlueCaster 會儲存每個音訊裝置自己的音量,並在其連線後、傳送任何音訊之前立即重新設定,因此一個裝置的音量不會沿用到另一個裝置。
耳機按鈕
串流期間,耳機上的播放/暫停、下一首與上一首控制(按鈕或觸控手勢,例如 WH-1000XM4 上的點兩下)可控制 PC 上的播放:BlueCaster 會將它們以媒體鍵傳給 Windows,再送到 Windows 媒體控制項中顯示的應用程式(Spotify、瀏覽器、媒體播放器等)。停止也會一併傳遞。
- 播放與暫停都會當作 Windows 的播放/暫停鍵,因此即使耳機認知的狀態已過時,每次點按都一定會在播放與暫停之間切換。
- BlueCaster 會告知耳機是否正在播放音訊(依據是否有音訊可擷取),因此取下時會暫停的耳機能送出正確的指令。
- 快轉 / 倒轉(按住按鈕)沒有對應的 Windows 媒體鍵,因此會被忽略。
- 音量手勢會改變耳機本身的音量;啟用 Windows 音量同步 時,同步的 Windows 音量也會跟著改變(請參閱 音量)。
- 可透過 音訊裝置 > 用音訊裝置的按鈕控制播放 關閉此功能(一個開關適用於所有裝置),例如當其他程式已經對媒體鍵作出反應、導致重複觸發時。
這需要耳機支援 AVRCP,幾乎所有耳機都支援。若不支援,串流仍會照常運作,只是無法使用按鈕。
系統層級效果應用程式
系統層級效果應用程式(等化器、音效增強器、虛擬環繞音效應用程式等)通常會安裝自己的虛擬輸出裝置。其他應用程式播放到該裝置;效果應用程式處理音訊後,再將結果播放到您在效果應用程式中選擇的輸出裝置。耳機是否能聽到效果,取決於您選擇的 BlueCaster 模式:
| 設定 | 傳到耳機的內容 |
|---|---|
| 虛擬裝置:效果應用程式本身的虛擬裝置 | 套用效果 之前 的音訊:應用程式送入效果應用程式的內容 |
| 應用程式:效果應用程式 | 套用效果 之後 的音訊:效果應用程式播放的內容(建議) |
| 虛擬裝置:效果應用程式的輸出裝置(例如設為其輸出的 VB-CABLE) | 套用效果之後的音訊(適用於不支援應用程式模式的 Windows 版本) |
在應用程式模式下,效果應用程式的輸出裝置可以是任何裝置:BlueCaster 擷取的是應用程式播放的內容,而不是裝置播放的內容,因此該裝置只是音訊的去處。為避免 PC 同時播放音訊,請選擇沒有人聽的輸出(例如螢幕的 HDMI 音訊),或將該裝置的主音量靜音。VB-CABLE 等虛擬裝置也可作為無聲的輸出目標,但並非必要。該裝置必須已啟用並已連接。
如果效果應用程式本身的虛擬裝置是 Windows 預設輸出裝置,其音量也會降低效果應用程式收到的音訊。此時若 Windows 音量同步 已開啟,音量變更就會套用兩次(在效果應用程式的輸入與耳機上)。請將它關閉,並使用耳機音量或 音量 滑桿。
為什麼 BlueCaster 沒有自己的虛擬輸出裝置
要在 Windows 輸出裝置清單中出現一個可讓效果應用程式直接選擇的藍牙耳機項目,需要核心模式的音訊驅動程式。BlueCaster 並未包含這種驅動程式:
- 撰寫與維護核心音訊驅動程式的工作量很大,而且其中的錯誤可能導致 Windows 當機(藍色畫面)。
- Windows 10 與 11 只會載入由 Microsoft 簽署的驅動程式。取得該簽章需要 EV 程式碼簽署憑證(每年數百美元)與 Microsoft 合作夥伴中心帳戶,通常需以公司名義註冊。
- 唯一能繞過簽章的方式是 Windows 測試簽章模式,但它會降低系統安全性,並使部分軟體無法運作(例如具反作弊機制的遊戲)。BlueCaster 不會依賴此模式。
應用程式模式,或 VB-CABLE 等免費虛擬裝置,都能涵蓋相同的用途。
- Windows 沒有用來變更預設裝置的公開 API。BlueCaster 與其他音訊切換工具一樣,使用未公開的 IPolicyConfig 介面(Windows 10 與 11)。
音效裝置與虛擬裝置使用 WASAPI 共用模式:取樣率為「自動」時(包括自動選擇),BlueCaster 會要求 48 kHz(耳機未列出 48 kHz 時,要求其列出的其他取樣率,以 44.1 kHz 優先),並由 WASAPI 將裝置的 預設格式 重新取樣為該取樣率。若要以 96 kHz 使用 LDAC,請在編解碼器的設定中選擇 96 kHz;不需要變更 音效設定 > 裝置內容 > 進階 中的 預設格式。
轉碼器比較
| 轉碼器 | 最適合 | 取捨 |
|---|---|---|
| LHDC V5 | 最高的位元率與取樣率(最高 1000 kbps、192 kHz) | 支援的裝置少;需要穩定的連線 |
| LDAC (HQ) | 在許多 Sony 與 Android 取向的裝置上提供最高音質 | 延遲較高,需要穩定的連線 |
| LDAC (ABR) | 音質 + 穩定性 | 位元率隨連線狀況變動 |
| aptX Adaptive | 高音質並有低延遲模式,適用於採用 Qualcomm 晶片的裝置 | 位元率隨連結狀況變動 |
| Opus | 效率高,256 kbps 下音質良好 | 支援的接收端少(Android 的 A2DP Opus、PipeWire) |
| aptX HD | 高音質,支援的裝置較多 | 固定 576 kbps |
| aptX | 支援的 aptX 裝置最多 | 16 位元,352/384 kbps |
| aptX LL | 遊戲、影片(低延遲) | 音質較低(16 位元) |
| AAC | Apple 裝置,效率佳 | 音質中等 |
| SBC XQ | 在任何 SBC 允許的裝置上都遠優於 SBC | 需要雙聲道與 bitpool ≥ 29;約 385-552 kbps |
| SBC | 相容性最高 | 音質最低 |
編解碼器 畫面在每張轉碼器卡片上,以三條橫條呈現相同的比較。
aptX 系列與 aptX Adaptive
BlueCaster 支援三種使用 libopenaptx 編碼的 aptX 轉碼器,以及使用 AKS-Logic/aptx-adaptive-linux 編碼器編碼的 aptX Adaptive。
aptX HD 與 aptX Low Latency 依照 Android / PipeWire 的實作,並通過編碼/解碼往返測試,但尚未在實際耳機上驗證。
只需要傳統 aptX? Windows 10 的內建藍牙堆疊已支援傳統 aptX(不含 aptX HD、aptX LL 或 aptX Adaptive),因此不需要 BlueCaster。BlueCaster 主要適用於 LDAC、aptX HD 與 aptX Low Latency。
| 轉碼器 | Vendor ID / Codec ID | RTP 標頭 | 狀態 |
|---|---|---|---|
| aptX Adaptive | 0x000000D7 / 0x00AD | 有 | 支援(265-427 kbps、48 / 96 kHz、24 位元) |
| aptX HD | 0x000000D7 / 0x0024 | 有 | 支援(576 kbps,24 位元輸入) |
| aptX | 0x0000004F / 0x0001 | 無 | 支援(44.1/48 kHz 時 352/384 kbps) |
| aptX Low Latency | 0x0000000A 或 0x000000D7 / 0x0002 | 無 | 支援(352 kbps) |
aptX Adaptive
aptX Adaptive 已在 48 kHz 下以實際耳機確認: 有使用者在 2.0.2-beta.6 上將它串流到 EarFun Air Pro 4+,沒有斷音或卡頓,與傳統 aptX 一樣穩定(#86)。它也通過了單元測試、上游的位元完全一致測試套件,以及針對虛擬藍牙接收端的端對端測試(tools/emu,會檢查 RTP 標頭、封包大小與訊框類型;由於沒有開放的解碼器,不會解碼音訊)。上游回報在 Linux / PipeWire 上搭配 Bose QuietComfort Ultra(第 1 代)與 B&W Px7 S2e,以 48 kHz 的高與低延遲模式可正常運作。96 kHz(高,646 kbps)也已以實際耳機確認(#86):在轉碼器的設定中選擇時使用(CLI 為 --rate 96000),前提是耳機為列出 96 kHz 的 R2 接收端(設定也只在此時提供它),低延遲時一律不使用。「自動」(包括自動選擇)以 48 kHz 串流。歡迎回報。
編碼器為 AKS-Logic/aptx-adaptive-linux 以純 Rust 撰寫的 aptX Adaptive 編碼器(MIT)。上游說明它是無塵室(clean-room)重新實作,其數值表格由合法取得的 Qualcomm 出貨二進位檔與空中擷取資料重建而來;不含任何 Qualcomm 的程式碼、SDK 或二進位檔(請參閱 授權)。
- 選擇方式:耳機既不提供 LHDC V5 也不提供 LDAC 時,「自動」會選擇它。也可以在 編解碼器 畫面選擇 aptX Adaptive,或使用
-c aptxad。 - 格式:48 kHz 立體聲、24 位元;選擇 96 kHz 時,對列出 96 kHz 的裝置(aptX Adaptive R2)以高品質使用 96 kHz;要求 44.1 kHz 時會以 48 kHz 擷取。
- 耳機:R1 接收端(無能力擴充,例如 B&W Px7 S2e)與 R2 接收端(R2 位元流)。
品質(… / -q) | R1 接收端 | R2 接收端 | 封包 |
|---|---|---|---|
高(hq) | 427 kbps | 427 kbps | 12 ms、656 位元組 |
低延遲(ll) | 265 kbps | 270 kbps | 10 ms、348 位元組 |
ll 只有 aptX Adaptive 使用;其他轉碼器會將它視為高。標準與行動等級(R1 364 / 318 kbps,R2 270 / 204 kbps)已不再作為品質選項提供:以其中之一儲存的裝置,以及 -q sq / -q mq,都會以高執行;ABR 仍會在這些等級之間切換。
ABR(轉碼器設定中的 ABR,CLI 的 -a):在高品質時,當傳送佇列中有 3 個以上的封包時,位元率會降低一個等級(先降到標準,再降到行動,不會更低),最多約每 0.5 秒一次;當佇列中的封包維持在 1 個以下約 3 秒後,會提高一個等級(最高至高)。低延遲沒有 ABR。
不存在從 aptX Adaptive「降級」到 aptX 的情況
BlueCaster 連線時,耳機會公布一份 轉碼器清單(AVDTP 串流端點)。BlueCaster 從該清單中選擇一個轉碼器。aptX Adaptive 與傳統 aptX 是清單中各自獨立的項目,因此在轉碼器內部不存在從一方「降級」到另一方的情況:
- 耳機同時列出傳統 aptX – 許多 aptX Adaptive 耳機都會如此,因為 Qualcomm 宣傳 aptX Adaptive 向下相容 aptX / aptX HD。「自動」會選擇 aptX Adaptive(高於 aptX HD 與 aptX);傳統 aptX 在您選擇它時使用,它是耳機清單中的另一個轉碼器,而不是 aptX Adaptive 的降級模式。
- 耳機只列出 aptX Adaptive(沒有傳統 aptX、aptX HD 或 aptX LL)– 選擇 aptX 時會改用耳機提供的最佳轉碼器(依 編解碼器 畫面上該裝置的順序),通常就是 aptX Adaptive 本身。
自動選擇的優先順序:LHDC V5 > LDAC > aptX Adaptive > Opus > aptX HD > aptX > aptX LL > AAC > SBC XQ > SBC(FastStream 與 Opus 05 僅在明確選擇時使用)
明確指定的轉碼器不在清單中
當您指定的轉碼器不在耳機的清單中時:
| 位置 | 行為 |
|---|---|
| 應用程式(編解碼器,自動關閉) | 依裝置的順序(除非您拖曳過卡片,否則為「自動」的優先順序),以耳機提供的第一個轉碼器連線,與「自動」相同(選擇 Opus,而耳機提供 aptX Adaptive、aptX、AAC 與 SBC 時:使用 aptX Adaptive,而不是排在 Opus 下方的 aptX;將 SBC XQ 拖曳到最前面時:使用 SBC XQ),轉碼器標籤會在幾秒內顯示改用了哪個轉碼器及原因。這適用於在耳機提供時選擇的轉碼器:編解碼器 畫面會將實際使用的轉碼器顯示為已選擇。在耳機(上次連線時)未提供時選擇的卡片,仍會照樣要求,不會改用其他轉碼器:若耳機拒絕,連線會停止並顯示錯誤。 |
CLI(-c <codec>) | 以錯誤停止(「裝置不支援 …」);如果您指定了 aptX、aptX HD 或 aptX LL,而耳機只提供 aptX Adaptive,訊息會說明此情況。加上 --fallback 即可像應用程式一樣改用其他轉碼器,或使用 -c auto。 |
---
config:
flowchart:
wrappingWidth: 480
rankSpacing: 30
---
flowchart TD
q{"耳機是否提供<br>所選的轉碼器?"}
q -->|"是"| use["以它連線"]
q -->|"否"| how{"是如何選擇的?"}
how -->|"應用程式:在耳機<br>提供時選擇了卡片"| fb["依裝置順序使用耳機提供的<br>第一個轉碼器(與「自動」相同),<br>並顯示原因"]
how -->|"應用程式:在耳機<br>未提供時選擇了卡片"| force["仍會要求;<br>被拒絕則發生錯誤"]
how -->|"CLI: -c"| cli["錯誤<br>(--fallback:與應用程式相同)"]
舊版改為提供 此編解碼器無法使用時改用其他支援的編解碼器 選項;現在一律會改用其他轉碼器。部分 2.0.2 搶先版會改用所選轉碼器下方的下一個轉碼器,而不是最佳的轉碼器。
耳機連線到其他裝置時缺少轉碼器
耳機會在串流端點 (SEP) 上提供各個轉碼器。在雙重(多點)連線時,正在串流到手機或 PC 的端點會被回報為 使用中,在該串流停止之前無法使用其轉碼器。有些耳機也只在單一裝置連線時才提供高解析度轉碼器(LDAC、L2HC 等)。此時 BlueCaster 會記錄:
remote SEP 6: sink audio, IN USE (codec not queried)
remote SEPs in use by another connection: 1 of 6 audio sink SEP(s); ...
capability discovery complete (LDAC=false ... , 1 of 6 audio sink SEP(s) in use)
錯誤訊息也會說明端點正由其他裝置使用。請中斷耳機與手機 / PC 的連線(或在耳機的應用程式中關閉雙重連線),然後再次連線。內建藍牙仍與耳機配對的 PC 也算是其他裝置。
Sony 耳機(例如 WH-1000XM4)在開啟 同時連接 2 台裝置(多點連線)時不提供 LDAC:請在 Sony Sound Connect 應用程式中將其關閉,然後重新連線。部分型號(例如 WH-1000XM6)支援 LDAC 與多點連線同時使用。
耳機自帶的應用程式(電量、降噪、EQ)需要一條到耳機的獨立連線,來自手機或這台電腦的內建藍牙。應用程式連線期間,耳機處於雙裝置連線狀態,BlueCaster 切換編碼可能變慢或失敗。切換編碼前請斷開手機或關閉該應用程式。EncoDeck 改為透過 BlueCaster 自己的連線控制耳機,不會增加第二條連線。
取樣率
aptX、aptX HD 與 aptX LL 只支援 44.1 kHz 與 48 kHz(aptX Adaptive 為 48 kHz;選擇 96 kHz 且耳機有列出時為 96 kHz)。BlueCaster 會從耳機公布的取樣率中選擇一個(「自動」時為 48 kHz,沒有則為 44.1 kHz),並讓 WASAPI 對擷取的音訊重新取樣。使用 aptX 時不需要變更 Windows 音效設定。
檢查耳機提供的轉碼器
- 連線到耳機。
- 開啟 診斷,在記錄篩選欄位中輸入
remote。
相同的記錄行也會寫入設定資料夾中的記錄檔(%APPDATA%\BlueCaster\logs\<YYYY-MM-DD>\core.log;未經遮蔽,附加到回報之前請先檢查);在 CLI 模式下則會輸出到主控台。功能相關的記錄行會確切列出耳機提供的轉碼器:
remote supports aptX (SEID ..., [...])
remote supports aptX Adaptive (SEID ..., [...])
remote vendor codec 0x........./0x.... (SEID ...) - unsupported
capability discovery complete (LDAC=false aptX HD=false aptX LL=false aptX=true aptX Adaptive=true SBC=true SBC XQ=true AAC=true LHDC V5=false Opus=false Opus 05=false FastStream=false)
aptX=true– 可使用傳統 aptX(即使同時為aptX Adaptive=true);「自動」會使用它。aptX=false、aptX HD=false、aptX LL=false且aptX Adaptive=true– 耳機只提供 aptX Adaptive;請選擇 aptX Adaptive,或使用自動、AAC 或 SBC。aptX Adaptive=true [not usable]– 耳機提供的 aptX Adaptive 不支援 BlueCaster 所需的 48 kHz 立體聲。remote vendor codec ... - unsupported– BlueCaster 未實作的其他廠商轉碼器。
媒體封包大小上限(依裝置)
每個裝置的 媒體封包大小上限(開發者 畫面,每個已儲存的裝置一個欄位;CLI:--max-packet <bytes>)設定每個藍牙封包中音訊資料的上限,範圍為 679 到 1679 位元組,讓需要不同數值的音訊裝置可以有各自的設定。「開發者」畫面在開發人員模式(設定 > 開發人員模式)下顯示;大多數使用者從不需要它。音訊裝置本身的上限 (MTU) 也一律適用;BlueCaster 會採用兩者中較小的值。變更會從下次連線開始生效。它以前是設定檔的設定(位於 進階 中):裝置會沿用其保留下來的設定檔的值(請參閱 編解碼器);1.1 之前的 v1 所儲存的設定檔,會沿用當時的全域設定值。
建議使用 1023(預設)。 它剛好可放入一個藍牙基頻封包 (3-DH5)。較大的值只能節省 1-2% 的額外負擔,而且每遺失一個封包就會遺失更多音訊。679 剛好可放入一個 2-DH5 封包,也是 LDAC 接受的最小值。
驗證媒體串流 (bluecaster_decode)
大多數耳機無法顯示正在使用的轉碼器。診斷 > 開始 HCI 擷取 / 停止 HCI 擷取 會錄製 HCI 封包記錄(設定資料夾中的 logs\hci\hci_<date>_<time>.pklg),包含轉碼器協商與傳送的每個媒體封包。以 LDAC 990 kbps 時每小時約增加 0.5 GB,因此請只擷取所需的時間。在 CLI 模式下,--hci-capture <file.pklg> 會錄製整個執行期間。
您可以在連線前或串流期間開始擷取。若在連線期間開始,BlueCaster 會先寫入它記住的連線建立封包(L2CAP 通道建立與 AVDTP 訊號,包含轉碼器協商),因此檔案仍可分析。錄製期間與停止後,「診斷」都會顯示檔案路徑。
可在 Wireshark 中開啟擷取檔,或使用 bluecaster_decode 開發者工具檢查(需從原始碼建置,請參閱 建置):
bluecaster_decode "%APPDATA%\BlueCaster\logs\hci\hci_20260925_120000.pklg" -o C:\temp\check
此工具會追蹤 AVDTP 訊號(SET_CONFIGURATION / RECONFIGURE 以及耳機是否接受),擷取 BlueCaster 傳送的媒體封包,並依協商的設定進行檢查:
| 轉碼器 | 檢查內容 | 輸出 |
|---|---|---|
| SBC, SBC XQ, FastStream, AAC, aptX, aptX HD, aptX LL, Opus, Opus 05 | 以參考解碼器完整解碼;比對訊框參數與設定;媒體酬載標頭中的訊框數 | 可試聽的 <prefix>.<n>.<codec>.wav |
| LDAC | 僅訊框標頭(同步字、取樣率、聲道模式、訊框長度)、訊框數、位元率。目前沒有開放原始碼的 LDAC 解碼器 | 僅報告 |
| LHDC V5 | 僅訊框標頭(媒體酬載標頭中的訊框數、序號)、位元率。目前沒有開放原始碼的解碼器 | 僅報告 |
| aptX Adaptive | 僅其本身的 RTP 標頭(樣本數時間戳記、延遲模式)與轉碼器封包標頭。目前沒有開放原始碼的解碼器 | 僅報告 |
bluecaster_decode --le-audio 對 LE Audio 擷取(透過 CIS 傳送的 LC3)進行相同的檢查。
對每個串流,它也會回報 RTP 序號缺漏、RTP 時間戳記的前進速度、位元率,以及藍牙控制器回報為已完成的 ACL 封包數。最後一行為 RESULT: OK 或 RESULT: PROBLEMS FOUND(結束代碼 0 或 1)。
這能顯示 BlueCaster 傳送了什麼,以及這些內容對協商的轉碼器是否有效。由於接收端只能解碼協商好的轉碼器,若耳機播放的聲音正確且報告沒有問題,就能有力證明確實使用了該轉碼器。
連線品質與 AFH
診斷 > 連線品質 會顯示 BlueCaster 在串流期間傳送的內容:實際位元率、已傳送的封包、傳送前捨棄的封包(在傳送佇列中等待過久:無線連結跟不上)、擷取時捨棄的音訊(PC 跟不上)、傳送佇列、無線電使用時間,以及 訊號(與理想值之差):連線的 RSSI(相對於控制器的黃金接收範圍;0 = 良好,負值 = 太弱;並非絕對值;低於該範圍時另附實際強度的上限,單位 dBm),以及連結在 79 個藍牙通道中跳頻使用了多少個 (AFH)。首頁與系統匣快顯視窗會將其總結為良好、普通或不佳;連結正常但 PC 捨棄了音訊時則為 PC 忙碌。
藍牙會自行避開繁忙的通道 (AFH),但它只能從錯誤中得知 Wi-Fi 的存在。BlueCaster 也會在每次連線時告知控制器應避開哪些通道(AFH 主機通道分類):
| AFH | |
|---|---|
| 自動(預設) | 只避開此 PC 所連線的 2.4 GHz Wi-Fi 通道(連線期間每 30 秒重新檢查)。PC 未連線至 2.4 GHz Wi-Fi 時(未連線、使用 5 GHz,或使用有線網路)不做任何處理。只讀取通道編號,不需要位置權限;編號為 1 到 14 的 6 GHz 通道會視為 2.4 GHz |
| 關閉 | 不指定:由控制器自行決定 |
手動,例如 6,11 | 這些 Wi-Fi 通道(1 到 14) |
對於 PC 只是收得到訊號的網路,「自動」會交由控制器本身的 AFH 處理:避開鄰居繁忙的通道會讓跳頻少掉 22 MHz,反而可能使連線變差。若仍想避開這類通道,請以「手動」輸入。
至少一律保留 20 個藍牙通道。可在 介面卡 畫面、settings.json(設定資料夾)中的 "afh",或 CLI 模式的 --afh 設定。無線電資訊列會顯示避開了哪些 Wi-Fi 通道。是否有幫助取決於環境:請使用對端接收器測試來測量。
無線分頁
診斷 > 無線 繪製介面卡為該連線回報的通道圖(Read AFH Channel Map),即使電腦沒有 Wi-Fi,也能看出哪裡有干擾。紅色通道是介面卡自身 AFH 排除的;某個 Wi-Fi 通道寬度的大部分為紅色時,分頁會指出該通道。BlueCaster 要求介面卡避開的通道(上文的自動或手動)帶有外框。
開發人員模式下,掃描 請 Windows 重新掃描 Wi-Fi,並把每個 2.4 GHz 網路畫在頻段上方,訊號越強位置越高。在 Windows 11 24H2 及之後,此清單屬於位置資訊:Windows 可能要求位置存取,關閉「允許桌面應用程式存取您的位置」時不會提供清單。掃描不會改變 AFH:自動仍只避開本機自己的通道(原因見上文)。
綜合
開發人員模式下,避開 Wi-Fi 通道 還提供 綜合,強度可選 弱、中 或 強。它避開自動所避開的通道,另外還避開兩個訊號都指向干擾的藍牙通道:11 MHz 以內聽到的 Wi-Fi 網路(從 -90 dBm 起算,-50 dBm 時計滿),以及介面卡自己在最近的通道圖中略過該通道的頻率。介面卡一直正常使用的強網路,單憑它在弱和中之下不會被避開。強度越高,越容易避開通道,始終保留的通道越少:79 個中保留 56(弱)、48(中)或 40(強)。
綜合執行期間,BlueCaster 每 2 分鐘掃描一次 Wi-Fi,和 掃描 一樣需要位置存取;沒有權限時只依介面卡的通道圖決定。綜合尚未在實際介面卡上測量過,可能比自動更差:繼續使用前請以 對端接收器測試 比較。不在開發人員模式時以自動執行。在 settings.json 與 --afh 中寫作 blend-mild、blend-medium 或 blend-strong。
延遲
聽到的聲音落後電腦的時間,是幾項延遲的總和。電腦這邊:音訊引擎的 10 ms 週期、編碼器每 10 ms 一輪的處理、轉碼器本身的音框(AAC 的 1024 個取樣是 21 ms,LDAC 封包約 5 ms),以及傳送佇列;連線良好時傳送佇列幾乎是空的(診斷 > 連線品質 會顯示它)。最大的一部分在音訊裝置裡:它會先將串流緩衝再播放,以撐過無線電中斷,並在 LDAC 與 LHDC V5 的位元率下緩衝更多。這一部分無論由什麼裝置傳送音訊都一樣,手機也不例外。
支援延遲回報(Delay Reporting)的裝置,會在串流建立後以及延遲改變時把該延遲告知 BlueCaster;診斷 > 連線品質 會以 裝置延遲(回報值) 顯示它(複製診斷資訊 也會包含它)。不支援的裝置會顯示短橫線。Android 用同一份回報來延後影像,使其與聲音保持同步;Windows 沒有這種機制,所以影片播放器的畫面會比聲音提前這段延遲。大多數播放器可以把音訊或影像延後指定的量(音訊偏移或音訊延遲設定):將它設為回報的延遲,或嘗試不同的值直到口型對上。遊戲無法用這種方式解決:較低的位元率(LDAC 中或低、音框較小的轉碼器、aptX Adaptive 的低延遲、aptX LL)能讓部分裝置緩衝得更少。
開發人員模式的 傳送佇列上限(開發者 > 編解碼器設定)是封包在被捨棄前最多可等待多久的上限,本身並不是延遲:連線良好時,沒有封包會接近它。它只在無線電停滯時有影響,此時較短的上限會以一段聲音中斷換來之後較少的延遲。
對端接收器測試 (tools/linux_sink)
連線品質畫面顯示的是 BlueCaster 傳送的內容。若要查看實際抵達的內容,請在另一台 Linux PC 上執行 tools/linux_sink/bluecaster_sink.py。它會直接驅動該 PC 的一般藍牙介面卡(內建的即可)(透過 HCI user channel 使用 Bumble),作為支援所有轉碼器(包括 LDAC)的 A2DP 接收端,測量每個抵達的媒體封包,並透過網路提供統計資料:
將 tools/linux_sink 資料夾複製到 Linux PC(只需此資料夾),然後執行:
sh setup.sh # once: decoder libraries, Python environment (Ubuntu / Debian, Python 3.11+)
sudo sh run.sh # start the receiver (root: it takes the Bluetooth adapter)
在 Windows PC 上,結束 BlueCaster(系統匣 > 結束),然後執行:
bluecaster-core.exe --cli --remote-sink auto -c ldac --test-tone
--remote-sink auto 會在區域網路上尋找接收器,除非 -d 指定了其他裝置,否則會串流到其藍牙介面卡,並每 5 秒及結束時輸出接收器的統計資料:位元率、遺失與延遲的封包(RTP 序號)、抖動與間隔、模擬播放緩衝區的斷音與跳過、串流 / 解碼錯誤,以及接收端的 RSSI(相對於其黃金接收範圍:0 = 良好,負值 = 太弱)。未加上 --test-tone 時會傳送系統音訊。--remote-sink <host[:port]> 可直接指定接收器,而不進行搜尋。
同樣的測試也能在視窗中進行:開啟 設定 > 開發人員模式,打開 開發者 > 對端接收器測試。將 接收器 留空即可在區域網路上尋找接收器(或輸入其位址),連線 會連線到其統計資料;選擇轉碼器、其設定、音源(測試音 或 系統音訊),必要時也選擇接收器提供的 L2CAP MTU 與播放緩衝區,然後按 開始。它會逐步檢查,並將這台 PC 送出的內容與接收器統計的內容並列顯示。不需要先結束任何程式:視窗會使用執行中的 BlueCaster。
兩端都從串流的第一個封包開始計算封包數,因此可以比較傳送與接收的封包數:兩者應該相等。藍牙會在控制器內部重新傳送遺失的無線封包,而且 BlueCaster 在連結存續期間不會放棄任何封包,因此無線連結不佳時,會在接收端呈現為間隔、抖動與斷音,而不是封包遺失;當連結跟不上時,傳送端會在傳送前捨棄封包。兩端都無法得知重新傳送的次數。
工具執行期間,接收端的介面卡無法供其本身的藍牙堆疊使用。探索使用 UDP 連接埠 51201 的廣播,因此兩台 PC 必須位於相同的網段(否則請輸入位址)。所有選項與統計通訊協定請參閱 tools/linux_sink/README.md。
服務與配對金鑰
音訊裝置 中已儲存的裝置有一個 服務 標籤。LE Audio 項目的標籤列出其上次連線時的 GATT 服務(不顯示金鑰)。傳統裝置的標籤點選後會開啟:
- 開發人員模式下,首先為 配對金鑰(點擊前保持摺疊,與服務相同,以 名稱 與 值 的表格顯示):Link Key(BlueCaster 為該裝置保存的連結金鑰及其類型)、Long Term Key (LTK)(附金鑰長度,例如 金鑰長度 16)與 Identity Resolving Key (IRK)(裝置的 LE 金鑰)。LE 金鑰來自連結金鑰:BlueCaster 會在配對後立即向裝置索取,已配對的裝置則在其下次連線時索取(每台裝置、每次啟動藍牙一次);雙方由連結金鑰推導出 Long Term Key(跨傳輸金鑰推導),裝置提供其 Identity Resolving Key。只有支援此功能的裝置才會提供,且僅限由 BlueCaster 主導的連線(通常是它發起的連線);設定
"le_audio_experimental": false時不會索取。BlueCaster 沒有的金鑰顯示為 無,絕不會捏造數值。缺少 LE 金鑰時,金鑰下方會顯示原因(LE Audio 已關閉、尚未要求(BlueCaster 僅在自己發起的連線中要求),或裝置的回應(無法提供、拒絕、無回應))。金鑰依藍牙傳送的順序顯示(最低有效位元組在前)。金鑰旁的複製按鈕逐一複製,例如讓同一台電腦上的另一個系統以同一介面卡使用同一配對。任何取得這些金鑰的人都能冒充該裝置:請勿分享 - 下方(非開發人員模式下僅此一項)為裝置公開的服務,以 名稱(藍牙名稱,沒有則為裝置自己的名稱,再沒有則為 Qualcomm GAIA、Google Fast Pair 等已知廠商名稱;皆無的顯示為 未知服務)與 GUID 兩欄的表格顯示。裝置連線時查詢;未連線時顯示上次連線時的清單
初始設定的裝置步驟中的 匯入 Windows 的配對(使用 WinUSB 的介面卡;當 Windows 曾透過它配對 BlueCaster 尚未儲存的裝置時顯示)會列出這些裝置並全部勾選,再接手 Windows Bluetooth 在該介面卡改用 WinUSB 之前為其儲存的連結金鑰:透過它與 Windows 配對過的耳機無需重新配對即可連線 BlueCaster。只有系統能讀取這些金鑰,因此 Windows 會要求系統管理員權限。BlueCaster 已有金鑰的裝置保留自己的金鑰(它之後與 BlueCaster 配對過,Windows 的金鑰是舊的)。Windows 用其他介面卡(例如電腦內建 Bluetooth)建立的金鑰無法使用:配對屬於介面卡的位址。Windows 不儲存金鑰類型,匯入的金鑰類型為 4。裝置的 LE 金鑰(Long Term Key 與 Identity Resolving Key)會隨連結金鑰一起匯入,供 LE Audio 使用。匯入的耳機會以 Windows 中的名稱加入已儲存的裝置,可直接連線。Windows 配對過的裝置通常不在配對模式,因此掃描中不會出現;匯入不需配對模式即可接手它。若掃描中出現了它,或輸入了它的位址,新增(設定精靈中為 連線)會先提醒它已由 Windows 配對;仍要新增 會將其作為新裝置重新配對。
LE Audio
BlueCaster 也可以向 LE Audio 耳機傳送音訊(BAP 單播,透過連線等時串流傳送 LC3),並支援耳機音量(VCP)、媒體按鍵(MCP)、一對耳機的左右兩耳(CSIP),以及遊戲耳機的低延遲模式(GMAP)。此功能依裝置選擇:只有裝置的 LE Audio 項目才會使用它。目前它只在一個介面卡(MediaTek MT7925)與藍牙模擬器上測試過,因此可能暫時無法與您的裝置搭配使用;傳統的 A2DP 是經過充分驗證的方式。
需要:
- 支援等時通道(ISO)的 Bluetooth 5.2 或更新版本的 USB 藍牙介面卡(與 A2DP 一樣指派 WinUSB)。不支援 ISO 的介面卡會以「adapter does not support LE Audio (no ISO buffers)」被拒絕。
- 支援 LE Audio(LC3)的耳機。部分型號需要先在其專用 App 中開啟 LE Audio。
使用方式:
- 讓耳機進入配對模式,在 音訊裝置 畫面掃描裝置。LE Audio 裝置會標示 LE Audio,一對耳機會標示 LE Audio 組(選擇其中任一耳即可,BlueCaster 會找到另一耳)。同時支援 A2DP 的耳機只會顯示一次:新增 會為兩種類型都儲存,由 可用時使用 LE Audio 決定透過哪一種連線。耳機支援時,透過其中一種配對即可用於兩種(傳統配對之後,BlueCaster 會向耳機索取其 LE 金鑰)。
- 在 編解碼器 畫面,裝置有兩張卡片:LC3,耳機接受的最佳 LC3 設定;以及 LC3 低延遲(預設選取),對支援 GMAP 遊戲角色的耳機使用較短的 LC3 訊框,其他耳機則無論哪種都使用媒體設定。… 在播放時顯示取樣率與位元率。只能擷取音效裝置與虛擬裝置。
- 音訊裝置 中的 輸入來源 也會把耳機的麥克風傳送到電腦,同時播放維持 LC3 音質(請參閱 音訊裝置;CLI 模式下為
--headset-mic)。
LE Audio 預設為關閉。若要使用,請在 介面卡 中開啟 可用時使用 LE Audio;只有介面卡支援 LE Audio 時才會顯示此開關,切換後藍牙會重新啟動。已連線的裝置隨後會立即重新連線,透過 LE Audio 或傳統連線。
在 CLI 模式下,--le-audio -d <位址> 會傳送到 LE Audio 裝置,--le-device <位址> 加入群組中的另一台裝置(另一耳),--le-scan 列出附近的 LE Audio 裝置,--le-low-latency / --le-preset <名稱> 選擇設定(所有 LE 選項請見 bluecaster-core.exe --cli -h)。
更新
BlueCaster 最多每天檢查一次 GitHub Releases(設定 > 啟動時檢查更新;檢查更新時包含搶先版 也會通知 Beta 版本)。有新版本時,對話方塊會以幾行文字說明新功能(完整的說明可從連結開啟),並提供 立即更新(免安裝版為 開啟下載頁面)與 稍後;按 稍後 後,直到下一個版本之前都只會在「設定」中顯示。「設定」中也會顯示通知:
- 安裝版:立即更新 會下載已簽署的更新。音訊裝置連線期間會等待,並在中斷連線後才安裝,因此更新絕不會中斷音訊。接著 BlueCaster 會關閉、安裝新版本,然後自動重新啟動。
- 免安裝版(或未進行更新簽署的組建):開啟下載頁面 會開啟發行頁面。
在開發人員模式下,開發者 > 應用程式設定 > 檢查更新時包含 Alpha 版 也會通知 Alpha 版:在兩個 Beta 之間發布的組建(例如新晶片支援),發布更頻繁,測試較少。開發人員模式關閉時不會通知。
疑難排解
聲音斷斷續續或卡頓、連線失敗,或位元率低於預期:請參閱 斷音與連線問題,其中整理了目前為止的回報最後查出的原因,以及應該先檢查什麼。
視窗顯示核心未執行
視窗需要 bluecaster-core.exe 位於同一資料夾,並會自行啟動它。「BlueCaster 核心未執行」表示無法啟動核心:請重新安裝 BlueCaster(或重新解壓縮免安裝版 zip)。「核心版本不同」表示兩個程式來自不同版本:請安裝兩者的相同版本(安裝最新版本即可)。
指派或還原驅動程式失敗
- 「系統管理員權限要求已遭拒絕」:驅動程式未變更。請再按一次按鈕,並允許權限要求。
- 「變更驅動程式失敗」:詳細資料請查看 診斷 > 記錄。
- 「介面卡未恢復為先前的驅動程式」:如果介面卡是用 Zadig 設定的,Windows 可能會再次選用 Zadig 的 WinUSB 驅動程式套件。請在裝置管理員中刪除該驅動程式套件(介面卡 > 解除安裝裝置,並勾選「嘗試移除此裝置的驅動程式」),然後拔下並重新插入介面卡。
- 「驅動程式已還原,但 Windows 一次只使用一個藍牙介面卡」:Windows 中有另一個藍牙介面卡(例如電腦內建的介面卡)正在使用中。若要改在 Windows 中使用此介面卡,請在裝置管理員中停用另一個介面卡,然後拔下並重新插入此介面卡。
- 介面卡恢復為原本的驅動程式後,某個裝置無法在 Windows 中連線:請在 Windows 設定中將其移除後重新配對。BlueCaster 只會將 Windows 曾透過此介面卡配對過的裝置的配對交給 Windows,不包括其 LE 金鑰。
藍牙介面卡沒有回應
如果介面卡開啟後沒有任何回傳(不回應 HCI Reset),BlueCaster 會在 5 秒後放棄,再開啟一次;若仍無回應,會顯示「藍牙介面卡沒有回應」。請拔下介面卡,重新插入後再試一次(或按 重新啟動藍牙)。不需要重新啟動 BlueCaster:啟動失敗時會釋放介面卡,每次重新啟動都會再次初始化介面卡。
為避免介面卡卡住,BlueCaster 在開啟介面卡時會重設其 USB 管道,關閉時會傳送 HCI Reset。
更新後的配對問題
BlueCaster 使用 SSP (Just Works) 搭配 General Bonding 進行配對,並儲存連結金鑰,讓耳機不需重新配對即可重新連線(v2 會讀取 v1 的連結金鑰)。如果您曾用舊版 BlueCaster 與耳機配對,而耳機已無法連線,請在耳機上移除 BlueCaster 的配對(清除配對清單的方法請參閱耳機說明書),然後重新配對。
連線逾時
BlueCaster 會註冊 SDP 記錄(A2DP Source、AVRCP Controller / Target),讓耳機能將它識別為音訊來源。如果連線嘗試逾時,半開的連線會被拆除,因此您可以直接重試,不需重新啟動 BlueCaster。請確認耳機已開機、在範圍內,且未連線到其他裝置。
當連結建立後沒有傳輸任何資料,或耳機沒有回應時,失敗的連線會自動重試(最多 3 次)。如果耳機已不認得配對(已重設,或已與其他 PC 配對),會捨棄儲存的金鑰並重新配對一次。之後錯誤訊息會說明發生了什麼事:
| 訊息 | 意義 |
|---|---|
| 裝置沒有回應 | 未開機、超出範圍,或無法連線(新裝置:需處於配對模式) |
| 連線已建立,但之後沒有傳輸任何資料 | 無線電環境:請再試一次,或移動介面卡 / 裝置 |
| 裝置有回應,但隨後自行結束連線 | 裝置目前不接受連線:正在關機、充電或已連線到其他裝置 |
| 驗證失敗,重新配對後仍然失敗 | 將裝置切換到配對模式,或移除其配對清單項目,然後再試一次 |
與耳機的 第一次連線 需要配對模式;之後會使用儲存的連結金鑰自動重新連線。如果耳機已在配對模式仍然失敗,它可能仍連線著手機或其他電腦(包括透過 LE Audio):請在那邊中斷連線,若耳機的應用程式有此選項則關閉 LE Audio,然後讓耳機進入配對模式並再次連線。此時記錄會顯示 signaling connection failed (0x66)(因安全性被拒絕:耳機保留了先前配對的金鑰,例如與這台電腦的 Windows 藍牙的配對)或 (0x67)(因資源不足被拒絕:正被其他裝置佔用)。
連線中斷時會自動重新連線(最多 10 次)。若 PC 在串流期間進入睡眠,BlueCaster 會在恢復後重新連線;這些嘗試不計入次數。
如果您以關閉再開啟耳機的方式在 PC 與手機之間切換耳機,請關閉 音訊裝置 > 自動重新連線。此時中斷的連線會維持中斷,BlueCaster 也會釋放藍牙介面卡,讓耳機可以連線到手機。要再次連線到 PC,請在首頁按 連線。