我正在努力将Google Chromecast
集成到我的Android
个应用程序中。为此,我指的是Google Cast例子。
我正在使用CastCompanionLibrary-android - CCL并了解如何使用它我指的是Cast videos sample。但是,此示例显示了如何将投射按钮与ActionBar
一起使用。
我的问题是,如果我必须在自定义布局中使用MediaRouteButton
,如何使用此库?我必须在哪些地方进行更改?
我的活动延伸FragmentActivity
。
注意:我确实浏览了随图书馆提供的pdf文档,但没有找到有关如何使用MediaRouteButton
库的详细信息。
感谢任何帮助。
更新:
第1步:我收到VideoCastManager
个实例。
第2步:我从自定义布局获取MediaRouteButton并将其添加到VideoCastManager
实例。
第3步:实施onCastDeviceDetected()
侦听器方法的onCastAvailabilityChanged()
,onApplicationConnected()
,onApplicationDisconnected()
,onDisconnected()
和VideoCastConsumerImpl
方法。然后将此侦听器添加到VideoCastManager
实例。
第4步:在onApplicationConnected()
中,我通过传递搜索栏的当前位置来调用loadRemoteMedia()
。
但它不起作用。视频播放永远不会开始。
更新2:
以下是我在Cast视频示例应用程序中尝试使用Cast网址时获得的日志。
申请状态:" Loaded.Started.Ready"
会话次数:" 2"
媒体元素状态:"停滞"
Cast Receiver Manager消息:"发件人已连接:{OTHER DATA}"
媒体经理消息:"加载{OTHER DATA}"
媒体协议:" m3u8" //我的视频是m3u8扩展
以下是我在我的应用程序中尝试使用Cast网址时获得的日志。
申请状态:" Loaded.Started.Ready"
会话计数:" 1"
媒体元素状态:
Cast Receiver Manager消息:"发件人已连接:{OTHER DATA}"
媒体管理员消息:"获取状态{OTHER DATA}"
媒体协议:未知
更新3 BaseCastManager标签:
D / ccl_BaseCastManager(2974):[v1.8]获取与Google的连接 为" Chromecast"播放服务(941cb5ec30f65c2082b67fd7c5df0b03)
D / ccl_BaseCastManager(2974):[v1.8] onConnected()与先前达成 暂停:错误
D / ccl_BaseCastManager(2974):[v1.8] launchApp()是 名为D / ccl_BaseCastManager(2974):[v1.8]启动应用程序
D / ccl_BaseCastManager(2974):[v1.8] launchApplication() - >成功结果
D / ccl_BaseCastManager(2974):[v1.8]成功添加新内容 BaseCastConsumer监听器 om.google.sample.castcompanionlibrary.notification.VideoCastNotificationService$2@429998a8
VideoCastManager标记:
D / ccl_VideoCastManager(2974):[v1.8] onApplicationStatusChanged() 到达:Chromecast主屏幕
D / ccl_VideoCastManager(2974):[v1.8] onVolumeChanged()已达到
D / ccl_VideoCastManager(2974):[v1.8] onApplicationStatusChanged()达到:null
D / ccl_VideoCastManager(2974):已达到[v1.8] onApplicationConnected() with sessionId:B71F7618-1516-5F6C-D795-EF32FD0BF5E2,和 mReconnectionStatus = INACTIVE
D / ccl_VideoCastManager(2974):[v1.8] startNotificationService()
D / ccl_VideoCastManager(2974):[v1.8] attachMedia()
D / ccl_VideoCastManager(2974):[v1.8]注册MediaChannel名称空间
D / ccl_VideoCastManager(2974):[v1.8] onApplicationStatusChanged()已达到:准备播放
D / ccl_VideoCastManager(2974):[v1.8]成功添加了新的CastConsumer监听器 om.google.sample.castcompanionlibrary.notification.VideoCastNotificationService$2@429998a8
D / ccl_VideoCastManager(2974):已达到[v1.8] RemoteMediaPlayer :: onStatusUpdated()
D / ccl_VideoCastManager(2974):[v1.8] onRemoteMediaPlayerStatusUpdated()已达到
D / ccl_VideoCastManager(2974):[v1.8] mApiClient或mRemoteMediaPlayer为空,因此不会>继续
D / ccl_VideoCastManager(2974):已达到[v1.8] RemoteMediaPlayer :: onMetadataUpdated()
D / ccl_VideoCastManager(2974):[v1.8] onRemoteMediaPlayerMetadataUpdated()已达到
答案 0 :(得分:0)
如果您已经连接并已成功启动应用程序(我猜您在电视上看到了您的应用程序),那么您使用MediaRouteButton而不是动作提供程序这一事实无关紧要;两个替代方案(按钮与动作提供者)为您提供了一条路线,您将通过该阶段,因此如果您正试图解决当前问题,请不要关注它。
我还假设你的意思是loadMedia()而不是loadRemoteMedia()。当你打电话给你时,你得到的是什么?您需要提供有关该方面的更多信息(绝对包括日志)。