Android Cast Dialog - 暂停工作,不播放

Posted

技术标签:

【中文标题】Android Cast Dialog - 暂停工作,不播放【英文标题】:Android Cast Dialog - Pause working, play is not 【发布时间】:2017-02-25 14:37:12 【问题描述】:

演员对话和自定义接收器有问题。媒体正在投射和播放,投射对话框显示暂停图标,点击暂停会导致投射框架向接收器发送一条消息,该消息通过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 应用程序(不播放任何媒体,但模拟消息传递)并且播放/暂停工作正常。开始相信这是一个构建问题..

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于Android Cast Dialog - 暂停工作,不播放的主要内容,如果未能解决你的问题,请参考以下文章

Android4.4 SystemUI加入Dialog弹窗

android怎样自定义dialog

android循环遍历出多个全屏的dialog,这些dialog怎么关闭

46.Android 自己定义Dialog

Android dialog能设置延迟或者倒计时吗

android怎样自定义dialog