說明
MusicBee UPnP Plugin 的用途
一個適用於 MusicBee 的開源外掛程式,可將您的媒體庫連接到家用網路上的 UPnP/DLNA 裝置 — 手機、智慧電視、高傳真串流播放器、網路喇叭 — 無需雲端,也無需登入。它是 Steven Mayall 原始 UPnP 外掛程式的一個分支,重新建構的目的是讓瀏覽一個龐大、多樣化的媒體庫從另一個裝置上變得愉快。
有兩件事使這個分支與普通的 UPnP 伺服器區分開來,它們是選擇它的原因:
- 它發佈的是 MusicBee 的全部內容 — 不僅僅是「音樂」。 您的篩選器、播客、有聲書、廣播電台、收件匣和您的播放清單都作為它們自己的可瀏覽容器出現在其他裝置上,與音樂並列。大多數伺服器只顯示一個扁平的音樂媒體庫,別無其他。
- 這些節點中的每一個都可以單獨顯示、隱藏和塑造。 您決定裝置看到哪些節點,並為每個節點設定自己的發現路徑 — 您透過它向下鑽取的方式(專輯藝人 → 專輯 → 曲目、扁平曲目列表、按流派、按年份…)。一個擁有 30 萬首曲目的媒體庫最終瀏覽起來就像一個組織良好的媒體庫,而不是一個扁平的資料傾印。
在這兩個主要概念之下,此外掛程式圍繞著一個結構性事實組織:MusicBee 可以扮演三種不同的網路角色,設定對話框中的每個畫面都屬於其中之一。弄清楚這三個角色,對話框的其餘部分就會不言自明:
- 伺服器 — 其他裝置瀏覽 MusicBee 媒體庫並從中提取曲目。這是上述兩個主要功能所在。
- 渲染器 — MusicBee 成為其他應用程式可以播放到的目標,就像網路喇叭一樣。
- 控制點 — MusicBee 將自己的音訊輸出到遠端喇叭或串流播放器。
您可以使用一個角色或全部三個。只開啟您需要的。在本指南中,每個設定都在其所屬功能旁邊進行解釋 — 沒有單獨的「設定」列表需要交叉參考。
安裝
- 從發佈頁面下載
mb_UPnP_yaiol.dll。 - 將其複製到您的 MusicBee 插件資料夾中,通常是
C:\Users\<you>\AppData\Roaming\MusicBee\Plugins\。 - 重新啟動 MusicBee。
- 開啟 編輯 → 偏好設定 → 插件,找到 MusicBee UPnP Plugin,然後點擊 設定。
yaiol DLL 具有獨特的檔案名稱,因此它可以與原始插件並存於磁碟上並同時運行,而不會發生衝突。
伺服器 — 其他裝置瀏覽您的媒體庫
UPnP 是一種音訊裝置透過區域網路互相尋找和驅動的協定,其中每個參與者都扮演一個定義好的角色。啟用伺服器角色(UPnP 伺服器開關)後,MusicBee 扮演媒體伺服器角色:它會回應您區域網路上的探索請求,並將其媒體庫提供給任何請求的裝置。從其他裝置上,您會看到一個媒體樹並點擊播放;音訊會從 MusicBee 內建的 HTTP 伺服器直接串流到該裝置。MusicBee 只是來源 — 其他裝置負責控制。
您為何會使用它。 它將儲存您整個收藏的電腦變成一個網路來源,其他所有小工具都可以存取,無需複製檔案或登入任何內容。這是此外掛程式中分支出投入最重的一半,也是兩個主要功能所在 — 您發佈的內容(如下)和每個節點的形狀。
何時關閉它。 僅當您從不從其他裝置瀏覽 MusicBee 時。此角色獨立於其他兩個;您可以提供媒體庫,同時仍關閉渲染器和控制點角色。
一些伺服器範圍的設定與開關並存:其他裝置在其清單中顯示的伺服器名稱、MusicBee 綁定的網路介面和連接埠(請參閱在網路上互相尋找),以及伺服器一次將提供多少個同時串流的最大連線數上限。

設定
| 控制項 | 功能 |
|---|---|
| UPnP 伺服器:啟用 UPnP 裝置以瀏覽和播放 MusicBee 媒體庫中的內容 | 伺服器角色的主開關 — 允許 UPnP 裝置瀏覽 MusicBee 媒體庫並從中播放。 |
| 伺服器名稱: | 其他裝置發現 MusicBee 時顯示的名稱。 |
| 最大連線數: | 伺服器將提供的最大同時檔案串流數(預設 16,範圍 1–256)。如果裝置發出許多平行請求導致出現 ⚠ Max Conn 標誌,請提高此值。重新啟動後生效。 |
| 更新 MusicBee 中的播放統計資料 | 將透過 UPnP 播放的曲目計入 MusicBee 的播放次數和上次播放時間戳記。 |
發佈整個 MusicBee,而不僅僅是音樂
這是此外掛程式分支的兩個主要功能中的第一個。一個普通的 UPnP 伺服器向網路提供一個單一的扁平「音樂」媒體庫。而這個則會將 MusicBee 組織的每個內容區域都作為其自己的頂層容器呈現在瀏覽裝置上。
MusicBee 可以發佈的七種內容
當裝置瀏覽 MusicBee 時,它登陸的根目錄可以並排提供所有這些內容:
- 音樂 — 您的主要媒體庫,可隨心所欲地塑造(請參閱下面的發現路徑)。
- 篩選器 — 您已在 MusicBee 主視圖頂部使用的篩選器標籤(
音樂、全部、最愛、爵士樂篩選器、古典樂篩選器,無論您設定了什麼)都會顯示為入口點,反映您已經思考媒體庫的方式。篩選器是從 MusicBee 本身使用的相同檔案中即時讀取的,因此它們無需配置即可保持同步。 - 播客 — 您的播客訂閱,每個都開啟到其劇集,並帶有訂閱封面。
- 有聲書 — MusicBee 的有聲書類別。
- 廣播 — 您儲存的網路廣播電台。
- 收件匣 — MusicBee 中新添加、尚未歸檔的曲目收件匣。
- 播放清單 — 您的 MusicBee 播放清單。
由於這些內容直接來自 MusicBee,因此無需單獨設定 — 在 MusicBee 中訂閱播客或添加電台後,下次裝置瀏覽時即可從網路存取。每個內容是否實際出現以及它呈現的形狀,是下一個功能的工作。
預設情況下,篩選器和播放清單會位於各自整齊的包裝資料夾中。每個來源是否實際出現、它位於何處(包括將您最常使用的釘選在瀏覽根目錄的頂部,並與其同類別分組),以及它所呈現的形狀,都由下一個功能根據每個節點決定。
此幫助文件的早期版本將「無播客根容器」列為限制。這已不再是事實 — 播客像其他所有來源一樣發佈。
顯示、隱藏和塑造每個節點
這是第二個主要功能,也是讓這個分支得名的功能。如果您無法控制七個來源,那麼發布它們將會是雜訊 — 因此每個公開的節點都可以獨立切換、釘選到根目錄,並擁有自己的探索路徑。
您可以在設定對話方塊的檢視索引標籤上管理所有這些,該索引標籤將整個公開樹狀結構顯示為核取清單。模式始終相同:勾選您要操作的節點,然後使用樹狀結構旁的控制項一次設定所有節點 — 使它們可見或隱藏,將它們釘選到樹狀結構的頂部,或應用路徑範本。因此,您可能會公開音樂、篩選器和播放清單,隱藏收件匣和廣播,將您的爵士樂篩選器釘選到根目錄,並為播客提供按訂閱的形狀 — 每個都獨立。

