2013-08-13 3 views
5

유스 케이스는 사용자가 iPhone에서 재생을 시작한 다음 (예를 들어, 내 앱을 실행하는) iPad를 들고 집어 들고 이 다른 iOS 기기에서 동영상을 실행 중입니다.ChromeCast 세션이 이미 진행 중인지 확인하는 방법

iOS에서 이미 Google 크롬 캐스트 기기에서 실행중인 리시버 앱 인스턴스가 있는지를 확인할 방법이 없습니다. 내 세션을 만들면 내가 할 수있는 유일한 일은 이미 재생중인 모든 것을 방해하는 새로운 프로토콜 메시지 스트림을 첨부하는 것입니다.

이것은 iOS 클라이언트 측 프레임 워크에서 처리되는 것으로 가정합니다. 아마도 HTML 수신자 응용 프로그램에서해야 할 코딩이 있을까요?

감사합니다.

+0

Tic Tac Toe 예제는 멀티 플레이어를 보여줍니다. 어떻게 든 조정할 수 있습니까? –

답변

1

한 가지 방법은 세션을 시작한 후 loadMedia()를 시작하기 전에 playStatus를 확인하는 것입니다. 앱이 이미 실행중인 경우 - 앱은 무제한 (즉, 유휴 상태, 재생 중 ...) 결과를 반환해야합니다.

+0

고마워, 나는 지금 그것을 시도하고 다시보고합니다. – greg

+0

글쎄, 그건 작동하지 않았다. 매번 플레이어 상태가 -1 (Unknown)이됩니다. 세션을 시작하는 방법에 따라 약간 다른 행동을합니다. applicationArgument를 전달하면 호출을 받기 전에 현재 실행중인 수신기가 종료됩니다. 다른 형식은 startSession이 실행중인 수신기를 죽이지 않지만 항상 -1의 플레이어 상태를 반환합니다 (다른 모든 상태 정보도 초기화되지 않은 것처럼 보임). – greg

+0

플레이어 상태를 어떻게 요청합니까? – osxdirk

5

앱이 실행 중인지 확인하기 위해 API 외부에 방법이 있습니다. ChromeCast IP 주소의 앱 URL에서 HTTP GET을 수행합니다. http://192.168.0.x:8008/apps/ HTTP 응답이 200이면 아무 것도 실행되지 않습니다. HTTP 응답이 204이면 앱이 실행 중이고 HTTP 응답이 다음과 같은 URL로 리디렉션됩니다. http://192.168.0.x:8008/apps/GoogleMusic

어떤 앱이 실행 중인지 알려줍니다.

흥미롭게도 Google Play 뮤직은 2 개의 기기로 동시에 제어 할 수 없지만 YouTube는이를 수행 할 수 있습니다. Play Music에서 Cast SDK가 미디어 스트림에서 수행하는 RAMP를 사용하고있는 것으로 의심됩니다. YouTube는 독점적 인 메시지 스트림을 사용하여 미디어 재생을 제어 할 수 있습니다. 여러 대의 발신자 앱으로 제어되는 기기에서 앱을 사용하려면 동일한 작업을 수행해야 할 수도 있습니다.

+0

감사합니다. Leon, 유용한 정보입니다. 사용하게 될 것입니다. 이후의 대답은 startSessionWithApplication :에 응용 프로그램 인수를 전달하지 않는 것입니다. 그러면 기존의 chromecast 세션에 정상적으로 연결됩니다. 인수를 전달하면 기존 세션을 해체하고 수신자 응용 프로그램에서 새 세션을 작성합니다. 이것은 동일한 앱이 물론 (동일한 appID)에서 실행되고 있다고 가정합니다. – greg

+0

Leon, 비슷한 사용 사례가 있습니다. YouTube 동영상을 캐스팅하고 별도의 스크립트에서 현재 세션을 가져오고 싶습니다. 기본적으로 동영상 ID가 포함 된 YouTube 동영상의 전체 URL을 가져오고 싶습니다. 비디오 ID는 내가 무엇을했는지입니다! 별도의 질문을 시작해야하며 거기에 답장 할 수 있습니까? – Ali

+0

'17 년 8 월 현재, 장치 상태에 관계없이 '204 No Content'응답이 표시됩니다. – Dermot

관련 문제