2013-08-13 11 views
5

W przypadku użycia użytkownik uruchamia odtwarzanie z telefonu iPhone, powiedzmy, a następnie odbiera iPada (oba uruchamiające moją aplikację) i chce się kontemplować i kontrolować uruchamianie wideo z tego innego urządzenia iOS.Jak sprawdzić, czy sesja ChromeCast jest już w toku?

Na iOS nie widzę sposobu, aby stwierdzić, czy wystąpienie mojej aplikacji odbiornika już działa na urządzeniu Google ChromeCast. Po utworzeniu sesji wydaje mi się, że jedyną rzeczą, którą mogę zrobić, to dołączyć nowy strumień wiadomości protokołu, który przerywa wszystko, co może być odtwarzane.

To powinno być obsługiwane w ramce po stronie klienta iOS, być może jest jakieś kodowanie, które muszę zrobić w aplikacji odbiornika HTML?

Dzięki.

+0

Przykład Tic Tac Toe demonstruje tryb wieloosobowy, czy można go w jakiś sposób poprawić? –

Odpowiedz

1

Jedną z metod jest sprawdzenie playStatus po rozpoczęciu sesji i przed zainicjowaniem loadMedia(). Jeśli twoja aplikacja już działa - powinna zwrócić wynik niezerowy (tj. IDLE, PLAYING, ...).

+0

Dzięki, spróbuję teraz i zgłoś się. – greg

+0

Cóż, to nie działa. Za każdym razem otrzymuję stan gracza -1 (nieznany). W zależności od tego, jak rozpocznę sesję, otrzymuję trochę inne zachowanie. Jeśli przekażę requestArgument, to bieżący odbiornik zostanie zabity, zanim kiedykolwiek otrzymam połączenie zwrotne. Pozostałe formularze to startSession, które nie zabijają działającego odbiornika, ale zawsze zwracają stan gracza równy -1 (wszystkie inne informacje o statusie również wydają się niezainicjowane). – greg

+0

Jak zażądać stanu gracza? – osxdirk

5

Istnieje sposób poza API, aby sprawdzić, czy aplikacja jest uruchomiona. Wykonaj procedurę HTTP GET na adres URL aplikacji dla adresu IP ChromeCast: http://192.168.0.x:8008/apps/ Jeśli odpowiedź HTTP wynosi 200, nic nie jest uruchomione. Jeśli odpowiedź HTTP wynosi 204, aplikacja jest uruchomiona, a odpowiedź HTTP zostanie przekierowana na adres URL, taki jak: http://192.168.0.x:8008/apps/GoogleMusic

Informujący, która aplikacja jest uruchomiona.

Co ciekawe, Muzyką Google Play nie można sterować za pomocą 2 urządzeń jednocześnie, ale YouTube może. Podejrzewam, że Play Music korzysta z RAMP, czyli tego, co robi SDK Cast dla strumieni multimediów. YouTube może używać zastrzeżonego strumienia wiadomości do kontrolowania odtwarzania multimediów. Więc możesz zrobić to samo, jeśli chcesz mieć aplikację na urządzeniu kontrolowanym przez wiele aplikacji nadawcy.

+0

Dzięki Leon, to jest pomocna informacja, wykorzystam ją. Okazuje się, że odpowiedź, której szukałem, to po prostu nie przekazać argumentu aplikacji do startSessionWithApplication :, dzięki czemu z przyjemnością połączymy się z istniejącą sesją chromecast. Jeśli przekażesz argument, zerwie on istniejącą sesję i utworzy nową z aplikacji odbiornika. Zakłada się, że ta sama aplikacja działa oczywiście (ten sam identyfikator appID). – greg

+0

Leon, mam podobny przypadek użycia: Przesyłam wideo z youtube, aw oddzielnym skrypcie chcę uzyskać bieżącą sesję. Zasadniczo chcę uzyskać pełny adres URL filmu z YouTube, który zawiera identyfikator wideo. Identyfikator wideo jest tym, na co czekam! Czy powinienem zacząć osobne pytanie, a może mógłbyś na nie odpowiedzieć? – Ali

+0

Począwszy od sierpnia 17, otrzymuję odpowiedź "204 Brak zawartości", niezależnie od stanu urządzenia – Dermot

Powiązane problemy