【问题标题】:Android Chrome Cast buttonAndroid Chrome Cast 按钮
【发布时间】:2014-04-07 20:06:22
【问题描述】:

我只是在开发一个 chrome cast 应用程序,但在一个基本步骤上卡住了。我正在关注 Internet 上有关 Chrome Cast 的 GUI 的一些示例。应该启动演员的按钮(首先选择一个设备)通常位于操作栏中。这是它的添加方式:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    super.onCreateOptionsMenu(menu);
    getMenuInflater().inflate(R.menu.main, menu);
    mCastManager.addMediaRouterButton(menu, R.id.media_route_menu_item);

    return true;
}

和用于 R.id.media_route_menu_item 的 XML

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto" >

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

</menu>

如您在第二部分中所见:

    app:actionProviderClass="android.support.v7.app.MediaRouteActionProvider"

将启动 Chrome Cast 设备选择。我需要将菜单元素移出操作栏并制作一个相同的按钮。问题是我不能做类似的事情

<Button
...
            app:actionProviderClass="android.support.v7.app.MediaRouteActionProvider"
/>

它不会起作用,因为 actionProviderClass 已经准备好处理菜单项。对于如何使用按钮解决该问题的任何想法,我将不胜感激。

【问题讨论】:

    标签: android google-chrome button google-cast chromecast


    【解决方案1】:

    在我们的 GitHub 存储库中查看这个 sample,我们展示了三种不同的方法来做到这一点。如果您在浏览完这些问题后仍有疑问,请回来,我们会看看我们能提供什么帮助。

    【讨论】:

    • 嗨,阿里,您的示例 MediaRouterButtonActivity 在使用 FragmentActivity 时效果很好,但在片段中使用 MediaRouter.Callback 时,几乎不会触发 onRouteAdded 方法。知道如何在片段中使用它,以便在输入片段时将 mediaRouteButton 设置为可见吗?
    • FragmentActivity 是 MediaRoute 支持库强制执行的要求。什么类型的活动持有你的片段?
    【解决方案2】:

    您可以像这样使用 MediaRouteButton:

    XML
    <android.support.v7.app.MediaRouteButton
     android:id="@+id/media_route_button"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"/>
    

    Java

    MediaRouteButton mediaRouteButton = MediaRouteButton) findViewById(R.id.media_route_button);
    mediaRouteButton.setRouteSelector(your_selector);
    

    【讨论】:

    • 谢谢!我在我的 XML 文件中使用常规按钮类型。将按钮类型更改为 MediaRouteButton 后,它起作用了!
    【解决方案3】:

    为了完成席尔瓦的回答,如果您使用收费栏,这就是您在活动中需要的:

    MediaRouteButton mediaRouteButton = (MediaRouteButton) mToolbar.findViewById(R.id.mediaRouteMenuItem);
    // mediaRouteButton.setRouteSelector(MediaRouteSelector.EMPTY);
    CastButtonFactory.setUpMediaRouteButton(this, mediaRouteButton);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-09
      • 2015-12-23
      • 1970-01-01
      • 2019-06-25
      • 1970-01-01
      • 2016-09-05
      • 2019-10-06
      • 2013-10-28
      相关资源
      最近更新 更多