MediaRouter android编程

MediaRouter android编程,android,mediarouter,Android,Mediarouter,我对android应用程序的MediaRouter有问题,我遵循了MediaRouter的android API指南,但当我运行应用程序时,工具栏上没有出现任何按钮 public class MediaRouterPlaybackActivity extends AppCompatActivity { private MediaRouteSelector mSelector; @Override protected void onCreate(Bundle savedIn

我对android应用程序的
MediaRouter
有问题,我遵循了
MediaRouter
的android API指南,但当我运行应用程序时,工具栏上没有出现任何按钮

public class MediaRouterPlaybackActivity extends AppCompatActivity {
    private MediaRouteSelector mSelector;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.miracast);
        Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar);
        setSupportActionBar(myToolbar);
        // Create a route selector for the type of routes your app supports.
        mSelector = new MediaRouteSelector.Builder()
                // These are the framework-supported intents
                .addControlCategory(MediaControlIntent.CATEGORY_REMOTE_PLAYBACK)
                .build();
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu){
        super.onCreateOptionsMenu(menu);
        // Inflate the menu and configure the media router action provider.
        getMenuInflater().inflate(R.menu.mediarouter, menu);
        // Attach the MediaRouteSelector to the menu item
        MenuItem mediaRouteMenuItem = menu.findItem(R.id.media_route_menu_item);
        MediaRouteActionProvider mediaRouteActionProvider =
                (MediaRouteActionProvider) MenuItemCompat.getActionProvider(
                        mediaRouteMenuItem);
        // Attach the MediaRouteSelector that you built in onCreate()
        mediaRouteActionProvider.setRouteSelector(mSelector);
        // Return true to show the menu.
        return true;
    }
}
这是工具栏的代码:

<android.support.v7.widget.Toolbar
        android:id="@+id/my_toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="#4696e5"
        android:elevation="4dp"
        android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
        app:popupTheme="@style/Theme.AppCompat"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="60dp" />


我也有同样的问题。在我的例子中,这是因为只有在检测到某些媒体接收器(如Chromecast或自定义媒体路由)时才会显示该按钮。如果您没有任何设备发送,按钮将不显示。

如果您想在没有可用路由时显示一些点击文本,您可以使用
MediaRouter\isRouteAvailable(android.support.v7.media.MediaRouteSelector,int)
[Link](,int))是否成功?如果还没有,请尝试将此
(MediaControlIntent.CATEGORY\u REMOTE\u PLAYBACK
更改为
(MediaControlIntent.CATEGORY_LIVE_VIDEO
。他们在这里写道,使用辅助输出将内容发送到支持无线的音乐系统或视频显示器。要查找和选择这些设备,您需要将
CATEGORY_LIVE_AUDIO
CATEGORY_LIVE_VIDEO
控制类别添加到MediaRouteSelecttor.您还需要创建和处理自己的
演示文稿
对话框。链接: