2016-11-02 3 views
1

J'utilise this project example pour diffuser un contenu vidéo sur l'écran du téléviseur. Il y a des problèmes étranges quand j'essaye de lancer une vidéo qui est déjà en train de jouer dans LocalPlayerActivity. Donc, dans LocalPlayerActivity je clique sur bouton pour lire la vidéo dans le lecteur local, après cela, je clique sur le bouton Cast et sélectionne un périphérique pour diffuser le contenu vidéo. Le ExpandedControlsActivity, qui devrait être affiché ensuite, apparaît pendant une seconde puis disparaît immédiatement. Le fait est que je n'ai rien touché dans le code.ExpandedControlsActivity disparaît si je diffuse une vidéo en cours de lecture

Voici the video as well pour une meilleure compréhension, est-ce que quelqu'un sait quel pourrait être le problème?

journal Android:

I/AppCompatViewInflater: application: thème est maintenant dépréciée. Veuillez passer à l'utilisation de android: theme à la place. D/LocalPlayerActivity: Définition de l'URL de VideoView sur: https://commondatastorage.googleapis.com/gtv-videos-bucket/CastVideos/mp4/DesigningForGoogleCast.mp4 D/LocalPlayerActivity: Contrôles: PlayBackState: IDLE D/LocalPlayerActivity: onStart s'appelait D/LocalPlayerActivity: onResume() s'appelait D/ViewRootImpl [LocalPlayerActivity]: changeCanvasOpacity: opaque = true D/ViewRootImpl [LocalPlayerActivity]: changementCanvasOpacity: opaque = false D/LocalPlayerActivity: Arrêté TrickPlay Minuteur D/LocalPlayerActivity: Redémarré TrickPlay Minuteur W/MediaPlayer: Impossible d'ouvrir https://commondatastorage.googleapis.com/gtv-videos-bucket/CastVideos/mp4/DesigningForGoogleCast.mp4: java.io.FileNotFoundException: Aucun fournisseur de contenu: https://commondatastorage.googleapis.com/gtv-videos-bucket/CastVideos/mp4/DesigningForGoogleCast.mp4 D/LocalPlayerActivity: Commandes: PlayBackState: JOUER D/MediaPlayer: getMetadata D/LocalPlayerActivity: onPrepared est atteint D/LocalPlayerActivity: Arrêté TrickPlay Minuteur D/LocalPlayerActivity: Redémarré TrickPlay Minuteur V/MediaRouter: Dispatching changement de route: UserRouteInfo {name = Nexus Player, description = Nexus Player , status = null, category = RouteCategory {name = Types de périphériques = ROUTE_TYPE_USER groupable = false}, supportedTypes = ROUTE_TYPE_USER, presentationDisplay = null} D/OpenGLRenderer: endAllActiveAnimators sur 0x7ca1451c00 (ListView) avec le handle 0x7ca20e1d80 I/DynamiteModule: Considérant le module local com.google.android.gms.cast.framework.dynamite: 0 et distant module com.google.android.gms.cast.framework.dynamite: 5 I/DynamiteModule: Version distante sélectionnée de com.google.android.gms.cast.framework.dynamite, version> = 5 I/CastDynamiteModuleImpl: xv créé par ClassLoader com.google.android.chimera.container.internal.DelegateLastPathClassLoader [DexPathList [[fichier zip "/data/data/com.google.android.gms/app_chimera/m/00000005/DynamiteModulesC_GmsCore_prodmnc_alldpi_release.apk"],nativeLibraryDirectories=[/data /user/0/com.google.android.gms/app_chimera/m/00000005/n/arm64-v8a,/system/lib64,/vendor/lib64]]]. I/DynamiteModule: Considérant le module local com.google.android.gms.cast.framework.dynamite: 0 et le module distant com.google.android.gms.cast.framework.dynamite: 5 I/DynamiteModule: Version distante sélectionnée de com. google.android.gms.cast.framework.dynamite, version> = 5 I/CastDynamiteModuleImpl: xv créé par ClassLoader com.google.android.chimera.container.internal.DelegateLastPathClassLoader [DexPathList [[fichier zip "/ data/data/com .google.android.gms/app_chimera/m/00000005/DynamiteModulesC_GmsCore_prodmnc_alldpi_release.apk "], nativeLibraryDirectories = [/ data/utilisateur/0/com.google.android.gms/app_chimera/m/00000005/n/arm64-v8a,/system/lib64,/vendor/lib64]]]. V/MediaRouter: Distribuer le changement d'itinéraire: UserRouteInfo {name = Nexus Player, description = Nexus Player, état = null, catégorie = RouteCategory {name = Types de périphériques = ROUTE_TYPE_USER groupable = false}, supportedTypes = ROUTE_TYPE_USER, presentationDisplay = null} D/onSessionStarted : sessionId: 5ee20da4-e9cf-4f99-ba97-bf3937df8246 D/LocalPlayerActivity: onPause() s'appelait D/LocalPlayerActivity: Contrôles: PlayBackState: PAUSED I/art: Collection de cache de code partiel, code = 122 Ko, data = 114 Ko I/art : Après la collecte du cache de code, code = 120 Ko, données = 113 Ko I/art: augmentation de la capacité de cache de code à 512 Ko D/LocalPlayerActivity: onResume() a été appelé I/DynamiteModule: Considérant le module local com.google.android.gms.cast.framework .dynamite: 0 et module distant com.google.android.gms.cast.framework.dynamite: 5 I/DynamiteModule: Version distante sélectionnée de com.google.android.gms.cast.framework.dynamite, version> = 5 I/CastDynamiteModuleImpl: xv créé par ClassLoader com.google.android.chimera.container.internal.Del egateLastPathClassLoader [DexPathList [[fichier zip "/data/data/com.google.android.gms/app_chimera/m/00000005/DynamiteModulesC_GmsCore_prodmnc_alldpi_release.apk "], nativeLibraryDirectories = [/ data/utilisateur/0/com.google.android.gms/app_chimera/m/00000005/n/arm64-v8a,/system/lib64,/fournisseur/lib64]]]. I/DynamiteModule: Considérant le module local com.google.android.gms.cast.framework.dynamite: 0 et le module distant com.google.android.gms.cast.framework.dynamite: 5 I/DynamiteModule : Version distante sélectionnée de com.google.android.gms.cast.framework.dynamite, version> = 5 I/CastDynamiteModuleImpl: xv créé par ClassLoader com.google.android.chimera.container.internal.DelegateLastPathClassLoader [DexPathList [[zip] "/data/data/com.google.android.gms/app_chimera/m/00000005/DynamiteModulesC_GmsCore_prodmnc_alldpi_release.apk"],nativeLibraryDirectories=[/data/user/0/com.google.android.gms/app_chimera/m/00000005/ n/arm64-v8a,/system/lib64,/vendor/lib64]]]. I/DynamiteModule: Considérant le module local com.google.android.gms.cast.framework.dynamite: 0 et le module distant com.google.android. gms .cast.framework.dynamite: 5 I/DynamiteModule: Version distante sélectionnée de com.google.android.gms.cast.framework.dynamite, version> = 5 I/CastDynamiteModuleImpl: xv créé par ClassLoader com.google.android.chimera. container.internal.DelegateLastPathClassLoader [DexPathList [[fichier zip "/data/data/com.google.android.gms/app_chimera/m/00000005/DynamiteModulesC_GmsCore_prodmnc_alldpi_release.apk"],nativeLibraryDirectories=[/data/user/0/com.google .android.gms/app_chimera/m/00000005/n/arm64-v8a,/système/lib64,/vendor/lib64]]]. V/MediaRouter: Répartition du routage: UserRouteInfo {name = Nexus Player, description = CastVideos, status = null, catégorie = RouteCategory {name = Types de périphériques = ROUTE_TYPE_USER groupable = false}, supportedTypes = ROUTE_TYPE_USER, presentationDisplay = null} V/MediaRouter: Répartition du routage: UserRouteInfo {name = Nexus Player, description = Prêt à diffuser, status = null, catégorie = RouteCategory {name = Types de périphériques = ROUTE_TYPE_USER groupable = false}, supportedTypes = ROUTE_TYPE_USER, presentationDisplay = null} V/MediaRouter: Dispatching route change: UserRouteInfo {nom = TV Kantine, description = Chromecast, statut = null, catégorie = RouteCategory {name = Types de périphériques = ROUTE_TYPE_USER groupable = false}, supportedTypes = ROUTE_TYPE_USER, presentationDisplay = null} V/MediaRouter: Dispatching changement de route: UserRouteInfo { name = Kantine TV, description = Chromecast, status = null, catégorie = RouteCategory {name = Types de périphériques = ROUTE_TYPE_USER groupable = false}, supportedTypes = ROUTE_TYPE_USER, presentationDisplay = null} V/MediaRouter: Distribuer le changement d'itinéraire: UserRouteInfo {name = Nexus Player, description = Prêt à diffuser, status = null, catégorie = RouteCategory {name = Types de périphériques = ROUTE_TYPE_USER groupable = false}, supportedTypes = ROUTE_TYPE_USER, presentationDisplay = null} I/DynamiteModule : Considérant le module local com.google.android.gms.cast.framework.dynamite: 0 et le module distant com.google.android.gms.cast.framework.dynamite: 5 I/DynamiteModule: Version distante sélectionnée de com.google.android .gms.cast.framework.dynamite, version> = I/DynamiteModule: Considérant le module local com.google.android.gms.cast.framework.dynamite: 0 et le module distant com.google.android.gms.cast.framework.dynamite : 5 I/DynamiteModule: Version distante sélectionnée de com.google.android.gms.cast.framework.dynamite, version> = 5 D/skia: erreur 102 de libjpeg de read_header D/skia: --- SkAndroidCodec :: NewFromStream retourné null I/CastDynamiteModuleImpl: xv créé par ClassLoader com.google.android.chimera.container.internal.DelegateLastPathClassLo ader [DexPathList [[fichier zip "/data/data/com.google.android.gms/app_chimera/m/00000005/DynamiteModulesC_GmsCore_prodmnc_alldpi_release.apk"],nativeLibraryDirectories=[/data/user/0/com.google.android.gms/app_chimera/m/00000005/n/arm64-v8a,/système/lib64,/vendor/lib64]]]. I/DynamiteModule: Considérant le module local com.google.android.gms.cast.framework.dynamite: 0 et le module distant com.google.android.gms.cast.framework.dynamite: 5 I/DynamiteModule: Version distante sélectionnée de com. google.android.gms.cast.framework.dynamite, version> = 5 I/CastDynamiteModuleImpl: xv créé par ClassLoader com.google.android.chimera.container.internal.DelegateLastPathClassLoader [DexPathList [[fichier zip "/ data/data/com .google.android.gms/app_chimera/m/00000005/DynamiteModulesC_GmsCore_prodmnc_alldpi_release.apk "], nativeLibraryDirectories = [/ data/utilisateur/0/com.google.android.gms/app_chimera/m/00000005/n/arm64-v8a,/system/lib64,/vendor/lib64]]]. D/skia: erreur libjpeg 102 de read_header D/skia: --- SkAndroidCodec :: NewFromStream renvoyé null I/DynamiteModule: Considérant le module local com.google.android.gms.cast.framework.dynamite: 0 et module distant com.google .android.gms.cast.framework.dynamite: 5 I/DynamiteModule: Version distante sélectionnée de com.google.android.gms.cast.framework.dynamite, version> = 5 I/CastDynamiteModuleImpl: xv créé par ClassLoader com.google. android.chimera.container.internal.DelegateLastPathClassLoader [DexPathList [[fichier zip "/data/data/com.google.android.gms/app_chimera/m/00000005/DynamiteModulesC_GmsCore_prodmnc_alldpi_release.apk "], nativeLibraryDirectories = [/ data/utilisateur/0/com.google.android.gms/app_chimera/m/00000005/n/arm64-v8a,/system/lib64,/vendor/lib64]]]. D/skia: erreur de libjpeg 102 de read_header D/skia: --- SkAndroidCodec :: NewFromStream retourné null V/MediaRouter: Dispatching changement de route: UserRouteInfo {name = Nexus Player, description = prêt à lancer, status = null, category = RouteCategory {name = Types de périphériques = ROUTE_TYPE_USER groupable = false}, supportedTypes = ROUTE_TYPE_USER, presentationDisplay = null} V/MediaRouter: Envoi du changement de route: UserRouteInfo {name = Nexus Player, description = Casting actuel: Concevoir pour Google Cast, status = null, catégorie = RouteCategory {name = Types de périphériques = ROUTE_TYPE_USER groupable = false}, supportedTypes = ROUTE_TYPE_USER, presentationDisplay = null} V/MediaRouter: Dispatching changement de route: UserRouteInfo {name = Kantine TV, description = Chromecast, status = null, category = RouteCategory {name = Types de périphériques = ROUTE _TYPE_USER groupable = false}, supportedTypes = ROUTE_TYPE_USER, presentationDisplay = null}

+1

Si vous pensez qu'il existe un bogue dans cet exemple, déposez un ticket sur GitHub pour ce projet. –

Répondre

0

Après quelques recherches et le débogage, je pense avoir trouvé une solution de contournement. J'ai juste arrêté le fil pendant 500ms dans la méthode onStatusUpdated dans LocalPlayerActivity avant d'exécuter le code pour montrer ExpandedControlsActivity.

remoteMediaClient.addListener(new RemoteMediaClient.Listener() 
      { 
       @Override 
       public void onStatusUpdated() 
       { 
        try 
        { 
         Thread.sleep(500); // add this line 
         Intent intent = new Intent(LocalPlayerActivity.this, ExpandedControlsActivity.class); 
         startActivity(intent); 
         remoteMediaClient.removeListener(this); 
        } 
        catch (Exception e) 
        { 
         Log.e("onStatusUpdated", e.toString()); 
        } 
       } 
       ... 

Après cela, ExpandedControlsActivity ne disparaît plus.