连接到应用程序时动画MediaRouteButton

时间:2014-02-24 21:21:49

标签: android chromecast

如何在Chromecast应用启动之前更改MediaRouteButton行为以显示加载动画,例如HBO或Netflix,而不仅仅是当它连接到Chromecast时?

3 个答案:

答案 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图标设置动画,通常它会很快发生,因此您看不到。如果您对这方面有疑问,请告诉我,我会提供更多信息,否则在连接之外,投射图标不会(也不应该)设置动画。