如何使用' CastCompanionLibrary-android'使用带有FragmentActivity的MediaRouteButton

时间:2014-09-16 11:05:26

标签: android chromecast

我正在努力将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()已达到

1 个答案:

答案 0 :(得分:0)

如果您已经连接并已成功启动应用程序(我猜您在电视上看到了您的应用程序),那么您使用MediaRouteButton而不是动作提供程序这一事实无关紧要;两个替代方案(按钮与动作提供者)为您提供了一条路线,您将通过该阶段,因此如果您正试图解决当前问题,请不要关注它。

我还假设你的意思是loadMedia()而不是loadRemoteMedia()。当你打电话给你时,你得到的是什么?您需要提供有关该方面的更多信息(绝对包括日志)。