記憶回路断線中。。

SE→情シス→SE→また情シス(笑) IT系の困った事を徒然なるままに。。。

iOSからchromecastへRemote Display #1

Chromecast-2015

 

iPhoneアプリで、サイネージ系のアプリを作ってるのだが、そのアプリに、ディスプレイとの接続をcastで行う機能を追加したいという要望があった。

その対応で、色々困ったので後ろを歩く方のためにメモメモ。 

 

castの種類と概要

さて、たなやんは、そもそもcastってなんだ?からスタート^^;
以下、いろんなサイト見てかじった情報。 

スマホからディスプレイに、無線接続で画面表示をする規格(or 機器)は、主に以下。
 1. chromecast
 2. amazon fire TV
 3. Apple TV
 4. miracast

・1.は、プログラムすることで、任意の画面をディスプレイに映すことができる模様
 https://developers.google.com/cast/docs/remote

・2.は、AirPlay前提でのミラーのようなので、アプリとしてプログラムする話ではない模様(間違ってたらご指摘を〜)

・4.は、一般的な規格だがiOSは未対応。 

 

そんなわけで、当該アプリは既に3.には対応しているので、追加で対応できるのはchromecastのみだと悟る^^; 

 

chromecast 購入!

 実は、chromecastはよく聞いてはいたけど、実物見たことなかったんです。
流行りに疎いたなやんも、たまには新し物(では全然ないよねもはや・・)にも触れようかなと言うことで、早速購入! 

今は、第二世代ってやつらしいです。HDMI接続で、先に丸いのがついてるやつ。ultraじゃない方買いました。

store.google.com

 

これ、電源別途必要なんだ・・・ネット上の写真にないからよくわからんよ・・ヨドバシ吉祥寺店のおねいさんはきちんと教えてくれたけど。ありがとうヨドバシおねいさん! 

 

さて、早速繋いでみた。 

youtubeがテレビで観れる。
とりあえず、芸人のネタ動画を数時間視聴。 「ちょっと何言ってるかわからないんですけど」を数十回聞いてるうちに、気を失って昼寝(笑)

テレビで映すと画像は荒いけど、なぜかテレビだとじっくりみちゃうねーyoutube^^

これで5000円なら全然ありだなー・・・



・・・って、そんなことをするために買ったんじゃない。アプリからchromecastに繋ぎたいんだよぉぉぉぉぉ!(笑) 

 

Google Cast SDKとは

というわけで、この辺からやっと真面目な話^^; 

chromecastには、アプリから操作するためのAPIがある。

developers.google.com

 

でもね、ここを見ても、いまいちピンとこないのです。APIの体系がよくわからない。
なぜって、同じようで微妙に異なる用語が散在していて整理されていないから。 

なので、ちゃんと整理。

用語

説明

Google Cast SDK

スマホやPCと、chromecastやスピーカーなどとを接続するAPI全体の名前。
2018/7現在、v4というのが最新らしい。
Get Started  |  Cast  |  Google Developers
この中に、後述のSender API、Receiver APIも含まれている。

SenderとReceiver

コンテンツ送信元であるスマホなどをSender、コンテンツを受け取って表示、音声出力する機器側をReceiverと呼ぶ。
Senderは当然ObjC / swiftで作るのだが、Receiver側は、html5 / javascriptで作るらしい。ただ、Receiver側を作るのは特殊な場合のみの模様。今回は対象外。

Sender API / Sender Applicationなどと表現したりする。Receiverも然り。

iOS Sender API

iOS用のSender API
November 14, 2017 に、v4というのが出てます。このv4系が現時点の最新。

CAF

これが理解に苦しむ。
CAF = Cast Application Framework なのはいいのだが・・・
Cast Application Framework (CAF) Receiver Overview  |  Cast  |  Google Developers

"CAF Receiver SDK is a major upgrade from the Receiver v2 SDK."
とある。Receiver v2 SDKというのは、Google Cast SDK v2の一部のことだが、それをmajor upgradeしたら、Receiver v3 SDKになるのではなく、CAF Receiver SDKになっている(笑)意味不明。。

しかも、Google Cast SDK自身も、v3, v4と出ているしねぇ・・^^;

Remote Display API

通常のSender API、Receiver APIだと、Youtubeなど、chromecastが対応している、ネット上の動画や音声の出力しかできない。
chromecastで任意の画面を表示するには、このAPIの使用が必要になる。

 

ちなみに、Sender / Receiverっていうか、そもそも、スマホなどからテレビにコンテンツを渡すことを「cast」と呼んでるんだから、casterとcasteeでいいんでないの?と思うのは俺だけ・・・?全体的に、Google Cast SDK回りの用語に一貫性がない。。。

 

そんなわけで、よくわからないけど、Remote Display APIを使用する前提で前に進んでみよう・・・続くっ

 

 

yo-tan.hatenablog.com