Android演员对话 - 暂停工作,播放不是

时间:2017-02-25 14:37:13

标签: android chromecast google-cast

无法使用演员对话框和自定义接收器。播放和播放媒体时,演员对话框显示暂停图标并且点击暂停会导致演员框架向接收者发送消息,该消息将传递到cast.receiver.MediaManager.onPause()。从那里我暂停我的自定义播放器并呼叫MediaManager.broadcastStatus(),这导致发送者的演员对话框按钮从暂停图标切换到播放图标。但是,按下播放按钮不会做任何事情。调试Android客户端我看到按下按钮时会调用MediaSessionCompatApi21.onPause().onPlay(),但只有暂停才会向接收器发送任何内容。知道为什么框架没有导致在接收器上调用cast.receiver.MediaManager.onPlay()函数?

这种情况发生在support:7.25.2 / play-services:10.2.0support:7.24.4 / play-services:9.4.0。我显然不理解基本的东西..

在我的应用程序和CastVideos-android应用程序中,我注意到的另一个可能相关的事情是,在gradle文件中注释掉mediarouter编译行会导致可运行的构建,但是转换对话框暂停功能也会被破坏。其他所有相关的工作都很好。痛苦地混淆..

更新:我针对我的自定义接收器运行CastVideos-android app(不播放任何媒体但模拟消息)并且播放/暂停工作正常。开始相信这是一个构建问题..

1 个答案:

答案 0 :(得分:0)

仔细观察最新的CastVideos-android示例解决了这个问题。给定一个虚拟的MediaInfo实例X,我正在调用
_remoteMediaClient.load(X);

看起来非常合理,但它并不适用于演员对话播放问题。使用MediaQueueItem(从查看最新的CastVideos-android版本)修复它...
MediaQueueItem qi = new MediaQueueItem.Builder(X).setAutoplay(true).setPreloadTime(20).build(); MediaQueueItem[] qa = new MediaQueueItem[]{qi}; _remoteMediaClient.queueLoad(qa,0,MediaStatus.REPEAT_MODE_REPEAT_OFF, null);