顯示、隱藏並釘選每個節點
有兩個開關決定節點的是否顯示以及顯示位置,這與其呈現方式無關。兩者都位於檢視分頁上,作為三態核取方塊,作用於您在樹狀結構中勾選的每個節點:
- 可見 — 裝置是否能看到該節點。取消勾選即可隱藏節點;它仍會保留在您的媒體庫中,只是不再被廣告。(因為它作用於已勾選的集合,所以當您的選擇部分可見、部分隱藏時,核取方塊會顯示陰影的「混合」狀態。)隱藏的節點在樹狀結構中會呈現灰色 — 且當資料夾內的所有節點都被隱藏時,該資料夾也會變灰 — 因此一眼就能看出哪些內容仍然可見。
- 頂層 — 該節點是否也被釘選在瀏覽根目錄的頂部。釘選是累加的:該節點仍會出現在其常規的包裝資料夾中,並在根目錄頂部附近獲得一個副本,與其同類別的項目分組 — 釘選的篩選器直接位於篩選器資料夾下方,釘選的播放清單直接位於播放清單資料夾下方 — 這樣您的捷徑就能與其所屬的項目保持在一起。釘選的節點在對話方塊中會標示 ★,讓您一眼就能看出哪些是被提升的。
當篩選器或播放清單釘選到根目錄時,可能難以與正常的頂層來源區分,因此您可以在其顯示名稱前加上一個簡短的前綴 (在媒體庫選項分頁中設定)。前綴是字面上的 — 您輸入的任何內容都會原封不動地放在名稱前面,因此如果您需要,請包含自己的尾隨空格。
範例。 您主要透過您的爵士樂篩選器以及您的週五夜晚播放清單進行導覽,兩者目前都位於篩選器和播放清單包裝資料夾內。
您在「檢視」樹狀結構中勾選這兩個節點,然後按一下頂層。現在,每個節點在對話方塊中都會顯示一個 ★。在瀏覽裝置上,它們仍然像以前一樣出現在其包裝資料夾內,但也會在根目錄高處獲得一個副本,每個副本都位於其各自的類別旁邊:釘選的爵士樂篩選器直接位於篩選器資料夾下方,而釘選的週五夜晚播放清單直接位於播放清單資料夾下方。當篩選器前綴設定為 Filter: 且播放清單前綴設定為 Playlist: 時,這兩個釘選的副本會顯示為Filter: Jazz和Playlist: Friday Night — 與其在包裝內的副本不同,並且每個都位於其各自類別的資料夾旁邊。取消勾選其中任何一個的頂層,其釘選的副本就會消失,而包裝資料夾中的副本則保持不變。
這取代了舊有的全域「在根目錄公開篩選器」/「在根目錄公開播放清單」開關:現在釘選是您針對任何來源逐個節點做出的選擇,而不是篩選器和播放清單的全部或無的切換。
設定
| Control | What it does |
|---|---|
| 可見 | 顯示或隱藏每個已勾選的節點。隱藏的節點會保留在您的媒體庫中,但不會向裝置宣傳。當選取項目部分可見時,會顯示陰影「混合」狀態。 |
| 最上層 | 也會將每個已勾選的節點釘選在瀏覽根目錄的頂部,並按其類型分組 — 篩選器釘選在「篩選器」資料夾下方,播放清單釘選在「播放清單」資料夾下方 (附加 — 節點也會保留其正常位置)。已釘選的節點會在對話方塊中顯示 ★。 |
| 篩選器前綴 (在根目錄時): | 當篩選器釘選到根目錄時,放在其名稱前面的文字前綴 (有助於將釘選的副本分組)。 |
| 播放清單前綴 (在根目錄時): | 當播放清單釘選到根目錄時,放在其名稱前面的文字前綴。 |
探索路徑 — 每個節點的向下鑽取路線
探索路徑是瀏覽器在節點內部行走的路線。同一個節點可以呈現為專輯藝人 → 專輯 → 曲目,或者單一的扁平曲目列表,或者按流派然後藝人分組,或者按年份分組。路徑由一個或多個層級(每個層級分組的欄位)組成,以葉節點(最深層級顯示的內容 — 專輯及其曲目,或扁平曲目列表)結束。一個節點甚至可以同時攜帶多個路徑,因此它提供了多種進入方式。
不同的內容需要不同的形狀,錯誤的形狀會使節點無法使用。音樂需要專輯藝人分組;播放列表需要扁平的有序列表;播客需要其訂閱。每個節點都能得到正確的答案,因為每個節點都擁有自己的路徑。
**實例。**您有一個包含 5,000 首曲目的爵士樂篩選器和一個包含 30 首曲目的「週五之夜」播放列表,兩者都已公開。
- 對於爵士樂篩選器,您應用一個路徑為專輯藝人 → 專輯 → 曲目的範本。在裝置上,您鑽取:藝人,然後該藝人的專輯,然後專輯的曲目按光碟和曲目順序排列。
- 對於播放列表,您改為應用扁平曲目範本。打開它會顯示按播放列表順序排列的 30 首曲目,中間沒有藝人或專輯層 — 正是播放列表應有的樣子。
相同的外掛程式,相同的對話框,兩個節點,兩種完全不同的形狀 — 因為路徑是節點的屬性,而不是全域設定。您無法在不知道節點攜帶哪個範本的情況下預測其在裝置上的佈局;這就是為什麼需要詳細說明的原因。
節點不僅接收範本的副本 — 它還遵循它。檢視樹顯示每個節點遵循哪個範本,就在節點名稱之後,並且在路徑標籤上編輯範本會立即重塑所有遵循它的節點 — 無需逐個節點重新應用。將範本應用於隱藏節點也會使其再次可見:應用是「向我顯示這個,形狀像那樣」的手勢,而隱藏則保留在「可見」核取方塊中。每個範本列都顯示一個即時的**(n)*計數,表示遵循它的節點數量,並且只有當該計數為零時才能刪除範本 — 只要有任何內容遵循範本,刪除按鈕就會保持禁用狀態,因此節點永遠不會因刪除而變成孤立。要確切查看哪些*節點遵循範本,檢視樹旁邊的漏斗按鈕會將樹篩選為僅顯示這些節點;選擇另一個範本會重新篩選,關閉漏斗會恢復完整的樹。刪除未使用的範本現在也生效了 — 隨附的預設值不再在下次外掛程式載入時悄悄重新建立。
當路徑以專輯 → 曲目葉節點結束時,您還可以決定什麼算作一張專輯。您不是嚴格按專輯標題分組,而是選擇一個或多個欄位 — 專輯、排序專輯、年份、專輯藝人 — 這些欄位共同決定哪些曲目合併為一張專輯,其標題如何讀取,以及專輯出現的順序,每個欄位都可以按升序或降序排序。添加專輯藝人可以將兩個同名但不同藝人的專輯分開;添加年份降序會將藝人的專輯按最新優先順序排列。當您按年份分組時,MusicBee 提供兩個反映其自身的欄位 — 年份,完整的日期標籤(可以包含像 2024-03-15 這樣的完整日期),以及年份 (yyyy),僅四位數的年份 — 因此選擇年份 (yyyy) 會將一年的所有發行版聚集在一起,而不是按確切日期拆分。
預設值是合理的 — 新篩選器按專輯藝人塑造,播放列表和收件匣獲得合理的預設值 — 因此對於常見情況,您無需更改任何內容。當您希望特定節點以不同方式塑造時,請使用「檢視」標籤。
設定
您在路徑標籤上建立命名、可重複使用的路徑範本,然後將它們應用於檢視標籤上的節點。

