Chromecast RemoteMediaClient 有时不适用于“播放”和“暂停”等某些操作
Posted
技术标签:
【中文标题】Chromecast RemoteMediaClient 有时不适用于“播放”和“暂停”等某些操作【英文标题】:Chromecast RemoteMediaClient sometimes doesnt work for certain actions like "play" and "pause" 【发布时间】:2016-08-09 05:29:31 【问题描述】:我已经设置了新的 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(如果您在连接模式下单击投射菜单项会弹出该对话框)播放控件也适用于这种情况。
但是,如果我连接到投射设备,使用 MainActivity 中的投射菜单项启动会话,则 API 不起作用,MediaRouteButtonDialog 也不起作用。
作品:
remoteMediaClient.load();
不起作用:
remoteMediaClient.play();
remoteMediaClient.pause();
【问题讨论】:
您还遇到这个问题吗? 【参考方案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">
【讨论】:
以上是关于Chromecast RemoteMediaClient 有时不适用于“播放”和“暂停”等某些操作的主要内容,如果未能解决你的问题,请参考以下文章