次の手順で、iOS センダーアプリを Cast SDK から変換できます v2 を CAF 送信者にマッピングします。 GCKCastContext あります。
はじめに
- CAF 送信者は引き続き Google Cast デベロッパー向けウェブサイト CocoaPods(v2 など)。
- これらのポリシーの遵守について責任を負う新しいクラスが追加されました。 Google Cast の設計チェックリストをご覧ください。
- CAF Sender は Cast UX 要件を満たすウィジェットを提供します。v2 UI コンポーネントは提供されておらず、 入手できます
- CAF Sender の設計は、Cast Android SDK の設計と一致しています。
- CAF 送信者はビットコード(v2 など)をサポートしています。
- CAF の字幕は v2 と同様です。
依存関係
CAF 送信者は iOS バージョン 8 以降をサポートしています。
初期化
CAF では、キャスト フレームワークに明示的な初期化ステップが必要です。この
初期化が含まれます。
GCKCastContext
使用して適切なレイヤを
GCKCastOptions
Web Receiver アプリケーション ID とその他のグローバル
。これは通常、AppDelegate で行います。
-[application:didFinishLaunchingWithOptions:] メソッド:
GCKCastOptions *options = [[GCKCastOptions alloc]
initWithReceiverApplicationID:applicationID];
[GCKCastContext setSharedInstanceWithOptions:options];
この手順は v2 では必要ありませんでした。
デバイス検出
CAF では、検出プロセスの開始と停止は、
アプリがフォアグラウンドに移って、バックグラウンドに移動したときに、
できます。v2 の GCKDeviceScanner クラスと GCKFilterCriteria クラスは次のとおりです。
非推奨です。使用しないでください。
キャスト アイコンとキャスト ダイアログ
CAF では、キャスト アイコンとダイアログはフレームワークによって提供されます。キャスト ボタンは、次のようにインスタンス化してナビゲーション バーに追加できます。
GCKUICastButton *castButton =
[[GCKUICastButton alloc] initWithFrame:CGRectMake(0, 0, 24, 24)];
castButton.tintColor = [UIColor whiteColor];
self.navigationItem.rightBarButtonItem =
[[UIBarButtonItem alloc] initWithCustomView:castButton];
ストーリーボードにキャスト アイコンを追加することもできます。
誰かがボタンをタップすると、キャスト ダイアログが自動的に表示されます。
デバイス コントロール
CAF では、デバイス コントロールの大部分がフレームワークによって処理されます。送信者
アプリケーション側でデバイスへの接続や起動を処理する必要は
ウェブ レシーバー アプリケーション。v2 クラス
GCKDeviceManager
非推奨となり、
使用されません。送信者とウェブ受信者とのやり取りが
"session"。CAF
GCKSessionManager
クラスがセッションのライフサイクルを処理し、
ユーザーの操作に応じて、セッションを自動的に開始および停止します。
ユーザーがキャスト ダイアログでキャスト デバイスを選択すると開始され、終了する
ユーザーが [キャストを停止] をタップしたとき] ボタンを使用する場合や、
送信側アプリ自体が終了します送信側アプリケーションに、セッションが成功したことを
ライフサイクル イベントを登録して、
GCKSessionManagerListener
新しい
GCKSessionManager。
「
GCKSessionManagerListener
プロトコルは、すべてのセッション ライフサイクル イベントのコールバック メソッドを定義します。
「
GCKCastSession
クラスはキャスト デバイスとのセッションを表します。クラス
デバイスの音量とミュート状態を制御するメソッドが用意されています。
これは、v2 のメソッドを使用して
GCKDeviceManager。
v2 では、
GCKDeviceManagerDelegate
プロトコルによって提供される変更の通知
デバイスの状態(音量、ミュート状態、スタンバイ ステータスなど)に応じて変更できます。
CAF では、音量/ミュート状態の変化の通知はコールバックを介して配信されます。
メソッドを
GCKSessionManagerListener
プロトコル。これらのリスナーは
GCKSessionManager。
その他のデバイスの状態の通知はすべて、
を介して配信されます。
GCKCastDeviceStatusListener
プロトコル。これらのリスナーは
GCKCastSession。
再接続ロジック
v2 と同様に、CAF は、ネットワークと通信するための 一時的な Wi-Fi 信号の損失やその他のネットワーク エラーが原因で失われた。現在は セッションレベルで行われますセッションは「一時停止」ステータス、Pod が 切断され、「接続済み」状態に戻ります。状態を 接続が回復しますフレームワークはネットワークへの再接続を ウェブ レシーバー アプリを使用してキャスト チャンネルを再接続します。
また、CAF ではセッションの自動再開も追加されています。送信者が
アプリがバックグラウンドに移動して終了したり(スワイプや
ためなど)では、キャスト セッションの進行中にフレームワークが
送信側アプリケーションがセッションを再開したときに、そのセッションの再開を試行します。
起動されるか、再起動されます。アラートの取り込み時に
GCKSessionManager
これにより、登録済みのすべての
GCKSessionManagerListener
説明します。
カスタム チャンネル登録
v2 では、カスタム チャネル(
GCKCastChannel
サブクラスまたは
GCKGenericChannel
委任など)は、
GCKDeviceManager。
CAF では、代わりにカスタム チャネルは
GCKCastSession
作成します。登録は
GCKSessionManagerListener
-[sessionManager:didStartCastSession:]
コールバック メソッドを指定します。メディア アプリケーションの場合、インフラストラクチャを
登録し、
GCKMediaControlChannel、
詳しくは次のセクションをご覧ください。
メディア コントロール
v2 クラス
GCKMediaControlChannel
サポートが終了しているため、使用しないでください。CAF では、
GCKRemoteMediaClient
同等の機能を便利な API で提供します。
このオブジェクトを明示的に初期化または登録する必要はありません。
フレームワークが自動的にオブジェクトをインスタンス化し、基盤となる
Web Receiver アプリケーションが接続されている場合、セッション開始時刻のメディア チャネル
Media Namespace をサポートしています。
「
GCKRemoteMediaClient
gcloud SDK の
-[remoteMediaClient]
プロパティの
GCKCastSession
渡されます。
v2 で発行されたすべてのメディア リクエストは、
GCKMediaControlChannel
リクエスト ID は数値で、メソッドは
GCKMediaControlChannelDelegate
は、リクエストの完了に関する通知を送信するときにこの ID を提供します。
失敗します。
CAF で発行されたすべてのメディア リクエストは、
GCKRemoteMediaClient
は
GCKRequest
object;このオブジェクトには
GCKRequestDelegate
プロトコル
リクエストの進行状況と最終的な結果を追跡するために使用できます。
バージョン 2
GCKMediaControlChannel、
は、ウェブ レシーバーでメディア プレーヤーの状態の変化に関する通知を送信します。
経由:
GCKMediaControlChannelDelegate。
CAF では、
GCKRemoteMediaClient
コールバックは、
GCKRemoteMediaClientListener
構成されます。任意の数のリスナーを
GCKRemoteMediaClient: 複数の送信者コンポーネントが
セッションに関連付けられている GCKRemoteMediaClient の単一インスタンス。
v2 では、ユーザーを維持する負担を送信者アプリケーションが担う必要がありました
インターフェースは、Web Receiver のメディア プレーヤーの状態と同期します。CAF では、クラスは
GCKUIMediaController
主にこの責任を担います詳しくは、
Codelab チュートリアル
ドキュメントをご覧ください。
案内用のオーバーレイ
V2 では、 導入用のオーバーレイ UI。
CAF がクラスを追加する
GCKCastContext
メソッドを使用
-[presentCastInstructionsViewControllerOnce]
送信側アプリが最初に表示されたときにキャスト アイコンをハイライト表示するために使用できるコードです。
提供します。
ミニ コントローラ
v2 では、ミニ コントローラをゼロから実装する必要があります。 。
CAF では、フレームワークにコントロール バー、
GCKUIMiniMediaControlsViewController
それを永続化したいシーンに追加できます。
できます。ミニ コントローラを送信アプリに追加する方法は 2 つあります。
ラッピングにより、Cast フレームワークにミニ コントローラのレイアウトを管理させる 既存のビュー コントローラを
GCKUICastContainerViewControllerそしてGCKUIMiniMediaControlsViewControllerクリックします。次のコマンドを使用して、ミニ コントローラを既存のビュー コントローラに直接追加します。
-[createMiniMediaControlsViewController]作成してみましょう。GCKUIMiniMediaControlsViewControllerコンテナのビュー コントローラにサブビューとして追加できます。
拡張コントローラ
v2 では、拡張コントローラをゼロから実装する必要があります。 。
CAF による追加
GCKUIMediaController
拡張コントローラを簡単に実装できます
CAF に事前構築済みの拡張コントローラ ウィジェットを追加
GCKUIExpandedMediaControlsViewController
これをアプリに追加できます。カスタム拡張広告を実装する必要がなくなり
GCKUIMediaController を使ってコントローラを操作します。
デバッグログ
「
GCKLogger
および
GCKLoggerDelegate
v2 のクラスは CAF に引き継がれていますが、いくつかの変更と機能強化が行われています。
「
GCKLoggerDelegate
-[logFromFunction:message:] メソッドの内容
非推奨になりました。
-[logMessage:fromFunction:]。
フレームワーク ログ メッセージをフィルタするために、
GCKLoggerFilter
[インスタンスを作成] で [インスタンスの管理] を
次の -[filter] プロパティ:
GCKLogger シングルトン。