| 控制項 | 功能 |
|---|---|
| 套用至已勾選的端點 | 使您在樹中勾選的每個節點都遵循當前選定的範本(如果它被隱藏,則重新顯示它)。 |
| 全部展開 / 全部收合 | 展開或摺疊整個端點樹。 |
| 僅顯示符合所選範本的節點 | 漏斗開關:將端點樹篩選為僅顯示遵循選定範本的節點。選擇另一個範本以重新篩選;關閉開關以恢復完整的樹。 |
| 範本: | 正在編輯的命名路徑範本。 |
| ↑ / ↓ | 在列表中向上或向下移動選定的範本,以排序您的範本呈現方式。 |
| 依據分組: | 層級分組的欄位(例如專輯藝人)。 |
| 葉節點: | 最深層級顯示的內容。 |
| 專輯 → 歌曲 (AT) | 葉節點模式:專輯 → 曲目 — 鑽取專輯以查看其曲目。 |
| 平面歌曲 (T) | 葉節點模式:扁平曲目 — 單一的扁平曲目列表。 |
| 在每個層級包含[所有曲目] | 在每個層級添加一個**[所有曲目]捷徑。僅在專輯 → 曲目**模式下顯示。 |
| 專輯分組方式: | 定義什麼算作一張專輯,其標題如何讀取,以及專輯出現的順序 — 選擇一個或多個欄位(專輯、排序專輯、年份、專輯藝人…),每個欄位都有自己的升序/降序開關。僅在專輯 → 曲目模式下顯示。 |
| 新增 / 移除 | 在範本中添加或刪除路徑。 |
路徑會根據其所屬節點進行類型化
並非每個欄位都對每種節點都有意義。廣播電台沒有專輯或年份;播客節目有訂閱、資料夾和發布日期,但沒有專輯藝人。因此,每個路徑屬於三個類別之一 — 標準(您的音樂、篩選器、有聲書、收件匣和播放清單,這些都帶有完整的標籤)、廣播或播客 — 該類別同時決定兩件事:您可以按哪些欄位分組,以及該路徑可以應用於哪些節點。
在路徑標籤上,範本清單分為兩部分:標準 — 您的範本所在,以及所有新範本的建立位置 — 和一個保留部分,其中包含廣播和播客範本。當您編輯標準範本時,欄位選單提供所有內容;廣播範本只提供電台實際擁有的欄位;播客範本只提供節目擁有的內容 — 其資料夾、其訂閱和其發布年份。在檢視標籤上,應用範本只會點亮其所屬的節點 — 其餘的會變灰且無法勾選 — 因此標準路徑永遠無法落在廣播或播客節點上。
事實上,您根本不會將任何內容應用於廣播或播客:每個都永久與其類別的範本配對。在路徑標籤上重新塑造廣播或播客範本,節點會自行跟隨;選擇保留範本後,應用按鈕會被停用,因為沒有什麼可以應用。這可以防止您透過在節點無法填寫的欄位上分組來建立一個默默地產生空白的路徑 — 由於已跟隨的範本永遠無法刪除(請參閱上面的探索路徑),廣播和播客範本始終存在以供重新塑造。
藝人依其排序名稱歸檔
在任何音樂形狀的節點中,藝人都是依據排序專輯藝人標籤進行分組和字母排序,而不是依據顯示名稱。這是令人驚訝的部分,因此以下是實際發生的情況。
實例說明。 假設一個音軌被標記為:
- Artist =
Bob Dylan- Sort Album Artist =
Dylan, Bob在瀏覽樹中,Dylan 歸檔在字母 D 下(來自
Dylan, Bob),而不是在 B 下(來自Bob Dylan)。排序標籤同時驅動分組和字母位置,就像高傳真瀏覽器或唱片行會歸檔的方式一樣。
這是自動的,完全由您現有的 MusicBee 標籤驅動 — 無需配置。
多值標籤展開
當音軌的專輯藝人(或流派)包含多個值時,該音軌會分別出現在每個值下,而不是建立一個合併的條目。
實例說明。 一個音軌的專輯藝人包含兩個值:
yaiol; Ars Ricercata。該音軌會同時出現在yaiol和Ars Ricercata下 — 在每個藝人的分支中各出現一次 — 而不是在單一的虛假「yaiol; Ars Ricercata」藝人下。多值藝人標籤的展開方式與多流派標籤相同。
與排序名稱分組一樣,這是自動且由標籤驅動的。
依首字母將長清單分桶
如果某一層級太長,以至於在手機上難以舒適地捲動,它可以依首字母分桶 — 在條目上方插入一個 A、B、C、… 層,以便您先選擇一個字母。這是透過範本內每個欄位的上下文選單設定的:依首字母分割 [欄位]。對於短清單請關閉它;對於清單龐大的層級 — 通常是藝人 — 請開啟它。
將標籤瀏覽為巢狀樹狀結構
有些標籤使用分隔符號將階層結構打包成單一值 — 例如 Jazz/Cool Jazz 的分組標籤,或 Electronic/Ambient/Drone 的自訂類型。預設情況下,整個字串是一個扁平的項目,因此您在標籤中編碼的結構被浪費了。將欄位標記為階層式,外掛程式會根據您選擇的分隔符號分割每個值,並將其轉換為可向下鑽取的樹狀結構 — 您可以選擇爵士樂,然後選擇冷爵士樂,就像標籤所寫的那樣。
您可以在媒體庫選項索引標籤上設定此功能:選擇一個欄位,輸入分隔其層級的單一字元(例如 /),然後將其新增到清單中。然後,只要該欄位在任何探索路徑中用作分組層級,它就會應用。在分支而不是葉子處標記的曲目 — 只標記 Jazz,沒有子類型 — 會出現在較深分支旁邊的括號 [Jazz] 項目下,因此沒有任何內容被隱藏。只包含一個子項的分支會自動摺疊(與其他地方相同的單一選擇規則),並且 ; 不能用作分隔符號 — 這是 MusicBee 自己的多值分隔符號,因此像 Rock; Jazz/Cool Jazz 這樣的值會先分割成兩個標籤,然後再進行鑽取。
實例。您的曲目帶有像
Jazz/Cool Jazz、Jazz/Hard Bop和Classical/Baroque這樣的分組標籤,以及按分組分組的探索路徑。扁平化後,節點列出三個長條目。將分組標記為階層式,並使用/,相同的節點現在會開啟到爵士樂和古典樂;開啟爵士樂會顯示冷爵士樂和硬波普。只標記Jazz的曲目會出現在它們旁邊的 [Jazz] 項目下。您無法僅從標籤預測此佈局 — 它完全取決於您標記了哪個欄位以及使用哪個分隔符號 — 因此值得刻意設定。

