您當前的位置:首頁 > 遊戲

M1 Macbook的藍芽耳機問題

作者:由 Yang Dan 發表于 遊戲時間:2021-03-31

在我前面的文章裡面也提到,在M1 Mac最初的版本里面,藍芽容易遇到斷連的問題,具體的情況可以參考我之前的文章。我那篇文章裡面我同樣也提到,雖然隨著MacOS 11。2

版本的更新,藍芽斷連問題有了很大的改善,據說是更新了博通的藍芽驅動,但是又帶來了新的問題,就是偶然情況下,藍芽耳機的音質會變得很差,持續幾秒鐘之後又會回覆正常。你明顯的感覺是藍芽切換到了用聽筒的那個音質,然後又切換回來。這個通常是你的手機來了訊息,因為訊息會發提示聲音而Airpods Pro會在Macbook和iPhone之間自動切換所導致的。

結果這個問題這幾天突然變得非常嚴重,嚴重到什麼程度呢,就是我在Macbook上面一直是那個很措的音質,且不回去了。無論是我如何重啟藍芽或者重啟電腦都不解決這個問題。這樣豈不是把我花費兩千塊的藍芽耳機幹成100塊音效了,雖然藍芽的音質也不咋地,但是聽起來實在是彆扭。

出現這樣的問題你首先需要思考的是有什麼特徵而不是跑到網路上面問問題。說到這裡,稍微展開說一下,問問題是一個及其重要且高明的技巧,通常情況下問正確的問題會很大程度幫助你找到解決問題的辦法。而問問題的人,通常容易翻車的是問了問題和部分你認為的“答案”,結果帶翻了整個討論,這樣的現象通常稱之為XY問題。在這個網站有詳細的描述。

The XY Problem

例如,你去知乎或者論壇上面問,為什麼我的藍芽音質突然變差了,你可能得到的答案是,藍芽音質本來就很差,換耳機吧之類的答案。

首先我們需要確定為什麼藍芽的音質變差,可能的原因是編碼方式的改變。在Big Sur以前的版本有一個很容易的辦法可以看到當前採用的編碼方式(Codec),但是不知道為啥Big Sur取消了這樣的顯示。在以前版本里面,按住Option同時點選藍芽圖示,可以顯示更多的資訊。Big Sur這樣的快捷組合健同樣有效,但是卻不顯示Codec。大家可能聽說過XCode蘋果御用開發工具,可能不太知道的是沒一個XCode都有一套額外的工具叫Additional Tools。這些工具通常都是方便軟硬體開發工程師使用的工具,在Big Sur之前有一個工具叫藍芽瀏覽器(Bluetooth Explorer),這個工具可以設定、觀察很多跟藍芽相關的問題。這個工具在Big Sur裡面竟然沒有了,這有時啥神邏輯。好吧,雖然Additional Tools 12沒有了,11版本是不是還可以用?答案是可以的。

到蘋果開發者網站 More Software Downloads - Apple Developer 下載 Additional Tools 11。4,然後提取BluetoothExplorer,在Big Sur上面完全可以正常執行。

點選Bluetooth Explorer裡面的Audio Graphs,透過觀察你可以發現在藍芽音質變差的期間,Macbook竟然在用SCO編碼器,從上面的速率你也可以看出來位元速率非常的低。

好吧,到此為止問題是找到了,就是藍芽耳機在這個情況下切換到一個非常低的位元速率的編碼方式SCO,我們仍然不知道為什麼?到此,你如果去網路上面搜尋就更加容易找到答案,就是如果你的藍芽耳機,例如我用的Airpods Pro同時承擔話筒輸入的時候,MacOS會自動切換到SCO這樣的編碼方式。這個實現邏輯也非常的奇怪,難道我用Airpods Pro就不需要高音質的話筒輸入了?

臨時解決方法是在聲音配置那裡把聲音輸入從Airpods Pro切換到另外,比方說我此時我用Macbook的自帶話筒。

於是我們再次觀察Audio Graphcs,你會發現此時編碼方式已經切換到AAC,位元速率也到正常的位元速率256K。

雖然這個邏輯是有點神,看起來是Big Sur的鍋,不過Big Sur也不是一無是處,AAC這個編碼方式在Big Sur以前是無法預設啟動的,只會到SBC這個相對低位元速率的編碼方式。現在看起來如果條件允許的情況下,Big Sur還是會啟動AAC這樣的無損編碼方式。但是,這仍然不爽是不是?

這裡又要祭出Bluetooth Explorer這個大旗了,在Audio Options,你可以強制設定系統使用AAC編碼方式,設定如下。

現在世界清淨了,我又可以安安靜靜的聽音樂了。這中間的曲折或者理由我自然也不清楚,蘋果為什麼會如此設計他肯定不會說,不過我猜測跟M1 Mac用的藍芽晶片博通有點關係。

標簽: 藍芽  big  Sur  編碼方式  音質