自從換了Sony手機後,手機的喇叭音質可以說是比螢幕內建的揚聲器要好的多,所以就想要用手機當電腦喇叭來播放電腦的音樂。那有沒有可能透過區域網路(例如Wifi)來播放音效呢?在電腦是Linux的情況下,我們可以利用內建的PulseAudio server達成此目的。
註:本篇文章主要是給類Unix系統用的,Windows雖然也可以,但建議改用更直觀的SoundWire。
註2:PulseAudio不適合需要極低延遲的音樂播放。
1. 設定電腦的Pulse Audio
現在大多數Linux發行版應該都是採用Pulse Audio當音訊伺服器,macOS和Windows自行到官網下載安裝。
- 安裝後可透過此指令確認安裝情況,應該會跑出一堆音訊裝置:
|
|
- 接著確定要使用的音訊裝置。目前我的電腦有HDMI音訊和主機板音效卡這2個音效輸出:
|
|
我的想法是手機播放時電腦就得靜音,也就是說一開始是用HDMI的音訊輸出,手機開始播放後,就透過音效面板將電腦切換到沒有插喇叭的主機板音效卡。
接著要設定串流用的腳本。新增一個
pashare.sh
的檔案。source
後面填寫的是音效卡ID。
|
|
- 賦予腳本執行權限:
|
|
上面pashare.sh腳本使用的通訊埠是8000,因此防火牆要開啟8000的通訊埠。
執行腳本:
|
|
2. 安裝用於串流的手機APP
Android手機下載Simple Protocol Player,iOS手機下載PulseAudio Streaming。
- 讓電腦和手機連線到同一個網路。電腦輸入
ifocnfig
查看區網IP:
|
|
手機開啟Simple Protocol Player,填入電腦的IP和通訊埠,Sample Rate選48000,點選播放鍵。
在電腦上播放音樂,手機應該就會有聲音了。若要避免兩邊一起播放,透過音效面板將電腦的音訊輸出切換成主機板音效卡(沒有接喇叭),這樣就只有手機有聲音。
如果要停止串流音訊,在電腦上執行骯剛剛寫的腳本:
|
|
3. 總結
實測偶爾會卡卡的,要看Wifi穩定度。
如果要把手機音訊用電腦播放呢?只要手機裝Termux再反向操作就可以啦~