2014-09-30 1 views
2

У меня возникла проблема с попыткой реализовать Chromecast в моем приложении с помощью CastCompanionLibrary.CastCompanionLibrary: mApiClient или mRemoteMediaPlayer имеет значение

Вот как я инициализирую свой CastManager.

public static VideoCastManager mCastMgr; 
//chromeCast init 
public static VideoCastManager getVideoCastManager(Context ctx) { 

    if (mCastMgr == null) { 
     mCastMgr = VideoCastManager.initialize(ctx, ctx.getResources().getString(R.string.CAST_APPLICATION_ID), null, null); 
     mCastMgr.enableFeatures(VideoCastManager.FEATURE_NOTIFICATION | VideoCastManager.FEATURE_LOCKSCREEN | 
       VideoCastManager.FEATURE_WIFI_RECONNECT 
       | VideoCastManager.FEATURE_NOTIFICATION | 
       VideoCastManager.FEATURE_DEBUGGING); 
    } 
    mCastMgr.setContext(ctx); 
    return mCastMgr; 
} 

Это всего лишь тестовый код для отображения одного носителя. Этот метод вызывается в onCreate.

И затем в onResume я назначаю свой VideoCastConsumer своему менеджеру.

// CHROMECAST 
    mVideoCastManager.addVideoCastConsumer(mVideoCastConsumer); 

У меня нет проблем с обнаружением Chromecast, он отлично работает. Я выбираю свое устройство с приложением, а затем он отображает мое имя приложения на моем экране и ничего не делает. Причина должна заключаться в этом отладочном сообщении.

09-30 17:36:26.164: D/ccl_CastMediaRouterCal(7630): [v1.10] Route added: Chambre 
09-30 17:36:34.997: D/ccl_BaseCastManager(7630): [v1.10] Successfully added the new BaseCastConsumer listener [email protected] 
09-30 17:36:34.997: D/ccl_VideoCastManager(7630): [v1.10] Successfully added the new CastConsumer listener [email protected] 
09-30 17:36:38.576: D/ccl_CastMediaRouterCal(7630): [v1.10] onRouteSelected: info=MediaRouter.RouteInfo{ uniqueId=com.google.android.gms/.cast.media.CastMediaRouteProviderService:92ec2ab63d7e51ff96603bf08487fbc6, name=Chambre, description=Chromecast, enabled=true, connecting=false, playbackType=1, playbackStream=-1, volumeHandling=0, volume=0, volumeMax=20, presentationDisplayId=-1, extras=Bundle[mParcelledData.dataSize=580], providerPackageName=com.google.android.gms } 
09-30 17:36:38.578: D/ccl_BaseCastManager(7630): [v1.10] acquiring a connection to Google Play services for "Chambre" (92ec2ab63d7e51ff96603bf08487fbc6) 
09-30 17:36:38.590: D/ccl_CastMediaRouterCal(7630): [v1.10] onResult: mSelectedDevice=Chambre 
09-30 17:36:39.593: D/ccl_BaseCastManager(7630): [v1.10] onConnected() reached with prior suspension: false 
09-30 17:36:39.598: D/ccl_BaseCastManager(7630): [v1.10] launchApp() is called 
09-30 17:36:39.598: D/ccl_BaseCastManager(7630): [v1.10] Launching app 
09-30 17:36:39.640: D/ccl_VideoCastManager(7630): [v1.10] onVolumeChanged() reached 
09-30 17:36:39.641: D/ccl_VideoCastManager(7630): [v1.10] onApplicationStatusChanged() reached: 
09-30 17:36:39.757: D/ccl_VideoCastManager(7630): [v1.10] onApplicationStatusChanged() reached: null 
09-30 17:36:40.988: D/ccl_BaseCastManager(7630): [v1.10] launchApplication() -> success result 
09-30 17:36:40.988: D/ccl_VideoCastManager(7630): [v1.10] onApplicationConnected() reached with sessionId: A5E3356F-14BD-FD02-6044-8911E8E4D215, and mReconnectionStatus=INACTIVE 
09-30 17:36:40.989: D/ccl_VideoCastManager(7630): [v1.10] startNotificationService() 
09-30 17:36:40.994: D/ccl_VideoCastManager(7630): [v1.10] attachMedia() 
09-30 17:36:40.996: D/ccl_VideoCastManager(7630): [v1.10] Registering MediaChannel namespace 
09-30 17:36:41.007: D/ccl_VideoCastManager(7630): [v1.10] onApplicationStatusChanged() reached: Ready To Cast 
09-30 17:36:41.008: D/ccl_VideoCastNotificat(7630): [v1.10] onCreate() 
09-30 17:36:41.009: D/ccl_BaseCastManager(7630): [v1.10] Successfully added the new BaseCastConsumer listener com.google.sample.c[email protected]41f7edb0 
09-30 17:36:41.009: D/ccl_VideoCastManager(7630): [v1.10] Successfully added the new CastConsumer listener com.google.sample.c[email protected]41f7edb0 
09-30 17:36:41.009: D/ccl_VideoCastNotificat(7630): [v1.10] onStartCommand 
09-30 17:36:41.010: D/ccl_VideoCastNotificat(7630): [v1.10] onStartCommand(): Action: ACTION_VISIBILITY true 
09-30 17:36:41.684: D/ccl_VideoCastManager(7630): [v1.10] RemoteMediaPlayer::onStatusUpdated() is reached 
09-30 17:36:41.684: D/ccl_VideoCastManager(7630): [v1.10] onRemoteMediaPlayerStatusUpdated() reached 
09-30 17:36:41.684: D/ccl_VideoCastManager(7630): [v1.10] mApiClient or mRemoteMediaPlayer is null, so will not proceed 
09-30 17:36:41.684: D/ccl_VideoCastManager(7630): [v1.10] RemoteMediaPlayer::onMetadataUpdated() is reached 
09-30 17:36:41.684: D/ccl_VideoCastManager(7630): [v1.10] onRemoteMediaPlayerMetadataUpdated() reached 

