2016-09-30 11 views
2

2 개의 애플리케이션을 실행합니다. 둘 모두 Cast SDK v2 및 Remote Display API를 사용합니다. App # 1에서 전송을 시작한 다음 App # 2로 이동하고 전송 버튼을 누르고 경로를 선택합니다.다른 앱에서 전송을 시작하면 전송을 중단하는 방법은 무엇인가요?

예상 : App # 2가 전송을 시작하고 App # 1이 전송을 중지합니다.

실제 : 경로를 선택하면 곧바로 App # 2의 MediaRouter.Callback.onRouteUnselected()이 호출됩니다. 앱의 콘텐츠는 수신자에게 표시되지 않지만 App # 1의 알림 컨트롤러는 그대로 유지됩니다.

캐스트 SDK v3에서이 동작을 보지 못했습니다. Cast SDK v2에서 다른 앱이 전송을 시작하면 이전의 캐스트 세션이 중지되도록하는 방법이 있습니까?

답변

2

아직 완료하지 않았지만 addUpdateListener을 구현하고 다른 하나가 시작되면 session.stop을 수행 할 수 있습니다.

addUpdateListener(listener) 

세션이 변경 될 때 호출되는 수신기를 추가. 속성을 다음 속성으로 변경하면 수신자가 트리거됩니다. statusText, 수신기의 네임 스페이스, 상태 및 볼륨.

청취자는 세션의 상태 속성을 확인하여 연결 상태를 확인해야합니다. 부울 매개 변수 isAlive은 세션 등록 정보 상태 인 에서 더 이상 사용되지 않습니다. 가능한지 매개 변수는 이전 버전과의 호환성을 위해 계속 전달 이며,

status = chrome.cast.SessionStatus.STOPPED 

이 응용 방법 중지하지 않는 사실이다 :

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

이 대답은 옳은 길을 나 설정을 : 지금은 리스너를 추가 새로운 앱이 캐스팅을 시작했는지 판단하기 위해'Cast.Listener.onApplicationMetadataChanged()'를 오버라이드합니다. 이것은 동일한'GoogleApiClient'에'CastRemoteDisplay.API'와'Cast.API'를 모두 추가해야합니다; 나는 [별도의 질문] (http://stackoverflow.com/questions/39836864/can-one-use-castremotedisplay-api-and-cast-api-on-the-same-googleapiclient)에 문의했는지 확인했습니다. 한 번에 두 API를 모두 사용할 수 있습니다. –