如何在Chromecast应用启动之前更改MediaRouteButton
行为以显示加载动画,例如HBO或Netflix,而不仅仅是当它连接到Chromecast时?
答案 0 :(得分:0)
您可以创建自己的CustomMediaRouteActionProvider extends MediaRouteActionProvider
并覆盖
onCreateMediaRouteButton()
方法,因此您还需要创建自定义CustomMediaRouteButton
。在此自定义按钮中,您可以轻松切换状态。当你收到回调onApplicationConnected()
时,将按钮状态切换为已连接,同时显示此状态(动画):
private static final int[] CHECKABLE_STATE_SET = {android.R.attr.state_checkable};
请下载MediaRouter来源,以便您可以定位代码 MediaRouterLibrarySource
答案 1 :(得分:0)
我们使用Cast Companion库(感谢Ali和团队),并且在连接过程中肯定没有获得连接动画。在选择强制转换设备和获取onApplicationConnected回调之间有大约3秒的时间,因此应该有足够的时间来查看动画。我们使用' mr_ic_media_route_mono_dark' drawable包含已检查状态的动画,因此在连接阶段动画无法播放的原因是一个谜。此时我还没有在其中一个库中声明错误,但不确定为什么它没有按预期工作。
我能够让动画开始播放的唯一方法是直接在MediaRouterButton上设置AnimationDrawable并手动启动,然后在连接后更改drawable。
基本上在发生onDeviceSelected回调时:
AnimationDrawable connecting = (AnimationDrawable) getResources().getDrawable(R.drawable.mr_ic_media_route_connecting_mono_dark);
mMediaRouteButton.setRemoteIndicatorDrawable(connecting);
connecting.start();
答案 2 :(得分:-1)
就我在Netflix上看到的(我没有HBO),我没有看到任何动画转换图标。在连接发生(或尝试)时,可以为Cast图标设置动画,通常它会很快发生,因此您看不到。如果您对这方面有疑问,请告诉我,我会提供更多信息,否则在连接之外,投射图标不会(也不应该)设置动画。