Chromecast RemoteMediaClient有时无法用于某些操作,例如" play"并且"暂停"

时间:2016-08-09 05:29:31

标签: android chromecast

我已经设置了新的chromecast sdk v3,我无法弄清楚这个问题。

如果用户点击MainActivity中的某个视频,则会转到VideoActivity。

我使用CastButtonFactory为两个活动设置菜单项

castMenuItem = CastButtonFactory.setUpMediaRouteButton(getApplicationContext(), menu,
                R.id.action_mediaroute); 

但我只是在VideoActivity中添加sessionlistener

 mCastContext.getSessionManager().addSessionManagerListener(mSessionManagerListener, CastSession.class);

问题是,如果我使用VideoActivity中的castmenu项目连接到演员设备,我总是可以使用API​​控制播放

remoteMediaClient.pause();
remoteMediaClient.play();

和MediaRouteButtonDialog(如果在连接模式下单击演员菜单项,将弹出一个)播放控件也适用于这种情况。

但是,如果我连接到cast设备,使用MainActivity中的强制转换菜单项启动会话,则API不起作用,MediaRouteButtonDialog也不起作用。

如下:

remoteMediaClient.load();

无效:

remoteMediaClient.play();
remoteMediaClient.pause();

1 个答案:

答案 0 :(得分:1)

尝试扩展MediaIntentReceiver。它可以被子类化以处理自定义操作或在处理预定义操作时覆盖默认行为。

如果您已经实现了自己的MediaIntentReceiver,则需要将其添加到清单中,并在CastMediaOptions中设置其名称。

默认情况下,片段会显示播放/暂停切换按钮。开发人员可以使用属性castControlButtons覆盖要显示的按钮。支持的控制按钮定义为ID资源。

以下是放置播放/暂停切换按钮的示例:

item>
    <item>@id/cast_button_type_play_pause_toggle</item>
    ...
    <fragment
        android:id="@+id/cast_mini_controller"
        ...
        app:castControlButtons="cast_mini_controller_control_buttons"
        class="com.google.android.gms.cast.framework.media.widget.MiniControllerFragment">