Google Cast SDKを使ったAndroid/iOSアプリの作り方と注意点:Chromecastアプリ開発入門(終)(6/6 ページ)
メディアストリーミングデバイス「Chromecast」用アプリの開発方法を一から解説する連載。今回は、テレビ側のReceiverアプリにつなげるスマホのSenderアプリの概要と作り方、注意点、Cast Companion Libraryの使い方などを解説します。
Senderアプリを開発する上での注意点
連載第1回の「Chromecastで動くHTML5ベースのメディアストリーミングアプリを作るための基礎知識」で述べたように、ChromecastはHDMIやMiracast、AirPlayなどの外部出力と似ていながらも異なる点があります。
本記事の最後として、Senderアプリ開発の観点から、注意すべき違いと対策を述べます。
複数台接続や接続が切れたときの動作
HDMIなどの外部出力では、出力先の機器と接続するスマートフォンは一台だけです。また、接続が切れると同時に、外部出力先の再生も停止します。
一方、ChromecastはReceiverアプリに対し複数のスマートフォンが接続できます。また、接続が切れたとしてもReceiverアプリは生き残り、動画の再生も続いている場合があります。
このことから、SenderアプリがChromecastデバイスに接続したとき、すでにReceiverアプリが起動中である可能性を考慮しなければなりません。具体的には、接続した後は必ずReceiverアプリの状態(アイドル状態か動画再生中なのか)を確認し、もし動画再生中であればコンテンツに関する情報や再生位置をReceiverアプリから取得して表示する、といった実装が必要です。
メディアプレーヤーの状態に依存する表示は、常にReceiverからの情報を元に表示するというポリシーで設計するのがいいでしょう。
例えば、メディアプレーヤーが再生中なら一時停止ボタンを、一時停止中なら再生ボタンを表示するといった制御が必要ですが、『Senderアプリで一時停止ボタンを押した時点で再生ボタンを表示する』のではなく、『Receiverアプリのメディアプレーヤーの状態が変化するのを待ってから表示を切り替える』とした方が、他のスマートフォンが操作したケースや、Receiverアプリが再生中に接続したケースと共通に扱えます。
再生中の動画を外部出力に切り替えるときの動作
スマートフォン上の画面で動画を再生している最中に、外部出力に切り替えたい場合があります。HDMIなどでは、通常、途中まで再生していた位置から引き続いて外部出力先で再生されるでしょう。
Chromecastも同様で、Senderアプリ内部で再生している途中でReceiverアプリでの再生に切り替えることができます。この仕様はDesigne Check Listで「Play & connect」と定義されています。
HDMIなどの外部出力では、出力先切替後も動画のデコードやコンテンツサーバーとの通信はスマートフォン側のアプリで行います。そのため、出力先切り替えのタイミングで動画の再読み込みなどは発生しません。
一方のChromecastでは、Chromecastデバイスで動画を再生するときはReceiverアプリがコンテンツサーバーとセッションを張り、デコード制御などを行います。
そのため、Senderアプリは出力先切り替えに伴い、次の手続きをしなければなりません。
- Senderアプリ側でのメディアプレーヤーを終了させる
- そのときの再生位置を保存しておく
- Receiverアプリ側に動画再生開始命令を投げる。このとき、再生開始位置として2で保存した再生位置を指定する
3の手続きはSenderアプリ開発者が実装する必要があります。特に、再生中のコンテンツサーバーとクライアントとの間のセッション管理が必要なシステムでは、上記1のタイミングでセッションも解放するよう注意が必要です。
Chromecastアプリは誰でも開発できる
3回にわたりChromecastアプリ開発手法について解説してきました。グーグルが公開しているドキュメントは、筆者の印象では比較的簡潔かつ明確に書かれています。それらを読みつつ本連載で紹介した注意点やポイントを押さえれば、Chromecastアプリ開発で迷うところも少ないでしょう。
連載第1回で述べた通り、Chromecastアプリは誰でも開発できます。本連載がこれから開発を考えている方々の助けとなれば幸いです。
著者プロフィール
舛田明寛
株式会社オープンストリームにおいて、アーキテクトとしてiOSの技術調査・支援、開発案件に従事。組み込みアプリ開発・信号処理研究案件に従事した経歴があり、IoTやハードとソフトの融合をテーマとしてRaspberryPiやArduinoを題材とした執筆活動も行っている。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- Windows OS/Androidの画面をChromecast経由でテレビに表示する
会議室のテレビにWindows OSの画面を映してプレゼンテーションしたい。でもケーブルをつなぐのはスマートではない。こんなとき、テレビにChromecastを接続し、Windows OSにGoogle Chromeをインストールすれば、画面をWi-Fi経由でテレビに表示できるようになる。 - 米グーグルがChromecastのSDKを公開
モバイル端末とTVの垣根を超えるChromecast用のSDKをGoogleが公開。Chromeの拡張機能とiOS向けのGoogle Cast SDKは即日提供を開始、Android版も数日中にリリース予定だという。 - グーグルのプレスイベントで見るグーグル新時代の幕開け
新型Nexus 7タブレットやAndroid 4.3、さらには新デバイスChromecastの発表から、グーグルの新世代戦略を読み解きます。 - YouTube動画を家中のディスプレイで再生できたら
YouTubeビデオを、ブラウザからリビングのテレビやタブレットに飛ばせたら。HTML5のPlayコマンドをテレビに送信して再生する方法を紹介します - Android L、Android Wear、Android TV、Android Autoの開発者向け現状まとめ
米グーグルが「Google I/O 2014」で発表した次期Android「Android L」「Android TV」「Android Auto」の開発者プレビュー、そして「Android Wear」の正式版。これらに対応したアプリを開発するには、どこを見ればいいのか。概要とともに簡単にまとめてみた。 - 第17回 iPhoneの画面をApple TVでテレビに表示する
iPhoneの画面をテレビに映してプレゼンしたい。こんなとき、会議室にApple TVを用意しておくと便利。たった3ステップでiPhoneの画面をテレビに映せるようになる。 - Windows OSの画面をApple TV経由でテレビに表示する
会議室のテレビにWindows OSの画面を映してプレゼンテーションしたい。でもケーブルをつなげるのは少々スマートではない。こんなとき、テレビにApple TVを接続し、Windows OSに「AirParrot」をインストールすれば、画面をWi-Fi経由でテレビに表示できるようになる。 - WebSocketでスマートテレビをリアル接続するぷらら
ひかりTV独自のスマートテレビリモコンの接続方法はWebSocketを用いた常時接続だ。その仕組みと開発意図を聞いた。 - さまざまなデバイスがWebと結び付いていく
テレビやカーナビ、家電とWebが連携していく「Web of Things」。NHKなど、最前線の取り組みが語られたカンファレンスをレポートする - テレビのスマート化とYouTubeのテレビ化
YouTubeなどネットの攻勢に対し、何もしないと「テレビは死ぬ」。それは明らかだ。テレビ局がよいサービスを開発できるかどうかが要となる。 - スマートテレビはチャンスだぞ
テレビもスマート、なんだと。アメリカからGoogle TVやApple TVがやってくる。米テレビ局の映像配信Huluも上陸している。もちろん、日本だって手を打っている - 今度こそテレビとWebの統合なるか:「Google TV」は従来のWebテレビと何が違うのか?
- 頭脳放談第120回:Google TVがVIA Technologiesも救う?
- WebとUIをつなぐトリックスター(2):テレビでYahoo!デバイスが変わればUIデザインも変わる
制作の要となるエンジニアとデザイナのチームワークのツボを探る連載。今回はヤフーのテレビ向けサービスのデザイン担当に話を聞いた