【问题标题】:How to customize Cast Dialog in the Google Cast Framework for Android如何在适用于 Android 的 Google Cast Framework 中自定义 Cast Dialog
【发布时间】:2019-10-08 23:57:35
【问题描述】:

我正在尝试自定义 Google Cast SDK 的 Cast Dialog(当您点击 cast 按钮并显示可用设备列表时显示),但我还没有找到方法。

目前,它只显示一个 AlertDialog,其中包含可连接的可用设备列表。

我想要做的是打开一个 Activity,它将显示具有我自己的 UI 实现的设备列表。

这是我要修改的对话框:

我发现了有关此 SDK 的许多自定义方面,但与此对话框无关。

【问题讨论】:

标签: android casting chromecast google-cast google-cast-sdk


【解决方案1】:

所以我想出了一个方法来实现这一点, 首先,我创建了一个覆盖 MediaRouteActionProvider 的类(这是控制该按钮功能的主类)

public class CustomMediaRouteActionProvider extends androidx.mediarouter.app.MediaRouteActionProvider {

    public CustomMediaRouteActionProvider(Context context) {
        super(context);
    }

    @Override
    public MediaRouteButton onCreateMediaRouteButton() {
        return new CastButton(getContext());
    }
}

然后你需要用你自己的来覆盖按钮的功能,在我的例子中,我打开了一个新的活动。

public class CastButton extends MediaRouteButton {


    public CastButton(Context context) {
        this(context, null);
    }

    public CastButton(Context context, AttributeSet attrs) {
        this(context, attrs, R.attr.mediaRouteButtonStyle);
    }

    public CastButton(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    @Override
    public boolean performClick() {
        Intent i = new Intent(getContext(), RemoteDevicesActivity.class);
        getContext().startActivity(i);
        return true;
    }
}

最后,您需要修改包含此按钮的 xml(我假设您已经实现了这部分)

使用您的自定义类(在本例中为 CustomMediaRouteActionProvider)更改字段 app:actionProviderClass,您就完成了。

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <item android:title="@string/connect_to"
        android:id="@+id/cast"
        app:actionProviderClass="CustomMediaRouteActionProvider"
        app:showAsAction="ifRoom" />

</menu>

【讨论】:

  • 执行此操作后,投射按钮不显示,您是否遇到此问题?
【解决方案2】:

你有更多关于这个最终结果的细节吗?我需要做类似的事情,但我不明白你是如何实现的

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2017-04-03
  • 2018-03-21
  • 1970-01-01
  • 2014-03-02
  • 2017-01-02
  • 2016-11-03
  • 2019-03-09
  • 1970-01-01
相关资源
最近更新 更多