2017-01-22 3 views
0

J'ai une application Android utilisant le CastCompanionLibrary v2.9.1, modifiée pour utiliser play-services-cast:10.0.1 (juste une simple modification des dépendances de gradle).Application Android de conversion automatique sans intervention de l'utilisateur (CastCompanionLibrary)

Version abrégée: L'application tente de se connecter automatiquement à l'appareil ChromeCast, sans intervention de l'utilisateur.

Version longue:

Depuis la mise à jour de la bibliothèque du CCA à utiliser play services 10.0.1, j'ai eu plusieurs utilisateurs mentionnent que l'application est automatiquement connecte/coulée à CHROMECAST sans interaction de l'utilisateur.

Certains utilisateurs ont indiqué qu'ils n'utilisent pas l'application, puis ils se connectent au Wi-Fi et l'application tente automatiquement de diffuser. D'autres ont dit qu'ils utilisent l'application, ils n'appuient pas sur le bouton ChromeCast et l'application commence à diffuser.

-

Je vais avoir du mal à déterminer où chercher des changements potentiels aux API CHROMECAST qui pourraient expliquer ce qui se passe. Je ne sais pas non plus si ce problème se produit uniquement pour mon application ou pour de nombreuses autres applications compatibles ChromeCast. Enfin, je ne parviens pas à reproduire ce problème sur mon propre appareil ChromeCast.

Toute aide serait appréciée.

Répondre

2

Je n'avais pas vu ou entendu cela auparavant, alors voici quelques conseils pour que vous fassiez des recherches plus approfondies pour voir quelle peut en être la cause. CCL a un service (collant) appelé ReconnectionService qui est responsable d'effectuer des tentatives de reconnexion lorsque vous perdez le Wi-Fi et que vous le récupérez par la suite. Le scénario wifi que vous avez mentionné ressemble à cela, donc je suggère de commencer à partir de là. Afin de ne se reconnecter que lorsque cela a du sens, il obtient la durée du contenu en cours de lecture et ne fait que de telles tentatives pour cette période de temps; Par exemple, si vous commencez à lire un contenu pendant 1 heure, puis que vous laissez votre téléphone sur la table et que vous le ramassez après 2 heures, il remarque que le dernier film avant qu'il ne tombe en sommeil dure 1 heure. tentative de reconnexion (voir handleTermination() dans cette même classe). Pour les flux en direct qui n'ont pas de durée de contenu claire, CCL utilise une valeur par défaut de 2 heures, mais permet aux applications de la modifier en appelant la méthode VideoCastManager.setLiveStreamDuration(duration_in_seconds). Enfin, toute la reconnexion repose sur quelques facteurs: elle enregistre l'identifiant de la dernière connexion, ainsi que l'identifiant de la session. Donc si nécessaire, vous pouvez effacer n'importe lequel d'entre eux et ensuite il n'essaiera pas de se reconnecter pour cette session particulière (au cas où vous voudriez garder la reconnexion pour certains et désactiver sur un autre). Espérons que cela aidera à résoudre le problème.

+0

Merci pour la réponse détaillée. La «reconnexion» est probablement le mot-clé qui me manquait - aucun des rapports d'utilisateurs n'a mentionné s'ils avaient récemment été diffusés, mais vraisemblablement ils l'étaient. 'setLiveStreamDuration' semble très prometteur. Je vais jeter un coup d'oeil et faire un rapport. –

+0

J'ai réglé le 'liveStreamDuration' à 2 minutes (c'est un lecteur de musique, pas particulièrement important s'il ne se reconnecte pas). J'ai également défini '.disableLaunchOnConnect()' sur l'objet 'CastConfiguration.Builder'. Je me demande si ce drapeau explique le lancement inattendu de l'application lors de la connexion au WiFi.Poussant une construction maintenant, donc je vais avoir quelques commentaires dans quelques jours. –

+1

Je ne connais pas votre application et son flux mais l'appel de disableLaunchOnConnect() n'est peut-être pas la bonne chose; Cela signifie que lorsque l'utilisateur lance la distribution et sélectionne un appareil de distribution, votre application est connectée à l'appareil de diffusion, mais votre application de réception ne sera pas lancée. Je doute que ce soit ce que tu veux. –