設定
| 控制項 | 功能 |
|---|---|
| 階層欄位: | 呈現為向下鑽取樹狀結構的欄位清單,每個欄位都與其單一字元分隔符號配對。選擇一個欄位,輸入分隔符號(不是 ;),然後新增它;然後,只要探索路徑按其分組,該欄位就會逐級鑽取。 |
單一選項層級自動折疊
當您瀏覽的分組層級只有一個條目時,外掛程式會跳過它,而不是讓您打開一個只包含單一資料夾的資料夾 — 您會直接進入下一個真正的選擇。無需配置;它會在每個路徑上自動發生。
實例說明。 您的路徑依唱片類型 → 專輯 → 音軌分組。一位只發行過 LP 的藝人,否則會讓您打開一個單獨的唱片類型 → LP 資料夾才能到達專輯。相反地,打開該藝人會直接將您帶到專輯 — 對於該藝人,冗餘的層級會消失,而擁有 LP 和 EP 的藝人仍然會顯示唱片類型選項。連續幾個單一條目層級會一起折疊,而只有一個字母的首字母層級也會以相同方式消失。
瀏覽樹中的專輯縮圖
專輯會將其專輯封面帶入瀏覽回應中,因此在清單中顯示縮圖的裝置實際上會顯示它們。(原始外掛程式只將封面附加到單個音軌,因此專輯清單顯示為純文字。)無需配置 — 它只是隨專輯一起傳輸。
從裝置搜尋和隨機播放
大多數控制應用程式會在瀏覽樹旁放置一個搜尋框和一個「隨機」或「隨機播放」資料夾。兩者都以相同類型的 UPnP 請求到達 MusicBee,並且兩者都從您的媒體庫即時回應,而不是從預先建立的索引中回應 — 因此您一分鐘前重新標記的曲目會立即找到。
搜尋會比對標題或藝人。當您的應用程式搜尋曲目時,標題搜尋會查看曲目標題;當它搜尋專輯時,則會查看專輯標題。藝人搜尋會比對曲目的藝人或專輯的專輯藝人,因此無論您輸入表演者的姓名還是專輯歸檔的名稱,都會出現合輯。結果會隨著您的捲動而一次顯示一頁,因此比對數千首曲目的詞彙會保持回應,而不是停滯或循環回到第一個結果。
範例。 您從控制應用程式的專輯檢視中搜尋
Blue。您會得到名為 Blue 的專輯 — Kind of Blue、Blue Train — 而不是所有碰巧包含名為「Blue」的曲目的專輯。將應用程式切換到其曲目檢視並搜尋相同的詞彙,您就會得到曲目。比對哪個欄位取決於您的應用程式要求什麼,而不是您輸入什麼。
隨機播放資料夾 — 某些應用程式顯示的隨機曲目和隨機專輯項目 — 是對所有內容的切片請求,沒有附加搜尋詞彙。預設情況下,「所有內容」是您的整個音樂媒體庫,如果其中一半是口語或您從不隨機播放的內容,這很少是您想要的。媒體庫選項標籤上的 隨機播放來源: 讓您可以將其指向您的其中一個 MusicBee 篩選器,因此每個隨機請求都只從該篩選器的內容中提取。這裡也提供隱藏篩選器 — 隨機播放的範圍與您是否希望該篩選器出現在瀏覽樹中無關。從裝置上的篩選器內部打開隨機播放資料夾仍然會隨機播放該篩選器:瀏覽時做出的明確選擇始終優先於設定。
設定
| 控制項 | 功能 |
|---|---|
| 隨機播放來源: | 裝置的隨機播放請求從何處提取 — 所有音樂 (您的整個媒體庫,預設值) 或命名的 MusicBee 篩選器。如果所選篩選器稍後在 MusicBee 中被刪除或重新命名,則設定會悄悄地恢復為整個媒體庫。 |
調整串流以適應每個裝置
瀏覽只是工作的一半;音訊仍然必須在接受能力差異很大的硬體上播放。此功能是 MusicBee 如何客製化每個串流的方式 — 並且它是共享的:它既適用於伺服器角色將音軌提供給瀏覽裝置時,也適用於控制點角色播放到遠端渲染器時。有兩個概念驅動它:裝置設定檔(裝置可以處理什麼)和轉碼優先順序鏈(音軌是否會被重新編碼)。
裝置設定檔 — 適應每個裝置
實際的 UPnP 硬體對於其接受的內容不一致:一個串流器需要 24 位元 FLAC,另一個只播放 16 位元 PCM,第三個則謊報其支援的編解碼器。裝置設定檔是您教導外掛程式某個裝置的限制和怪癖的方式。
如何選擇設定檔。 每個裝置在連接時都會用 User-Agent 字串來識別自己。設定檔會說「當 user-agent 包含此片段時,請套用我」。當裝置連接時,外掛程式會找到匹配的設定檔;如果沒有匹配的,則會使用內建的通用裝置設定檔作為備用。您可以列出多個片段,用 | 分隔(例如 Linn|ChorusDS|BubbleDS),這樣一個設定檔就可以涵蓋一系列相關裝置。
設定檔控制什麼。 裝置不能超過的限制 — 專輯封面的最大圖片大小、允許的取樣率範圍、最大位元深度、僅限立體聲的降混 — 此外,當音軌確實需要轉換時,要轉換成的輸出格式和取樣率。一組單獨的「問題裝置」開關用於解決特定的硬體錯誤(原始 PCM 處理、位元組順序、HTTP content-length 標頭)。這些之所以存在,是因為實際的 UPnP 相容性參差不齊;大多數人從未觸碰它們。
何時觸碰設定檔。 僅當特定裝置行為異常時。開箱即用的通用設定檔,加上針對常見硬體提供的每個裝置預設值,涵蓋了大多數情況。要找到裝置的 user-agent 以便您可以針對它,請開啟偵錯日誌記錄(請參閱診斷),從裝置播放一些內容,然後讀取日誌中的 useragent= 行。
設定檔中最關鍵的開關 — 強制原生串流 — 根本與限制無關;它決定了上述任何內容是否適用。這是下一個概念。


