2016-09-30 7 views
2

Je cours deux applications, qui utilisent Cast SDK v2 et l'API Remote Display. Je commence à diffuser à partir de l'App # 1, puis à App # 2, appuyez sur le bouton Cast et sélectionnez un itinéraire.Comment arrêter la diffusion lorsqu'une autre application commence à diffuser?

Attendu: L'App # 2 commence le moulage, l'App # 1 arrête le moulage.

Actual: Immédiatement après avoir sélectionné un itinéraire, le numéro MediaRouter.Callback.onRouteUnselected() de l'App # 2 est appelé. Le contenu de l'application n'apparaît pas sur le récepteur, mais le contrôleur de notification de l'application 1 reste.

Je n'ai pas vu ce problème dans Cast SDK v3. Y a-t-il un moyen dans Cast SDK v2 de s'assurer qu'une session de distribution précédente s'arrête lorsqu'une autre application commence à diffuser?

Répondre

2

Je ne l'ai pas encore fait mais vous pouvez essayer d'implémenter un addUpdateListener et exécuter session.stop quand un autre démarre.

addUpdateListener(listener) 

Ajoute un écouteur qui est appelée lorsque la session a changé. Les modifications aux propriétés suivantes déclenchent l'écouteur: statusText, namespaces, l'état et le volume du récepteur.

Les récepteurs doivent vérifier la propriété status de la session pour déterminer son état de connexion. Le paramètre booléen isAlive est déprécié en en faveur de la propriété Session. Le paramètre isAlive est encore passé dans la compatibilité ascendante, et est vrai, sauf si

status = chrome.cast.SessionStatus.STOPPED 

Arrêter la méthode d'application:

function stopApp() { 
    session.stop(onSuccess, onError); 
} 
+0

Cette réponse m'a mis sur le droit chemin: maintenant j'ajouter un écouteur qui remplace 'Cast.Listener.onApplicationMetadataChanged()' pour déterminer si une nouvelle application a commencé à diffuser, ce qui semble fonctionner. Cela nécessite l'ajout de 'CastRemoteDisplay.API' et' Cast.API' sur le même 'GoogleApiClient'; J'ai demandé une [question séparée] (http://stackoverflow.com/questions/39836864/can-one-use-castremotedisplay-api-and-cast-api-on-the-same-googleapiclient) pour voir si elle est acceptable d'utiliser les deux API en même temps. –