0

我正在使用CastCompanionLibrary-android为 Android 视频应用程序实现 Chromecast 功能。我在最终测试中发现了这个错误:重新连接到 wifi 并恢复相同的会话后,我无法停止投射。

要重现错误:

  1. 首先将视频投射到 Chromecast
  2. 断开 wifi -> 重新连接 wifi(在我的情况下断开持续约 8 秒),会话似乎已成功恢复:迷你控制器正在工作并显示投射视频的更新信息,我可以暂停/播放当前视频也带有迷你控制器上的按钮。
  3. 但是,如果我单击投射图标并选择停止投射,虽然图标按钮显示已断开连接,但视频仍在 Chromecast 上播放。
  4. 奇怪的是,在会话恢复后,如果我首先单击 MiniController 上的暂停/播放按钮,那么停止投射效果很好。但是不使用 MiniController,停止转换会失败。

我设置mCastManager.reconnectSessionIfPossible(Constants.CC_RECONNECT_TIMEOUT)在 MainActivity 的 onCreate(); 我试图 enabledWifiReconnection(), enableAutoReconnect()在 CastConfiguration 中启用/禁用,但这个错误总是出现。

到目前为止,我还没有在 CCL 的示例应用程序上看到这个错误。

wifi中断后的日志如下所示。

