How to Make A Custom Cast MediaRouter Dialog

余生长醉 提交于 2019-12-11 12:41:04

问题


I am currently using the CastCompanionLibrary in my project. It is working well, however I need to customize the behaviour of the Cast button.

Currently, a dialog button containing the Cast devices is being shown (which is the expected behaviour). Also, when casting, the metadata and a stop/start button is shown. I need to customize this. I don't want to show the stop/start buttons. How can I achieve that?

Here are the related parts of my code:

<item
    android:id="@+id/media_route_menu_item"
    android:title="Google Cast"
    compat:actionProviderClass="android.support.v7.app.MediaRouteActionProvider"
    compat:showAsAction="always"/>

and

if (mCastManager != null) {
    mediaRouteMenuItem = mCastManager.addMediaRouterButton(menu, R.id.media_route_menu_item);
}

回答1:


You have a couple of options. First, you should note that when you are casting, you can build your app in a way that the act of stopping cast at that time would result in local playback so "stop casting" button should suffice. If you are fine with just hiding the "content" area of the existing dialog provided by CCL, you can copy the layout file "custom_media_route_controller_controls_dialog.xml" into your own project and just hide the area that you want (don't remove any components but wrap the content area in a simple layout and hide that layout). If you prefer to have your own, follow what CCL does; extend MediaRouteDialogFactory by overriding onCreateControllerDialogFragment(), and define your own extension of MediaRouteControllerDialog (see the package com.google.android.libraries.cast.companionlibrary.cast.dialog.video in CCL) and finally, extends VideoCastManager and override getMediaRouteDialogFactory() there to return your own factory.



来源:https://stackoverflow.com/questions/33738327/how-to-make-a-custom-cast-mediarouter-dialog

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!