Chromecastで動くHTML5ベースのメディアストリーミングアプリを作るための基礎知識:Chromecastアプリ開発入門(1)(3/3 ページ)
メディアストリーミングデバイスChromecastの概要とシステム構成、開発環境、専用アプリを作るための準備と手順などを解説します。
Receiver/Senderアプリをデプロイして接続確認
GitHubにChromecastのサンプルアプリが公開されています。ここでは、サンプルアプリの中からシンプルなサンプルをデプロイして、Developer Consoleの登録状態とReceiver/Senderの確認を行います。
それぞれどの環境のサンプルであるかは、Google Developersサイトにある下記表を参考にしてください。
Receiverアプリの開発
「googlecast/Cast-Simple-Receiver」は、シンプルなReceiverアプリのサンプルです。それを参考に、下記のソースではReceiverアプリのロジック部分のみ抜き出してみました。
<!DOCTYPE html> <html> <head> <style type="text/css"> video { width: 100%; height: 100%; margin: auto auto; overflow: hidden !important; } </style> <!-- 【1】APIの設定 --> <script type="text/javascript" src="//www.gstatic.com/cast/sdk/libs/receiver/2.0.0/cast_receiver.js"></script> <title>Cast Simple Receiver</title> </head> <body> <video id='vid' /> <script type="text/javascript"> window.onload = function() { // 【2】デバッグレベルの設定 cast.receiver.logger.setLevelValue(cast.receiver.LoggerLevel.DEBUG); // 【3】Videoタグを指定してメディアマネージャを作成 window.mediaElement = document.getElementById('vid'); window.mediaManager = new cast.receiver.MediaManager(window.mediaElement); // 【4】レシーバーマネージャのスタート window.castReceiverManager = cast.receiver.CastReceiverManager.getInstance(); castReceiverManager.start(); }; </script> </body> </html>
【1】APIの参照を設定
必ず、このURLを指定してください。バグフィックスや新機能のアップデートが行われた場合、セルフホストしていると内容が反映されません。
【2】デバッグレベルの設定
「Cast receiver library」のデフォルトではデバッグが無効となっています。リモートデバッグを可能にするには、ログレベルをデバッグに設定する必要があります。
【3】MediaManagerの作成
メディアストリームを流したいvideoタグを引数にMediaManagerの作成を行います。
【4】ReceiverManagerの開始
メディアストリームを流したいvideoタグを引数にMediaManagerの作成を行います。
※アプリを拡張していく際には、このMediaManagerとReceiverManagerのコールバックに処理を追加してくことになります。
このReceiverアプリ(html)を、先ほどDeveloper Consoleで「Application」の登録したURLにデプロイします。
Senderアプリのデプロイ
Senderアプリは、Android、iOS、Chromeの環境別にサンプルが提供されています。今回は、Receiverとの接続を確認するだけですので、Chromeブラウザー向けアプリを使用します。
まず、GitHubからプロジェクトをcloneしてください。
git clone https://github.com/googlecast/CastVideos-chrome.git
次に、CastVideos.jsから以下の行を検索して、「Application」の登録時に設定された「Application ID」に更新します。
var applicationID = '4F8B3483';
最後に、フォルダーをWebサーバーにデプロイします。
アプリの確認
まず、PCのChromeブラウザーにChrome extensionのGoogle Castをインストールします。このExtensionはネットワーク上のChromecastを探索し接続するために必要となります。
次に、Senderアプリを開きます。
続いて、Castアイコンからネットワーク上にあるChromecastデバイスを選択します。Receiverアプリが正しく登録されていない場合は、この一覧にChromecastデバイスが表示されません。Developer Consoleに登録直後は表示されないこともあります。その場合は、少し時間を空けてから試してください。
最後に、ReceiverアプリがChromecast上で起動し、動画の再生が始まります。
デバッグ
デバッグをするためには、Receiverアプリでデバッグを有効に設定する必要があります。以下のコードを実行することでデバッグが有効になります。
cast.receiver.logger.setLevelValue(cast.receiver.LoggerLevel.DEBUG);
デバッグにはChrome Remote Debuggerを使用します。手順は以下の通りです。
まず、Chromeブラウザーで、ChromecastデバイスのIPアドレスとポート「9222」を開きます。
次に、Receiverアプリのデバッガーへのリンクが表示されているので、クリックして入ります。デバッガーは、Chromeブラウザーのデバッグ機能と同様に、DOMの操作・JavaScript REPLがサポートされています。
最後に、終了する場合はブラウザーのバックボタンで戻ります。
注意:Chrome Remote Debuggerにはメモリリークの問題があり、Chromecastデバイスの動作が不安定になります。長時間の実行はお勧めしません。
Chromecast機能アップデート情報
最後に、6月に行われたグーグルの開発者向けイベント「Google I/O」では、Chromecastのアップデート予告がされました。この内容について触れたいと思います。
同一LANに接続しなくても、近くのChromecastにCast可能になる
Chromecastデバイスとスマホ・PCが同一LAN上なくても接続できます。これにより、Wi-Fiの接続の切り替えが不要になります。友人宅で端末内の写真を大画面でキャスト表示するのに便利かもしれません。
Androidの画面のミラーリング対応
画面の同期表示ができるようになります。また、アプリが対応していれば、セカンダリディスプレーとして使用することも可能です。
Backdropコンソール機能
Chromecastのアイドル画面に、Google+の写真、ニュース、天気予報などを表示できるようになります。
次回は、高度なReceiverアプリの開発について
今回使用したReceiverアプリは、コンテンツを再生するだけの簡単なものでした。次回は、コンテンツ操作や状態管理、Adaptive Bitrate StreamingやDRMを使用したより高度なReceiverアプリの開発について解説を予定しています。
著者プロフィール
大西克己
株式会社オープンストリームにおいて、アーキテクトとしてAndroidの技術調査・支援、開発案件に従事。社外ではいくつかのAndroid系コミュニティに所属し、勉強会やハッカソンへ積極的に参加、アプリケーションコンテストで入賞したことがある。
最近は、Androidを中心としたウェアラブルデバイスなどのエコシステムに興味がある。
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デザインも変わる
制作の要となるエンジニアとデザイナのチームワークのツボを探る連載。今回はヤフーのテレビ向けサービスのデザイン担当に話を聞いた