Mediarouter

透過常用使用者介面在遠端接收裝置上啟用媒體顯示和播放功能。
最近更新時間 穩定版 候選版 Beta 版 Alpha 版
March 20, 2024 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 版

March 20, 2024

發布 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)。
  • 修正錯誤,修正透過 android.media.MediaRouter#addUserRoute() 新增的使用者路徑,導致 isSystemRoute 傳回 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)。

修正錯誤

  • 修正錯誤,修正透過 android.media.MediaRouter#addUserRoute() 新增的使用者路徑,導致 isSystemRoute 傳回 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 (7d17ea) 中的 IllegalArgumentException 導致應用程式當機的迴歸問題。
  • 新增 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 (7d17ea) 中的 IllegalArgumentException 導致應用程式當機的迴歸問題。

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.0 發布。1.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 提供的動態群組路徑
    • 新增路徑選擇器和動態群組路徑的控制器對話方塊,提供全新的使用者體驗