設定
| 控制項 | 功能 |
|---|---|
| 名稱: | 設定檔的顯示名稱。 |
| 當使用者代理程式包含以下內容時套用: | 裝置必須包含的 user-agent 片段才能匹配此設定檔;用 | 分隔替代選項。不匹配的裝置會退回到通用設定檔。 |
| 最大圖片尺寸: | 傳送給此裝置的最大專輯封面像素大小(160 像素是 DLNA 標準;更大的尺寸並非普遍支援)。 |
| 輸出取樣率: / 至: | 裝置接受的取樣率範圍;超出此範圍的來源會被轉換(強制轉碼)。 |
| 聲道: / 僅限立體聲 | 將多聲道降混為立體聲,適用於只支援雙聲道的裝置。 |
| 最大位元深度: | 裝置接受的最高位元深度;更深的來源會被轉換。 |
| 輸出格式: | 當需要轉碼時,要轉換成的格式(PCM、FLAC、MP3、AAC、Ogg)。 |
| 輸出取樣率: | 轉碼時使用的取樣率;「與來源相同」會保留原始取樣率。 |
| 不使用 RAW PCM | 將 PCM 包裝在 WAV 容器中,而不是傳送原始 L16/L24。適用於會混淆原始 PCM 的裝置(某些 Marantz)。 |
| 強制 PCM 串流使用小端序 | 傳送小端序 PCM,而不是規範的大端序。解決期望小端序的裝置上播放白噪音的問題。 |
| 內容長度: | 如何填寫 HTTP Content-Length 標頭:預設(正確值)、無(省略)、僅限 PCM 或固定(一個哨兵「巨大」值)。適用於錯誤處理標頭的裝置。 |
轉碼與否 — 優先順序鏈
「轉碼」是指即時重新編碼音軌 — 轉換為裝置可播放的格式,或以便套用 MusicBee 的 EQ 和音量平衡。此外掛程式寧願不轉碼(傳送原始檔案更快且無損),因此它會遵循固定的規則鏈來決定。較高的規則獲勝並靜默覆蓋較低的規則。這是此外掛程式最常被誤解的部分,因為有些設定看起來應該協同運作,但實際上卻沒有。
| 優先順序 | 規則 | 效果 |
|---|---|---|
| 1 (最高) | 強制轉碼 (每個裝置設定檔) | 始終轉碼。覆蓋以下所有規則。與強制原生互斥 — 勾選一個會取消勾選另一個。 |
| 2 | 強制原生串流 (每個裝置設定檔,預設開啟) | 絕不為此裝置轉碼。完全抑制規則 3–5 — 無論格式、效果或限制如何,都會傳送原始位元組。 |
| 3 | EQ/DSP 和 ReplayGain (媒體庫) | 強制轉碼以便處理音訊。如果規則 2 獲勝,則靜默忽略。 |
| 4 | 取樣率 / 位元深度 / 僅限立體聲 (裝置設定檔) | 來源超出範圍 → 轉碼以符合。如果規則 2 獲勝,則靜默忽略。 |
| 5 (最低) | 編解碼器支援 (裝置設定檔) | 來源編解碼器裝置無法播放 → 轉碼為設定檔的輸出格式。如果規則 2 獲勝,則靜默忽略。 |
因為強制原生串流預設為每個設定檔開啟,所以開箱即用的行為是:將原始檔案交給裝置,不做其他任何事情。這對於連接良好網路的現代裝置來說是完全正確的 — 但這意味著媒體庫效果和設定檔的音訊限制在您更改規則 2 之前似乎「不起作用」。
實例。您希望 MusicBee 的 ReplayGain 音量平衡應用於您的串流器。您在媒體庫下勾選使用 MusicBee 中啟用的重播增益模式平衡播放音量。您播放一首音軌 — 但音量根本沒有平衡。
原因:串流器的設定檔仍將強制原生串流設定為開啟(規則 2)。規則 2 優於 ReplayGain 規則(規則 3),因此此外掛程式會傳送未經觸動的檔案,並且您的 ReplayGain 設定會被靜默跳過。
解決方法:開啟該裝置的設定檔並取消勾選強制原生串流。因為強制原生是每個設定檔的,您可以將其開啟用於您的位元完美高傳真 DAC,並關閉用於需要 ReplayGain 的便攜式揚聲器 — 每個裝置都會得到正確的答案。
經驗法則:
- 希望將 EQ/DSP 或 ReplayGain 應用於裝置?在該裝置的設定檔上關閉強制原生串流。
- 希望保證進行新的轉碼(用於測試,或用於無法處理原生檔案的裝置)?在其設定檔上勾選強制轉碼 — 它優於所有其他設定。
- 否則,請保持強制原生串流開啟。它是此外掛程式中影響最大的設定,預設值適用於大多數現代設備。

