Android Chrome Cast按钮

时间:2014-03-05 16:20:57

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

我正在开发一个Chrome演员应用程序并且卡在一个基本步骤上。我正在关注互联网上有关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。问题是我不能做像

这样的事情
<Button
...
            app:actionProviderClass="android.support.v7.app.MediaRouteActionProvider"
/>

它将无法工作,因为actionProviderClass已准备好使用菜单项。我会感谢任何想法如何使用按钮来解决这个问题。

3 个答案:

答案 0 :(得分:2)

您可以像这样使用MediaRouteButton:

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

爪哇

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

答案 1 :(得分:0)

在我们的GitHub存储库中查看此sample,我们将展示三种不同的方法。如果您在完成这些操作后仍有疑问,请回过头来看看我们可以提供哪些帮助。

答案 2 :(得分:0)

只是为了完成席尔瓦的答案,如果您使用Tollbar,这就是您在活动中所需要的:

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