D/ccl_BaseCastManager: [v2.8.3] Successfully removed the existing BaseCastConsumer listener com.google.android.libraries.cast.companionlibrary.cast.player.VideoCastControllerFragment$MyCastConsumer@1e5000da
D/ccl_BaseCastManager: [v2.8.3] UI is no longer visible
D/ccl_BaseCastManager: [v2.8.3] Successfully added the new BaseCastConsumer listener com.sample.MainActivity$6@259d2d91
D/ccl_VideoCastManager: [v2.8.3] Successfully added the new CastConsumer listener com.sample.MainActivity$6@259d2d91
D/ccl_BaseCastManager: [v2.8.3] UI is visible
D/ccl_BaseCastManager: [v2.8.3] onUiVisibilityChanged() addCallback called
D/ccl_BaseCastManager: [v2.8.3] reconnectSessionIfPossible(10, null)
D/ccl_VideoCastControlle: [v2.8.3] onDestroy()
D/ccl_VideoCastControlle: [v2.8.3] Stopped TrickPlay Timer
D/ccl_BaseCastManager: [v2.8.3] onConnectionSuspended() was called with cause: 2
D/ccl_BaseCastManager: [v2.8.3] UI is no longer visible
D/ccl_BaseCastManager: [v2.8.3] Successfully removed the existing BaseCastConsumer listener com.sample.MainActivity$6@259d2d91
D/ccl_BaseCastManager: [v2.8.3] onUiVisibilityChanged() removeCallback called
D/ccl_BaseCastManager: [v2.8.3] Successfully added the new BaseCastConsumer listener com.sample.MainActivity$6@259d2d91
D/ccl_VideoCastManager: [v2.8.3] Successfully added the new CastConsumer listener com.sample.MainActivity$6@259d2d91
D/ccl_BaseCastManager: [v2.8.3] UI is visible
D/ccl_BaseCastManager: [v2.8.3] onUiVisibilityChanged() addCallback called
D/ccl_BaseCastManager: [v2.8.3] reconnectSessionIfPossible(10, null)
D/ccl_BaseCastManager: [v2.8.3] Found session info in the preferences, so proceed with an attempt to reconnect if possible
D/ccl_BaseCastManager: [v2.8.3] reconnectSessionIfPossible() Retrieved from preferences: sessionId=1FEB6B9C-5044-48CA-81DA-C5A9A0E5BEF7, routeId=com.google.android.gms/.cast.media.CastMediaRouteProviderService:2e6c7705d9c05354634e102f627ef1e2
D/ccl_BaseCastManager: [v2.8.3] trying to acquire Cast Client for "Chromecast0315" (2e6c7705d9c05354634e102f627ef1e2)
32284-32459/com.sample.mobile.sample D/ccl_BaseCastManager: [v2.8.3] Reconnection: Attempt 1
D/ccl_VideoCastManager: [v2.8.3] onVolumeChanged() reached
E/ccl_VideoCastManager: [v2.8.3] Failed to get volume
    com.google.android.libraries.cast.companionlibrary.cast.exceptions.TransientNetworkDisconnectionException
     at com.google.android.libraries.cast.companionlibrary.cast.BaseCastManager.checkConnectivity(BaseCastManager.java:1117)
     at com.google.android.libraries.cast.companionlibrary.cast.VideoCastManager.getVolume(VideoCastManager.java:631)
     at com.google.android.libraries.cast.companionlibrary.cast.VideoCastManager.onVolumeChanged(VideoCastManager.java:857)
     at com.google.android.libraries.cast.companionlibrary.cast.VideoCastManager.access$1300(VideoCastManager.java:130)
     at com.google.android.libraries.cast.companionlibrary.cast.VideoCastManager$CastListener.onVolumeChanged(VideoCastManager.java:2644)
     at com.google.android.gms.cast.internal.zze.zza(Unknown Source)
     at com.google.android.gms.cast.internal.zze.zza(Unknown Source)
     at com.google.android.gms.cast.internal.zze$zzb$2.run(Unknown Source)
     at android.os.Handler.handleCallback(Handler.java:739)
     at android.os.Handler.dispatchMessage(Handler.java:95)
     at android.os.Looper.loop(Looper.java:135)
     at android.app.ActivityThread.main(ActivityThread.java:5297)
     at java.lang.reflect.Method.invoke(Native Method)
     at java.lang.reflect.Method.invoke(Method.java:372)
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:908)
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:703)
D/ccl_BaseCastManager: [v2.8.3] onConnected() reached with prior suspension: true
D/ccl_VideoCastManager: [v2.8.3] Registering MediaChannel namespace
32284-32459/com.sample.mobile.sample D/ccl_BaseCastManager: [v2.8.3] Reconnection: Attempt 2
32284-32459/com.sample.mobile.sample D/ccl_BaseCastManager: [v2.8.3] Reconnection: Attempt 3
D/ccl_CastMediaRouterCal: [v2.8.3] onRouteUnselected: route=MediaRouter.RouteInfo{ uniqueId=com.google.android.gms/.cast.media.CastMediaRouteProviderService:2e6c7705d9c05354634e102f627ef1e2, name=Chromecast0315, description=Ready to play, iconUri=null, enabled=true, connecting=false, connectionState=0, canDisconnect=false, playbackType=1, playbackStream=-1, deviceType=0, volumeHandling=1, volume=20, volumeMax=20, presentationDisplayId=-1, extras=Bundle[mParcelledData.dataSize=636], settingsIntent=null, providerPackageName=com.google.android.gms }
D/ccl_BaseCastManager: [v2.8.3] disconnectDevice(true,false)
D/ccl_BaseCastManager: [v2.8.3] disconnectDevice() Disconnect Reason: Intentional disconnect
D/ccl_BaseCastManager: [v2.8.3] mConnectionSuspended: false
D/ccl_BaseCastManager: [v2.8.3] clearPersistedConnectionInfo(): Clearing persisted data for 0
D/ccl_VideoCastManager: [v2.8.3] trying to detach media channel
D/ccl_BaseCastManager: [v2.8.3] Trying to disconnect
D/ccl_BaseCastManager: [v2.8.3] onDisconnected() reached
D/ccl_VideoCastManager: [v2.8.3] updateMiniControllersVisibility() reached with visibility: false
D/ccl_VideoCastManager: [v2.8.3] clearMediaSession()

有人遇到与 wifi 会话重新连接的类似问题吗?或者有人暗示我的问题可能是什么?非常感谢任何提示!

4

0 回答 0