設定
| 控制項 | 功能 |
|---|---|
| 強制原生串流 (繞過轉碼器) | 傳送原始檔案位元組,繞過轉碼器、效果、ReplayGain 和設定檔的音訊限制。**預設開啟。**影響最大的播放設定;上述鏈中的規則 2。 |
| 強制轉碼 (與強制原生串流互斥) | 強制將每個串流透過轉碼器傳輸到此裝置。優於強制原生;兩者互斥(勾選一個會取消勾選另一個)。規則 1。 |
| 使用 MusicBee 中啟用的等化器和 DSP 效果 [強制轉碼] | 將 MusicBee 的等化器和 DSP 效果應用於輸出音訊。強制轉碼(規則 3),並在任何設定檔開啟強制原生的裝置上被抑制。 |
| 使用 MusicBee 中啟用的重播增益模式調整播放音量 [強制轉碼] | 應用 MusicBee 的 ReplayGain 音量平衡。強制轉碼(規則 3),並在任何設定檔開啟強制原生的裝置上被抑制。 |
| 強制廣播原生串流 (繞過電台轉碼器) | 傳送未經觸動的廣播/串流來源,專門繞過電台的轉碼器。 |
渲染器 — MusicBee 作為播放目標
啟用渲染器角色(UPnP 渲染器開關)後,MusicBee 會告訴網路:「我是一個可以播放的裝置。」然後,一個獨立的控制點應用程式 — 手機遙控器、另一個媒體控制器 — 就可以選擇 MusicBee,並將音訊推送到此 PC 上播放。您會給目標一個友善的渲染器名稱,以便在其他應用程式的列表中識別。
它可以播放什麼。 控制應用程式可能發送的兩種音軌。如果音軌來自 MusicBee 自己的媒體庫 — 您在手機上瀏覽了此 PC 的媒體庫並點擊了一首歌曲 — MusicBee 會直接從自己的磁碟播放該檔案,未經修改,不會因網路往返而引入任何音質損失。如果音軌位於其他任何地方 — 儲存在手機本身、NAS、另一個媒體伺服器上的檔案 — MusicBee 會獲取它並在此處播放。
從其他地方發送的音軌會先複製,以及這為何重要。 對於不在您媒體庫中的音軌,MusicBee 會悄悄地將副本下載到臨時資料夾並播放該副本,而不是在網路中即時收聽。它必須這樣做:任何 MusicBee 視為即時網路串流的內容都可以啟動和停止,但不能移動,因此無法跳到歌曲的不同點,並且音軌會顯示為裸網址而不是其標題。播放自己磁碟上的真實檔案可以避免這兩種情況。在家庭網路中,複製大約需要一秒鐘。會並排保留幾個副本 — 正在播放的、下一個排隊的,以及一個在後面以便即時向後跳過 — 隨著新音軌的到來,舊的會被刪除;下次 MusicBee 啟動時,任何剩餘的都會被清除。音軌長度不是障礙:長的高解析度或 DSD 檔案像其他任何檔案一樣被獲取。
網路電台會被識別並保持原樣。 即時廣播從不複製,因為它沒有下載的結尾,而且無論如何也沒有什麼可以跳過的 — MusicBee 只是將其作為串流播放。控制應用程式會說明它正在發送的是哪一種,因此這不需要您進行任何設定或猜測。如果由於任何其他原因無法獲取副本,也適用相同的情況:播放會透過網路繼續,只有在那時,標題和位置滑塊才會變得不可靠。
專輯無間斷播放。 當控制應用程式告訴 MusicBee 接下來播放什麼時 — 大多數都會 — 該音軌會在當前音軌仍在播放時被獲取,並且 MusicBee 自己的播放器會跨越邊界。因此,從手機發送的現場錄音、DJ 混音或連續古典作品會按預期播放,而不會在每個音軌處暫停。
您為何會使用它。 它允許手機或平板電腦將此 PC 用作 UPnP 揚聲器 — 當 PC 連接到好的揚聲器並且您想從沙發上控制它時很方便,無論音樂是儲存在 PC 上還是您手中的手機上。
何時關閉它。 除非您特別想從另一個應用程式將音訊發送到此 PC,否則請將其關閉。關閉後,MusicBee 將不會在任何地方顯示為目標,這通常是您想要的。
一次使用一個控制應用程式。 UPnP 沒有應用程式「擁有」渲染器的概念:網路上的任何應用程式都可以將音軌發送到 MusicBee,並且任何正在監聽的應用程式都可以對其所看到的內容做出反應。因此,如果兩個播放器同時指向 MusicBee,您將會遇到看起來像錯誤但實際上不是的行為。第二個仍然選擇 MusicBee 的應用程式會繼續監聽,看到它發送的音軌停止,得出其歌曲已結束的結論,並熱心地從其佇列發送下一首 — 因此音樂突然跳到不同的專輯,或者在一個應用程式中按下下一首會啟動另一個應用程式中的歌曲。在第二個應用程式中停止播放不足以解決問題,因為它仍然被選中並繼續監聽。將其指向手機自己的揚聲器、另一個裝置,或正確關閉它。
關於成熟度的說明。 渲染器比伺服器角色新,並且在實際硬體上的測試較少。如果特定的控制器應用程式驅動它異常,報告這將很有用。
設定
| 控制 | 作用 |
|---|---|
| UPnP 渲染器:啟用其他應用程式播放至 MusicBee | 渲染器角色的主開關 — 允許其他應用程式播放到 MusicBee。在 MusicBee 重新啟動後生效。 |
| 渲染器名稱: | 此 PC 作為渲染器宣傳的名稱,顯示在其他應用程式的裝置列表中。 |
控制點 — 播放至遠端揚聲器
啟用控制點角色(UPnP 控制點開關)後,網路上的 UPnP/DLNA 渲染器會顯示為 MusicBee 內部的輸出裝置 — 與您選擇音效卡的位置相同。選擇一個,按下播放,MusicBee 就會將音訊串流傳輸到該遠端揚聲器或串流器,同時您繼續使用 MusicBee 自己的介面作為遙控器。
為何使用它。 它使高傳真串流器或網路揚聲器表現得像另一個 MusicBee 輸出裝置,無需額外軟體。
何時關閉它。 如果您只透過此 PC 自己的揚聲器播放,請將其關閉。
有兩件事會影響此角色的行為。第一是無間隙播放(如下)。第二是使串流適應每個裝置 — 管理伺服器的相同裝置設定檔和轉碼優先順序也適用於此處,因為外掛程式再次將音訊傳輸到遠端裝置。控制點還會重複使用 MusicBee 的 HTTP 伺服器來輸出音訊,因此即使您從未開啟伺服器角色,伺服器的連接埠和防火牆規則在此處也很重要。
設定
| 控制項 | 功能說明 |
|---|---|
| UPnP 控制點:將網路 UPnP/DLNA 渲染器新增為 MusicBee 輸出裝置 | 控制點角色的主開關 — 將網路 UPnP/DLNA 渲染器添加為 MusicBee 輸出裝置。 |
無間斷播放 — 兩種不同的機制
有些音樂註定要不間斷地播放 — 現場專輯、古典樂章、DJ 混音、概念唱片。曲目之間半秒的靜默會毀了它們。此外掛程式提供兩種方式來消除這種間隙,它們的運作方式截然不同。
真正的無間斷播放 (NextURI)。 當渲染器表示支援時,此外掛程式會在當前曲目結束之前將下一首曲目預載到設備上,因此設備會在內部跨越邊界而沒有靜默 — 就像 CD 播放器一樣。這是首選機制:每首曲目都保留自己的中繼資料,搜尋和跳過仍然有效,並且無需開啟任何功能 — 此外掛程式會在支援的設備上自動使用它。您可以針對每個設備將其關閉(對於實作有錯誤的硬體)或告訴此外掛程式在列表清空時不要清除佇列中的曲目(這是針對將空佇列視為「停止」的設備的解決方法)。
連續串流。 較舊的備用方案將所有內容串聯成一個無盡的串流。它保證在任何設備上都沒有間隙 — 但代價是:渲染器會顯示整個會話的第一首曲目資訊,「下一首/上一首」控制項停止工作,並且由於所有內容都融合到一個串流中,因此必須全部轉碼(無法套用強制原生)。螢幕上的標籤會說明權衡。
使用哪種。 首選真正的無間斷播放 — 它是自動且無損的。僅當設備無法執行 NextURI 且間隙確實困擾您時,才退回到連續串流,並接受您會失去每曲目中繼資料和傳輸控制項。這兩者是互斥的:開啟連續串流會停用 NextURI,因此您不會意外地同時執行兩者。

