Mediarouter

利用通用使用者介面,在遠端接收器裝置上啟用媒體顯示和播放功能。
最近更新時間 穩定版 候選版 Beta 版 Alpha 版
2024 年 3 月 20 日 1.7.0 - - -

宣告依附元件

如要新增 MediaRouter 的依附元件,必須將 Google Maven 存放區新增至專案。詳情請參閱 Google 的 Maven 存放區

在應用程式或模組的 build.gradle 檔案中,新增所需構件的依附元件:

Groovy

dependencies {
    implementation "androidx.mediarouter:mediarouter:1.7.0"
}

Kotlin

dependencies {
    implementation("androidx.mediarouter:mediarouter:1.7.0")
}

如要進一步瞭解依附元件,請參閱「新增建構依附元件」一文。

意見回饋

您的意見可協助我們改善 Jetpack。如果您發現新問題,或是有改進這個程式庫的建議,請告訴我們。回報新問題前,請先查看這個程式庫的現有問題。只要按一下星號按鈕,即可投票給現有的問題。

建立新問題

詳情請參閱 Issue Tracker 說明文件

1.7 版

1.7.0 版

2024 年 3 月 20 日

發布 androidx.mediarouter:mediarouter:1.7.0androidx.mediarouter:mediarouter-testing:1.7.0。1.7.0 版包含這些修訂版本

API 變更

  • isSystemRoute() 新增至 MediaRouteDescriptorRouteInfo,如果對應路徑是系統管理的路徑,系統會傳回 true,表示系統是路徑提供者,而應用程式會負責將媒體範例提供給系統進行算繪 (I949e4)。例如藍牙耳機、有線耳機和內建喇叭等都是系統路徑。
  • 淘汰 MediaRouter.removeRemoteControlClient。您應呼叫 setMediaSessionCompat(MediaSessionCompat) 而不是 addRemoteControlClient(Object),這樣就不必呼叫 removeRemoteControlClient(Object)。(I8fc5e)。
  • MediaRouteButton 擴充 AppCompatImageView。(Ib455e)。
  • 新增 DEVICE_TYPE_SMARTPHONE,表示媒體路徑是智慧型手機。(I39837)。
  • 改善 MediaRouter2 到 AndroidX MediaRouter 的裝置類型對應情形,以描述系統路徑 (例如藍牙、HDMI、有線)。(Iccffa)。

修正錯誤

  • 為可能導致部分獨立當機情形的路徑按鈕新增缺少的圖示解析度。(cddba9b/261878418)。
  • 修正導致 isSystemRoute 針對透過 android.media.MediaRouter#addUserRoute() 新增的使用者路徑傳回 true 的錯誤 (a27f6b)。

新功能

  • 將 minSdk 提升到 19。(e8c4463)。

1.7.0-rc01 版

2024 年 3 月 6 日

發布 androidx.mediarouter:mediarouter:1.7.0-rc01androidx.mediarouter:mediarouter-testing:1.7.0-rc01。1.7.0-rc01 版包含這些修訂版本

1.7.0-beta01 版

2024 年 2 月 21 日

發布 androidx.mediarouter:mediarouter:1.7.0-beta01androidx.mediarouter:mediarouter-testing:1.7.0-beta011.7.0-beta01 版包含此連結所列的修訂項目。

1.7.0-alpha02 版

2024 年 2 月 7 日

發布 androidx.mediarouter:mediarouter:1.7.0-alpha02androidx.mediarouter:mediarouter-testing:1.7.0-alpha021.7.0-alpha02 版包含此連結所列的修訂項目。

新功能

  • 將 minSdk 提升到 19。(e8c4463)。

API 變更

  • 改善 MediaRouter2 到 AndroidX MediaRouter 的裝置類型對應情形,以描述系統路徑 (例如藍牙、HDMI、有線)。(Iccffa)。

修正錯誤

  • 修正導致 isSystemRoute 針對透過 android.media.MediaRouter#addUserRoute() 新增的使用者路徑傳回 true 的錯誤 (a27f6b)。

1.7.0-alpha01 版

2023 年 11 月 15 日

發布 androidx.mediarouter:mediarouter:1.7.0-alpha01androidx.mediarouter:mediarouter-testing:1.7.0-alpha011.7.0-alpha01 版包含此連結所列的修訂項目。

