c09_01:iPhoneアプリ」カテゴリーアーカイブ

【2021年版】ChromecastでiPhoneをミラーリングする「最適解」

以下はすべて、2021年1月6日現在の情報です。

最近Chromecastを安価で入手できる機会があったので、購入してみました。auの2年契約更新時にもらえるギフトと、500円引きのクーポンを併用して1600円ほどでした。

ChromecastがあればiPhone・Androidなど端末の画面を映せることまでは知っていたのですが、我が家の携帯電話の主力はiPhoneなので、対応アプリを経由しないとミラーリングはできないことに買ってから気づきました。例えばYouTubeが見たいなら、YouTubeのアプリを経由するといったようにです。

まあ動画配信などは今までもMacbookにドックを挿してHDMI経由で見ていたのですが、パスワード・Touch IDの管理上、どうしても自分が操作せざるを得ず、自分の不在時などに妻が使えない不便さは感じていました。

あと、人が集まるときなど(最近はコロナの影響もありやれていませんが)に大画面を使ってソシャゲのガチャをやると盛り上がるので、そういった用途にも使いたかったのです。

なんとかChromecastでiPhoneの画面を映し出せないかとアプリを探していたのですが、ほとんどがサブスクリプション必須、もしくは無料でも機能制限がかかっていて、正直どれを選べばよいかApp Storeからは読み取れず、ダウンロードしてきて調べるしかない状況です。

また他のblog記事で見ても情報が古かったり、自社アプリの宣伝だったりで最適解が見つからない状況でした。

そこで今回はChromecastにiPhone/iPadの画面を映し出す際に使えるアプリを片っ端からダウンロードして、良いところ悪いところを調べ、総合的に最適解を見つけ出すお手伝いをさせていただきたいと思います。

Chromecast Streamer

App Store

App StoreでChromecastで検索するとトップに登場する、iStreamer社の定番(といっていいでしょう)アプリです。ミラーリング機能はなんと無料で備えています。

ただし、音声出力、画像ビットレートの変更、出力解像度の変更は有料で、1週間の無料トライアルはありますが、月額550円、買い切り1840円と決して安くはない料金設定になっています。

しかし日をおいて何度か起動していると、買い切り1840円のところが860円になるセール画面が現れることがあります。おそらくですが、このセール価格なら買い切りアプリとしては破格の安さと言えると思います。

また、別途有料版アプリが出ていますが、1100円なのでセールを狙ったほうがよいかもしれません。

Screen Mirror for Chromecast

App Store

ちょっと深く潜らないと出てこないのですが、こちらもiStreamer社のアプリで、こちらはミラーリングに特化しており、起動するとChromecast Streamerのミラーリングで表示される画面と同じものが出てきます。

こちらも画面のミラーリングは無料ですが、上記と同様にアップグレードには料金がかかる表示がされます。

ミラーリングに特化しているためか、料金は更に安く、1週間のトライアル付きで月額200円、買い切りで1220円となっています。

Streamerのようなセールは実施していないようなので、短期間にスパッと使いたい場合などに向いていると言えるでしょう。

Replica

App Store

こちらもミラーリングに特化したアプリです。ミラーリングはもちろん、音声出力も無料でできてしまいます。

「え、最強じゃね?」と思うかもしれませんが、そこまで甘いことはなく、使用開始時に動画広告を閲覧することが無料での使用条件になります。

また画質設定やアスペクト比の設定なども無料では使用できません。

広告が表示されなくなるプレミアムサービスに買い切りサービスはなく、年額1950円、月額280円などとなっています。また、友人紹介で1ヶ月無料などのサービスも行っています。

TV Mirror for Chromecast

App Store

こちらも無料版では動画広告の閲覧が使用条件で、広告の出ないPro版が別アプリで(買い切り370円)出ています。

残念ながらPro版でも音声出力はできませんが、シンプルに使いたい場合に向いていると言えるでしょう。

まとめ

4アプリ紹介しましたが、いずれも一長一短であることがおわかりいただけたかと思います。他色々調べましたが、上記4つに落ち着いた感じです。

とにかく無料で使いたいならReplica広告が煩わしいならChromecast Streamerのセール価格、というのが現状での最適解になりそうです。

スプラッシュ画面のあとに自動的に消える画面を割り込ませる

グローバル定義とか使っちゃってるけどね。もっと上手い方法があるといいなあ。
viewDidLoadとかで

{
//略
//警告画面の表示(warning~はグローバル定義)
warningViewController = [[WarningViewController alloc] initWithNibName:@"WarningViewController" bundle:nil];
//スプラッシュ画面表示ウエイト(2秒)
[NSThread sleepForTimeInterval:2];
[self.view addSubview:warningViewController.view];
//警告画面表示タイマー(5秒)
[NSTimer scheduledTimerWithTimeInterval:5 target:self selector:@selector(warningErase:) userInfo:nil repeats:NO];
}

消す処理は別モジュール。

- (void)warningErase:(NSTimer *)timer {
[warningViewController.view removeFromSuperview];
}

一例として。

UIWebViewのHTMLとアプリの連携

iPhone4ユーザになりました。
iPhoneアプリの開発をはじめたので技術メモをしていきます。
Web検索してもなかなかズバリのかからないネタをニッチにひろっていきます。
初回のテーマは「UIWebViewに独自HTMLをおき、そこに含まれるリンクを触ったときの処理を引き取る」。
HTML側にリンクをはっておく。リンクが通る必要は無いので、テキトーなURLで。
ファイル名を解析するので、ファイル名部分は存在しないものを。
ソース側。ファイル名を定義。

NSString *infoPath = @"/info.htm.hogehogehoge"; 
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)rrequest
navigationType:(UIWebViewNavigationType)navigationType {
NSString *path = [[rrequest URL] path];
if ([path compare:infoPath] == NSOrderedSame) {
/* 処理 */
//return YES; にすれば普通にURLを表示するよ
return NO;
}
//そのほかのURLは普通に表示するよ
return YES;
}

ここでNOを返した場合エラー扱いになるので、これを拾いたくない場合は

- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error {
} 

に処理を定義しておく。
※ソースがまだうまく表現出来てないのでそのうちなんとかします