設定
| 控制項 | 功能 |
|---|---|
| 為此裝置啟用無間隙播放 (NextURI) | 為此設備啟用真正的無間斷播放 (NextURI)。對於支援的設備,此選項為開啟;如果設備的實作有錯誤,請將其關閉。 |
| 當佇列清空時不傳送空白 NextURI | 當佇列清空時,停止此外掛程式傳送空白 NextURI — 這是針對將其視為「停止」的設備(例如 Denon)的解決方法。 |
| 輸出為連續串流 | 傳送一個連續的串聯串流,而不是離散的曲目。消除任何設備上的間隙,但渲染器只顯示第一首曲目的資訊,傳輸控制項停止工作,並且所有內容都經過轉碼。開啟時會停用 NextURI。 |
在網路上互相尋找
在任何角色開始工作之前,裝置必須互相尋找。MusicBee 的伺服器綁定到一個網路位址和一個 TCP 連接埠,然後透過 SSDP 向區域網路宣告自己,以便裝置可以發現它。預設連接埠是 9779;如果該連接埠已被佔用,此外掛程式會自動選擇一個附近的空閒連接埠,裝置仍然可以發現它(您只有在設定需要固定連接埠時才需要設定)。
在具有不尋常網路設定的機器上,有兩個設定很重要:
- IP 位址 / 網路介面。 「自動」在所有介面上提供服務,這對於大多數 PC 來說是正確的。在同時有多個網路的機器上 — Wi-Fi 和乙太網路 和 VPN — 請選擇您的音訊裝置實際所在的介面,以便 MusicBee 宣告一個它們可以到達的位址。
- 連接埠。 僅當另一個程式已使用預設值,或者您的防火牆堅持使用特定數字時才更改它。
裝置「看不到 MusicBee」的首要原因是防火牆,而不是 UPnP。 Windows 防火牆必須允許 MusicBee 的連接埠在私人和公用網路設定檔上,並且您通常在更改防火牆規則後必須重新啟動 MusicBee。在更改此外掛程式內的任何內容之前,請先檢查這一點。
設定
| 控制項 | 功能說明 |
|---|---|
| IP 位址: | 伺服器綁定到的網路介面;「自動」使用所有介面。在 MusicBee 重新啟動後生效。 |
| 連接埠: | HTTP 伺服器監聽的 TCP 連接埠(預設 9779)。如果連接埠被佔用,此外掛程式會自動選擇一個空閒連接埠。在重新啟動後生效。 |
診斷
當特定裝置出現異常行為時,外掛程式的行為是不可見的,除非您將其記錄下來。這些工具適用於每個角色,因此它們位於自己的 偵錯 索引標籤上,而不是在某個功能下。
- 記錄偵錯資訊 會將每個請求、裝置的使用者代理程式以及每個編解碼器/轉碼決策記錄到一個日誌檔中,您可以使用 檢視 開啟該檔案。在故障排除時(以及為了發現裝置設定檔的使用者代理程式)開啟它,然後再關閉它 — 日誌會快速增長。您也可以在每次啟動時清除它。
- 網路頻寬受限 (播放) 告訴外掛程式,每當它 確實 轉碼時,它應該使用裝置設定檔的 有損 輸出 (MP3/AAC/Ogg),而不是大型無損輸出。對於慢速 Wi-Fi 連線開啟它。
- 偵錯 索引標籤還包含用於開發的低階查詢工具;在正常使用中您可以忽略它們(請參閱 其他設定)。
日常診斷的模式是:啟用日誌記錄 → 重現問題 → 讀取日誌 → 調整相關裝置設定檔 → 停用日誌記錄。