API 變更

  • isSystemRoute() 新增至 MediaRouteDescriptorRouteInfo,如果對應路徑是系統管理的路徑,系統會傳回 true,表示系統是路徑提供者,而應用程式會負責將媒體範例提供給系統進行算繪 (I949e4)。例如藍牙耳機、有線耳機和內建喇叭等都是系統路徑。
  • 淘汰 MediaRouter.removeRemoteControlClient。您應呼叫 setMediaSessionCompat(MediaSessionCompat) 而不是 addRemoteControlClient(Object),這樣就不必呼叫 removeRemoteControlClient(Object)。(I8fc5e)。
  • MediaRouteButton 擴充 AppCompatImageView。(Ib455e)。
  • 新增 DEVICE_TYPE_SMARTPHONE,表示媒體路徑是智慧型手機。(I39837)。

修正錯誤

  • 為可能導致部分獨立當機情形的路徑按鈕新增缺少的圖示解析度。(cddba9b/261878418)。

1.6 版本

1.6.0 版

2023 年 9 月 20 日

發布 androidx.mediarouter:mediarouter:1.6.0androidx.mediarouter:mediarouter-testing:1.6.01.6.0 版包含此連結所列的修訂項目。

自 1.4.0 版以來的主要功能

  • 輸出端切換器的路徑清單偏好設定
  • 為 AndroidX MediaRouter 新增路徑清單偏好設定支援。
  • 為 MediaRouteDescriptor 新增瀏覽權限支援。
  • 翻新 MediaRouteButton,提供更優質的使用者體驗 ((I9dbcb)[https://android-review.googlesource.com/#/q/I9dbcb8d9e5ee4902d48f1bfb4133e04781c6ae35)。包括:
    • 新增提示,讓使用者檢查搜尋的裝置是否已連上同一個 Wi-Fi。
    • 加入結束狀態和錯誤訊息,以便在預先定義的時間範圍結束時顯示。
  • 新增在螢幕關閉時,自動關閉 MediaRouter 對話方塊的功能。

1.6.0-rc01 版

2023 年 8 月 23 日

發布 androidx.mediarouter:mediarouter:1.6.0-rc01androidx.mediarouter:mediarouter-testing:1.6.0-rc011.6.0-rc01 版包含以下修訂項目。

新功能

  • 新增在螢幕關閉時自動關閉 MediaRouter 對話方塊的功能 (Ib25ee)。

修正錯誤

  • 已將 MediaRouter 記錄標記變更為 AxMediaRouter,以與 MediaRouter 平台區分。(Ib619f)。

1.6.0-beta01 版

2023 年 8 月 9 日

發布 androidx.mediarouter:mediarouter:1.6.0-beta01androidx.mediarouter:mediarouter-testing:1.6.0-beta011.6.0-beta01 版包含此連結所列的修訂項目。

API 變更

修正錯誤

  • 修正MediaRouteChooserDialog的翻譯。(d39a7f)。

1.6.0-alpha05 版

2023 年 6 月 21 日

發布 androidx.mediarouter:mediarouter:1.6.0-alpha05androidx.mediarouter:mediarouter-testing:1.6.0-alpha051.6.0-alpha05 版包含此連結所列的修訂項目。

新功能

  • 向使用者提供書面指引,改善 MediaRouteChooserDialog UI,以便處理缺少的裝置 (I0cad9I3d445)。

1.6.0-alpha04 版

2023 年 6 月 7 日

發布 androidx.mediarouter:mediarouter:1.6.0-alpha04androidx.mediarouter:mediarouter-testing:1.6.0-alpha04。這個版本是以內部分支版本開發。

新功能

  • 翻新 MediaRouteButton 以提供更優質的使用者體驗 (I9dbcb)。包括:
    • 新增提示,讓使用者檢查搜尋的裝置是否已連上同一個 Wi-Fi。
    • 加入結束狀態和錯誤訊息,以便在預先定義的時間範圍結束時顯示。

API 變更

  • 從平台引進新的 MediaRouteDescriptor 裝置類型。(I75ba6)。

修正錯誤

  • 已修正非動態路徑控制器的磁碟區調整問題 (I730ec)。
  • MediaRouteButton 設為一律啟用 (I1e9ff)。
  • 修正部分 Android 版本執行階段檢查,造成無法透過 AndroidX 媒體路由器程式庫存取 Android U 功能 (I97cab)。

1.6.0-alpha03 版

2023 年 4 月 12 日

發布 androidx.mediarouter:mediarouter:1.6.0-alpha03androidx.mediarouter:mediarouter-testing:1.6.0-alpha03。這個版本從內部分支版本中釋出。

  • 變更 MediaRouteDescriptor 的瀏覽權限 API。
  • 淘汰 MediaRouteActionProvider.setAlwaysVisibleMediaRouteButton.setAlwaysVisible,讓媒體路徑按鈕一律顯示,不受網路連線,或媒體路徑是否可用。
  • 修正非動態路徑控制器的磁碟區調整問題。這項錯誤解決了在輸出切換器中嘗試調整路徑音量時,會導致音量還原為原始值 (93f409) 的錯誤。

1.6.0-alpha02 版本

2023 年 3 月 8 日

發布 androidx.mediarouter:mediarouter:1.6.0-alpha02androidx.mediarouter:mediarouter-testing:1.6.0-alpha02。在內部分支版本上開發。

新功能

  • 為 AndroidX MediaRouter 新增路線清單偏好設定支援。
  • MediaRouteDescriptor 新增瀏覽權限支援。

修正錯誤

  • 改善 Android U 以上版本中的 SystemUI 輸出切換器叫用方式。

1.6.0-alpha01 版

2023 年 2 月 10 日

發布 androidx.mediarouter:mediarouter:1.6.0-alpha011.6.0-alpha01 版包含此連結所列的修訂項目。

新功能

  • 輸出端切換器的路徑清單偏好設定

API 變更

  • 應用程式用來設定輸出切換器的機制。

1.4 版

1.4.0 版

2023 年 5 月 3 日

發布 androidx.mediarouter:mediarouter:1.4.0androidx.mediarouter:mediarouter-testing:1.4.01.4.0 版本包含這些修訂版本。

自 1.3.1 版以來的重要變更

  • 新增 SystemOutputSwitcherDialogController#showDialog 以顯示系統的輸出端切換器對話方塊,或是在系統輸出端切換器無法使用的情況下,顯示 Wear 裝置上的藍牙設定片段。(Ic3d78)。
  • 修正因 MediaRouterProvider.notifyDynamicRoutesChanged 中因 IllegalArgumentException 而造成應用程式當機的迴歸問題 (7d17ea)。
  • 新增 MediaRouteDescriptor.Builder.clearControlFilters (I3a4e1)
  • MediaRouter 中新增缺少的 MainThread 註解。(I3ef6e)。
  • 在 API 33 以上版本中新增廣播接收器匯出旗標。(b2a663)。

1.4.0-rc01 版

2023 年 4 月 5 日

發布 androidx.mediarouter:mediarouter:1.4.0-rc01androidx.mediarouter:mediarouter-testing:1.4.0-rc011.4.0-rc01 版包含此連結所列的修訂項目。

  • 移除 MediaRouteProviderDescriptor 中的空值清單。

1.4.0-beta02 版本

2023 年 2 月 22 日

發布 androidx.mediarouter:mediarouter:1.4.0-beta021.4.0-beta02 版包含此連結所列的修訂項目。

修正錯誤

  • 修正因 MediaRouterProvider.notifyDynamicRoutesChanged 中因 IllegalArgumentException 而造成應用程式當機的迴歸問題 (7d17ea)。

1.4.0-beta01 版

2023 年 1 月 25 日

發布 androidx.mediarouter:mediarouter:1.4.0-beta011.4.0-beta01 版包含此連結所列的修訂項目。

API 變更

如果沒有任何傳遞的路徑狀態為 SELECTED 或 SELECTING,DynamicGroupRouteController.notifyDynamicRoutesChanged() 現在會擲回 IllegalArgumentException。(8f6b3e)。

修正錯誤

  • 由符合 API 規範的供應商服務實作傳回空值路徑提供者會造成當機情形,這個問題現已修正。(63f16d)。
  • 將受保護的廣播接收器標記為未匯出,使其能在指定 API 33 以上級別的應用程式中運作。(784f8b)。
  • 修正 OverlayListView 中部分錯誤的是否可為空值註解。(472e3f)。
  • 修正 SystemOutputSwitcherDialogController.showDialog 中的 EXTRA_CLOSE_ON_CONNECT 會導致藍牙設定片段在 Wear 裝置上突然結束的錯誤。(28c9d8)。
  • 已變更為輸出端切換器公開方法的 Javadoc。(f0ae9444d2c9)

1.4.0-alpha01 版

2022 年 11 月 9 日

發布 androidx.mediarouter:mediarouter:1.4.0-alpha01查看 1.4.0-alpha01 版的修訂項目

新功能

  • 新增 SystemOutputSwitcherDialogController#showDialog 以顯示系統的輸出端切換器對話方塊,或是在系統輸出端切換器無法使用的情況下,顯示 Wear 裝置上的藍牙設定片段。(Ic3d78)。

API 變更

  • 新增 MediaRouteDescriptor.Builder.clearControlFilters (I3a4e1)
  • MediaRouter 中新增缺少的 MainThread 註解。(I3ef6e)。

修正錯誤

  • 修正呼叫 MediaRouter.removeUserRoute 造成的裝置特定當機問題 (b/202931542)。
  • 修正群組描述元無法持續接收磁碟區處理更新的問題 (461303)。
  • 在 API 33 以上版本中新增廣播接收器匯出旗標。(b2a663)。
  • 修正因接收來自平台的無效路徑描述元造成的當機問題 (dd5c09)。

1.3 版

1.3.1 版

2022 年 7 月 27 日

發布 androidx.mediarouter:mediarouter:1.3.1查看 1.3.1 版的修訂項

修正錯誤

  • 解決裝置專屬問題,其中 MediaRouter.removeUserRoute() 會擲回非預期的 IllegalArgumentException (b/202931542)。

1.3.0 版本

2022 年 4 月 20 日

發布 androidx.mediarouter:mediarouter:1.3.01.3.0 版包含此連結所列的修訂項目。

自 1.2.0 版以來的重要異動

  • 將旗標新增至 MediaRouterParams,用於在執行階段停用流暢轉移功能。
  • 新增可重設 MediaRouter 的測試成果。
  • 新增路由器參數,以便在 MediaRouterControllerDialog 之中調整使用者體驗
  • 在公開方法中備註空值。
  • 為 androidx 啟用 MissingGetterMatchingBuilder 的 API Lint 檢查。
  • 將媒體路由器的核心依附元件更新至 1.6.0

1.3.0-rc01 版本

2022 年 3 月 23 日

發布 androidx.mediarouter:mediarouter:1.3.0-rc01查看 1.3.0-rc01 版的修訂項目

  • 自上次 Beta 版發布後沒有任何異動。

1.3.0-beta01 版本

2022 年 3 月 9 日

發布 androidx.mediarouter:mediarouter:1.3.0-beta01查看 1.3.0-beta01 版的修訂項目

  • 自上次 Alpha 版發布以來沒有任何異動。

1.3.0-alpha01 版本

2021 年 12 月 15 日

發布 androidx.mediarouter:mediarouter:1.3.0-alpha01查看 1.3.0-alpha01 版的修訂項目

API 變更

  • 將旗標新增至 MediaRouterParams,用於在執行階段停用流暢轉移功能 (I53d68)
  • 新增可重設 MediaRouter 的測試成果。(Id167c)。
  • 新增路由器參數,以用於在 MediaRouterControllerDialog 中調整使用者體驗 (I7e574)
  • 公用方法的備註空值 (Ifc901)

修正錯誤

  • 已為 Android 啟用 MissingGetterMatchingBuilder 的 API Lint 檢查 (I4bbeab/138602561)

1.2 版本

1.2.6 版本

2022 年 1 月 26 日

發布 androidx.mediarouter:mediarouter:1.2.61.2.6 版本包含以下修訂項目。

修正錯誤

  • 修正 Android 12 上的 RemotePlaybackClient 建構函式當機問題 b/210684559

1.2.5 版本

2021 年 9 月 1 日

發布 androidx.mediarouter:mediarouter:1.2.51.2.5 版本包含以下修訂項目。

修正錯誤

  • 沒有可轉移的路徑時,隱藏輸出切換器中的媒體路徑按鈕。
  • 修正控管群組成員路徑音量的問題。

1.2.4 版本

2021 年 6 月 16 日

發布 androidx.mediarouter:mediarouter:1.2.41.2.4 版本包含以下修訂項目。

修正錯誤

  • 修正 MediaRouteButton 重播連結動畫的問題。
  • 修正 MediaRouteChooserDialog 中的路徑垂直對齊。

1.2.3 版本

2021 年 5 月 5 日

發布 androidx.mediarouter:mediarouter:1.2.31.2.3 版本包含以下修訂項目。

修正錯誤

  • 修正自訂選擇器對話方塊的 NullPointerException。
  • 修正 MediaRouteButton 顯示斷開狀態的問題 (即使已連線),如果其已暫時停用。

1.2.2 版本

2021 年 2 月 10 日

發布 androidx.mediarouter:mediarouter:1.2.21.2.2 版包含此連結所列的修訂項目。

修正錯誤

  • 呼叫 OnDynamicRouteChangedListener.onRouteChanged 時,不會嘗試重新選取所選路徑。

1.2.1 版本

2021 年 1 月 13 日

發布 androidx.mediarouter:mediarouter:1.2.1查看 1.2.1 版的修訂項目

修正錯誤

  • 修正在 BT 可用期間,呼叫 unselect() 時選取手機揚聲器的問題
  • 修正 MediaRouter.Callback 時間碼。系統會在 OnPrepareTransferListener#onPrepareTransfer 完成後呼叫 Callback#onRouteSelectedCallback#onRouteUnselected

1.2.0 版本

2020 年 10 月 14 日

發布 androidx.mediarouter:mediarouter:1.2.01.2.0 版包含此連結所列的修訂項目。

自 1.1.0 版以來的主要功能

  • 支援順暢的媒體傳輸功能,透過系統 UI 啟用媒體傳輸:詳情請參閱「媒體影片的新功能
  • 已變更註冊回呼的指南。查看 MediaRouter.addCallback() 的 Javadoc 中的範例程式碼
  • 新增 MediaRouter#OnPrepareTransferListener 事件監聽器,以便在所選路徑即將變更時接收事件。
  • 新增 MediaRouterParams 以表示轉送功能和 UI 類型。
  • 透過 @RestrictTo(LIBRARY) 避免嘗試用於內部用途

1.2.0-rc02 版

2020 年 10 月 1 日

發布 androidx.mediarouter:mediarouter:1.2.0-rc02查看 1.2.0-rc02 版的修訂項

修正錯誤

  • 修正問題:當使用者透過系統 UI 停止投放時,可能不會呼叫 RouteController#onUnselect

1.2.0-rc01 版本

2020 年 9 月 16 日

發布 androidx.mediarouter:mediarouter:1.2.0-rc01查看 1.2.0-rc01 版的修訂項目

修正錯誤

  • 修正了與藍牙音訊裝置連線時,目前投放功能的連線中斷問題。
  • 修正了在 MediaRouteProvider#notifyDynamicRoutesChanged() 中擲回 IllegalArgumentException 的問題。
  • 讓停止從輸出端切換器中投放內容的功能順利運作

1.2.0-beta01 版本

2020 年 9 月 2 日

發布 androidx.mediarouter:mediarouter:1.2.0-beta01查看 1.2.0-beta01 版的修訂項目

新功能

  • 支援順暢的媒體傳輸功能,透過系統 UI 啟用媒體傳輸:詳情請參閱「媒體影片的新功能

API 變更

  • MediaRouter.OnPrepareTransferListener 使用 ListenableFuture

修正錯誤

  • 修正群組路徑的音量控制問題。
  • 建立群組路徑時,會先建立群組路徑,之後再建立成員路徑。
  • 啟用輸出切換器中的「停止」功能。
  • 修正未正常呼叫的回呼
    • 系統在建立轉送工作階段時為 RouteController#onSelect
    • 從投放功能轉移到手機時為 MediaRouter.Callback#onRouteSelected
    • MediaRouter.Callback#onRouteSelected 以及正確的群組路徑資訊。
  • 移除回呼

1.2.0-alpha02 版本

2020 年 7 月 22 日

發布 androidx.mediarouter:mediarouter:1.2.0-alpha021.2.0-alpha02 版包含此連結所列的修訂項目。

API 變更

  • 新增 MediaRouter.Callback#onRouteSelected,用於在所選路徑與要求路徑不同時接收通知 (Ieee16)
  • 新增事件監聽器 MediaRouter#OnPrepareTransferListener,用於在所選路徑即將變更時接收事件 (I6ace1)
  • 新增 MediaRouterParam (I33150)
  • 已變更註冊回呼的指南。請參閱 MediaRouter.addCallback() 的 Javadoc 範例程式碼 (I58112)

1.2.0-alpha01 版本

2020 年 4 月 15 日

發布 androidx.mediarouter:mediarouter:1.2.0-alpha01查看 1.2.0-alpha01 版的修訂項

API 變更

  • 透過 @RestrictTo(LIBRARY) 避免嘗試用於內部用途

修正錯誤

  • 解決投放對話時的 TalkBack 問題
  • 透過 Lock 保護 DynamicGroupRouterController 的事件監聽器

1.1 版本

1.1.0 版本

2019 年 9 月 5 日

發布了 androidx.mediarouter:mediarouter:1.1.0。您可以前往這裡查看這個版本包含的修訂項目。

自 1.0.0 版以來的重要異動

  • 動態群組支援
    • 允許使用者動態新增或移除路徑裝置。
    • 如要啟用動態群組,請呼叫 MediaRouteButton.enableDynamicGroup();應用程式會顯示新的動態群組對話方塊
    • 已安裝的 MediaRouteProvider 必須同時支援動態群組才能啟用這項功能。

1.1.0-rc01 版本

2019 年 6 月 13 日

androidx.mediarouter:mediarouter:1.1.0-rc01 發布,且自 1.1.0-beta02 版以來皆無異動。您可以前往這裡查看這個版本包含的修訂版本。

1.1.0-beta02 版本

2019 年 6 月 5 日

發布了 androidx.mediarouter:mediarouter:1.1.0-beta02。您可以前往這裡查看這個版本包含的修訂項目。

新功能

  • 支援 MediaRouter 對話中的 RTL 語言

修正錯誤

  • 修正 MediaRoute 對話的底部邊框間距

1.1.0-beta01 版本

2019 年 5 月 7 日

發布了 androidx.mediarouter:mediarouter:1.1.0-alpha01。您可以前往這裡查看這個版本包含的修訂項目。

新功能

  • 針對標示為 @NonNull 的空值引數,將 IllegalPointerException 變更為 NullPointerException

API 相關異動

  • DynamicRouteDescriptor 的回呼邏輯已變更。現在 MediaRouteProvider 會呼叫 MediaRouterProvider.DynamicGroupController.notifyDynamicRoutesChanged,而不是直接呼叫回呼方法。

1.1.0-alpha03 版本

2019 年 4 月 3 日

發布 androidx.mediarouter:mediarouter:1.1.0-alpha03。您可以前往這裡查看這個版本包含的修訂項目。

修正錯誤

  • 已修正 MediaRouteVolumeSlider 和 RegisteredMediaRouteProvider 上的當機問題。

1.1.0-alpha02 版本

2019 年 3 月 13 日

發布了 androidx.mediarouter:mediarouter:1.1.0-alpha02。您可以前往這裡查看這個版本包含的修訂項目完整清單。

新功能

  • 支援 Android Studio 版面配置預覽中的 MediaRouteButton

API 相關異動

  • MediaRouteActionProviderMediaRouteButton 中新增 enableDynamicGroup() 方法,啟用動態群組功能
  • MediaRouteActionProviderMediaRouteButton 中新增 setAlwaysVisible(boolean) 方法,讓 MediaRouteButton 能持續顯示

修正錯誤

  • MediaRouteCastDialog 列點擊功能容易使用
  • 移除不必要的 onRouteChanged 回呼的呼叫

1.1.0-alpha01 版本

2018 年 12 月 3 日

新功能

  • 新增支援動態群組路徑
    • 新增 API,用於支援 MediaRouteProviders 提供的動態群組路徑
    • 新增路徑選擇器和動態群組路徑的控制器對話方塊,提供全新的使用者體驗