2013-08-13 9 views
5

ユースケースは、ユーザーが自分のiPhoneから再生を開始し、iPadを起動してから(自分のアプリケーションを実行している)、そのコンテンツにアクセスしてこの他のiOSデバイスから動画を再生しています。ChromeCastセッションが既に進行中かどうかを確認する方法

iOSでは、Google ChromeCastデバイスで既に動作しているレシーバアプリのインスタンスがあるかどうかを判断する方法はありません。私のセッションを作成したら、私ができるのは、すでに再生されているものを中断する新しいプロトコルメッセージストリームを添付することだけです。

これは、iOSクライアントサイドのフレームワークで処理されると思われますが、HTMLレシーバーアプリで行う必要があるコードがいくつかありますか?

ありがとうございました。

+0

Tic Tac Toeの例では、マルチプレイヤーを示していますが、何とか調整できますか? –

答えて

1

セッションを開始した後、loadMedia()を開始する前に、playStatusを確認する方法があります。あなたのアプリが既に動作しているならば、それは非無限(つまり、IDLE、PLAYING、...)の結果を返さなければなりません。

+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ミュージックがRAMPを使用していると思われます。これは、Cast SDKがメディアストリーム用に行うものです。 YouTubeは独自のメッセージストリームを使用してメディアの再生を制御することができます。複数の送信アプリによって制御されるデバイス上にアプリを持っていたい場合は、同じことをする必要があります。

+0

ありがとうございましたLeon、それは役に立つ情報です、私はそれを使用して終了します。終了後の答えは、startSessionWithApplication:にアプリケーション引数を渡さなかったことです。これを行うと、既存のchromecastセッションに正常に接続されます。引数を渡すと、既存のセッションが破棄され、受信側アプリケーションから新しいセッションが構築されます。これは、同じアプリがもちろん実行されていることを前提としています(同じappID)。 – greg

+0

Leon、私も同様のユースケースがあります。私はYouTubeのビデオをキャストしており、別のスクリプトで現在のセッションを取得したいと考えています。基本的には、ビデオIDを含むYouTube動画の完全なURLを取得する必要があります。ビデオIDは私の後ろのものです!私は別の質問を開始する必要がありますし、多分あなたはそこに返信することができますか? – Ali

+0

8月17日現在、デバイスの状態に関係なく、 '204 No content'という応答が出ます – Dermot

関連する問題