設定
| 控制項 | 功能 |
|---|---|
| 記錄偵錯資訊 | 將每個請求、使用者代理程式和編解碼器決策記錄到檔案中。故障排除時開啟,否則關閉。 |
| 外掛程式啟動時清除日誌 | 每次外掛程式啟動時清空日誌。 |
| 檢視 | 開啟目前的日誌檔。 |
| 清除日誌 | 立即清除日誌。 |
| 網路頻寬受限 - 將輸出轉碼為上述裝置設定檔中設定的有損格式 | 當發生轉碼時,使用裝置設定檔的 有損 輸出格式。適用於慢速連線。需要在設定檔的轉碼部分選擇有損格式。 |
快速疑難排解
| 症狀 | 首先嘗試的方法 |
|---|---|
| 裝置完全看不到 MusicBee | 檢查 Windows 防火牆的私人和公用網路;外掛程式的連接埠(預設為 9779)必須可達。防火牆變更後重新啟動 MusicBee。 |
| 樹狀結構中缺少來源(Podcast、廣播、收件匣…) | 它可能被隱藏了。在檢視分頁上,勾選該節點並確保其可見核取方塊已開啟。 |
| 節點瀏覽的形狀不正確 | 在檢視分頁上應用不同的探索路徑 — 例如,播放清單的扁平曲目,音樂篩選器的專輯藝人 → 專輯 → 曲目。 |
| 裝置看到 MusicBee 但無法播放任何曲目 | 裝置的設定檔可能不正確,或者強制原生串流已關閉且轉碼失敗。勾選該裝置設定檔上的強制原生串流並重試。 |
| 音訊播放為靜電聲 / 白噪音 | 嘗試在裝置設定檔上勾選強制 PCM 串流為小端序。如果這沒有幫助,請嘗試不使用 RAW PCM。 |
| 曲目之間有間隙 | 無間隙播放會在支援 NextURI 的裝置上自動執行。如果您仍然聽到間隙,則裝置要麼不支援它,要麼其實現有錯誤 — 回退到輸出為連續串流(保證無間隙,但曲目資訊和下一首/上一首控制項將停止工作)。 |
| EQ / DSP / ReplayGain「沒有作用」 | 該裝置已開啟強制原生串流 — 它優先於這些功能。取消勾選該裝置設定檔上的強制原生串流。請參閱轉碼或不轉碼。 |
| 現代(2020 年後)裝置忽略 MusicBee 的控制項 | 針對宣傳為 MediaRenderer:2/3 的裝置的修復在此分支中;它應該會起作用。如果沒有,請擷取偵錯日誌並提交問題。 |
| 外掛程式載入但設定無法開啟 | 檢查 MusicBee 的 ErrorLog.dat — 外掛程式可能在載入時崩潰。刪除外掛程式的設定檔並重新設定通常可以解決此問題。 |
| 英語以外的語言 | 外掛程式支援 22 種語言並遵循 MusicBee 自己的語言,並且此說明文件提供所有這些語言版本。要使用不同的語言,請在一般分頁上設定語言。 |
測試程度
為了避免您感到意外,以下是此插件在實際使用中的測試程度。
所有測試均以 BubbleUPnP 進行,並以 foobar2000 作為第二參考。所有三個角色均可正常運作 — 但 BubbleUPnP 是唯一經過驗證的對應應用程式,因此其他控制應用程式、其他播放器以及除了這兩者之外的瀏覽設備均未經測試,並將受益於社群測試。
這在實踐中最重要的是播放到實體串流器(控制點角色)。在 BubbleUPnP 上確認了真正的無縫曲目轉換,但實際的串流器 — WiiM、Sonos、Cambridge、Eversolo、Marantz、Denon — 每個處理曲目之間的交接方式略有不同,並且都沒有在實際硬體上進行測試。如果其中一個設備的無縫播放出現問題,請為該設備關閉 NextURI,使其恢復一次播放一首曲目。
其他設定
一些控制項不屬於任何單一功能:
| 控制項 | 功能 |
|---|---|
| 說明 | 在您的網路瀏覽器中開啟此說明頁面,語言為 MusicBee 的語言(如果翻譯尚未準備好,則會回溯至英文)。 |
| 讀取上次查詢、執行查詢、擷取前 5 個標籤 | 偵錯 索引標籤上的低階查詢工具,用於開發;在正常使用中請忽略它們。 |
| 儲存 | 儲存變更。在啟動時綁定的設定(連接埠、IP、最大連線數、渲染器)會顯示 ⚠ 需要重新啟動 標誌,直到您重新啟動 MusicBee。 |
| 取消 | 不儲存即關閉對話方塊。 |
鳴謝
- 原始外掛程式由 Steven Mayall 開發。此分支重寫了程式庫瀏覽和設定對話方塊,並新增了渲染器,但其所依賴的 UPnP、HTTP 和 SSDP 核心仍主要來自他的程式碼。
- 由 BoringName 開發的閉源 UPnP 2025 分支,其公開論壇討論串提供了錯誤目錄。