Android 投射对话框 - 暂停工作,不播放

Android Cast Dialog - Pause working, play is not

在使用投射对话框和自定义接收器时遇到问题。正在投射和播放媒体,投射对话框显示暂停图标,点击暂停会导致投射框架向接收方发送一条消息,该消息会到达 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 应用程序上 运行domly 注意到的另一个可能相关的事情是注释掉 gradle 文件中的 mediarouter 编译行生成可运行的构建,但投射对话框暂停功能也被破坏。不过,与演员表相关的其他所有内容都可以正常工作。令人痛苦的困惑..

更新:我 运行 CastVideos-android 应用程序针对我的自定义接收器(不播放任何媒体但模拟消息传递)并且 play/pause 工作正常。开始相信这是构建问题..

仔细查看最新的 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);