Вот журналы Chromecast, но мне кажется, что нет ничего, пока я не отключить его .. Это очень странно.

Failed to load resource: the server responded with a status of 404 (Not Found) https://www.gstatic.com/eureka/player/undefined 
[ 0.280s] [goog.net.WebSocket] Opening the WebSocket on ws://localhost:8008/v2/ipc cast_receiver.js:18 
The page at 'https://www.gstatic.com/eureka/player/player.html?skin' was loaded over HTTPS, but ran insecure content from 'ws://localhost:8008/v2/ipc': this content should also be loaded over HTTPS. 
player.html:1 
Connecting to a non-secure WebSocket server from a secure origin is deprecated. player.html:1 
[ 0.363s] [goog.net.WebSocket] WebSocket opened on ws://localhost:8008/v2/ipc cast_receiver.js:18 
Failed to load resource: the server responded with a status of 404 (Not Found) https://www.gstatic.com/eureka/player/undefined 
cast.receiver.logger.setLevelValue(cast.receiver.LoggerLevel.DEBUG); 
undefined 
[ 17.665s] [cast.receiver.IpcChannel] Received message: {"data":"{\"reason\":\"closed_by_peer\",\"senderId\":\"35:com.MY_APP.AndroidApp-12\",\"type\":\"senderdisconnected\"}","namespace":"urn:x-cast:com.google.cast.system","senderId":"SystemSender"} cast_receiver.js:18 
[ 17.676s] [cast.receiver.CastMessageBus] Dispatching CastMessageBus message cast_receiver.js:18 
[ 17.682s] [cast.receiver.CastReceiverManager] Dispatching sender disconnected event [35:com.MY_APP.AndroidApp-12] Reason: requested_by_sender cast_receiver.js:18 
[ 17.688s] [cast.receiver.CastMessageBus] Unregistering sender [urn:x-cast:com.google.cast.player.message, 35:com.MY_APP.AndroidApp-12] cast_receiver.js:18 
[ 17.693s] [cast.receiver.CastMessageBus] Unregistering sender [urn:x-cast:com.google.cast.media, 35:com.MY_APP.AndroidApp-12] cast_receiver.js:18 
[ 17.704s] [cast.receiver.CastMessageBus] Disposed CastMessageBus[urn:x-cast:com.google.cast.system] cast_receiver.js:18 
[ 17.710s] [cast.receiver.CastMessageBus] Disposed CastMessageBus[urn:x-cast:com.google.cast.player.message] cast_receiver.js:18 
[ 17.716s] [cast.receiver.CastMessageBus] Disposed CastMessageBus[urn:x-cast:com.google.cast.media] cast_receiver.js:18 
[ 17.729s] [cast.receiver.CastReceiverManager] Disposed CastReceiverManager cast_receiver.js:18 

Но я не знаю, в чем причина этой проблемы. Любая помощь будет оценена, спасибо.

+1

Вам необходимо предоставить (1) больше журнала со стороны андроида и (2) журнал консоли из вашего литого устройства. Без них очень трудно понять, что происходит. Кроме того, обновите CCL 1.10, если сможете. Наконец, вообще называется onApplicationConnected? –

+0

Я обновил CCL и onApplicationConnected называется да. Что вы подразумеваете под консольным журналом из моего литого устройства? – Wawa08

+1

Вам необходимо собрать журналы из вашего ресивера, см. Раздел «Отладка» здесь: https://developers.google.com/cast/docs/custom_receiver. Кроме того, добавьте больше журнала с Android-стороны; Мне интересно узнать, что происходит после той части, которую вы показываете; этого недостаточно для устранения неполадок –

ответ

0

Я решил свою проблему. Мне просто нужно было добавить вызов incrementUiCounter в onResume при настройке videoCastConsumer.

@Override 
public void onResume() { 
    super.onResume(); 

    // CHROMECAST 
    mVideoCastManager = MyApplication.getVideoCastManager(this); 
    mVideoCastManager.addVideoCastConsumer(mVideoCastConsumer); 
    mVideoCastManager.incrementUiCounter(); 
... 
Смежные вопросы