快轉到主要內容

Linux PipeWire透過AirPlay協定播放音樂

分類   Linux系統 Linux使用技巧
標籤   AirPlay PipeWire
🗓️ 民國113年 甲辰年
✍ 切換正體/簡體字
目錄

無意間發現PipeWire有個模組叫做RAOP Discover (libpipewire-module-raop-discover),讓Linux能將音樂傳輸到AirPlay音響。啟用後Linux會透過Avahi服務,探索區域網路中的AirPlay裝置,並自動連線。

PulseAudio也有叫做module-raop-discover的模組,可透過pipewire-pulse相容層運作。

這裡我們使用PipeWire載入模組。

1. 測試環境
#

Arch Linux版本:6.6.46

PipeWire版本:1.2.2


接收端得使用Mac電腦或者支援AirPlay的HomePod音響,某些第三方的AirPlay接收軟體也行,例如Android的AirScreen。

開源的UxPlay(版本1.69)無法處理RAOP的音訊播放請求。

2. 載入模組
#

  1. 安裝pipewire-zeroconf套件
sudo pacman -S pipewire-zeroconf
  1. 啟用Avahi服務
sudo systemctl enable --now avahi-daemon
  1. 用pw-cli載入模組
pw-cli -m load-module libpipewire-module-raop-discover
  1. 編輯~/.config/pipewire/pipewire.conf.d/raop-discover.conf,設定登入後自動載入
context.modules = [
   {
       name = libpipewire-module-raop-discover
       args = { }
   }
]
  1. GNOME 46桌面的音訊播放面板會自動出現AirPlay裝置,但KDE 6不會,所以我們這裡用pavucontrol統一控制。

  2. 開啟pavucontrol,選取AirPlay作為輸出裝置

從音效條的動畫來看,播放是有輸出音效沒錯,但AirPlay接收端卻無法播放音效,可能是bug?

Helvum的圖表顯示AirPlay Sink確實有出現沒錯啊!

啟用除錯輸出:PIPEWIRE_DEBUG=3 pw-cli -m load-module libpipewire-module-raop-discover,也看不出所以然。沒幾下就broken pipe

參考資料
#

相關文章

Linux&樹莓派當作藍牙喇叭接收器,電腦播放手機音樂
分類   Linux系統 Linux使用技巧
標籤   PulseAudio PipeWire KDE Connect Raspberry Pi
XWayland Rootful Mode:Wayland跑巢狀X11工作階段視窗
分類   Linux系統 Linux使用技巧
標籤   X Window Wayland
遠端開機:Ubuntu如何啟用Wake-On-Lan,透過NetworkManager設定
分類   Linux系統 Linux使用技巧
標籤   Remote Desktop Ubuntu

留言板

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。要討論程式碼請用Giscus,匿名討論請用Disqus。

這是Giscus留言板,需要Github帳號才能留言。支援markdown語法,若要上傳圖片請貼Imgur或Postimages。您的留言會在Github Discussions向所有人公開。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。為防止垃圾內容,有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請善用圖床網站。