この記事は最終更新日から1年以上が経過しています。情報が古くなっている可能性があります。
うまくいかなかった話って意外とネットに公開されていなかったりするものですが(書くモチベ上がらないししょうがない)、トライアンドエラーの記録として書き残しておきます。
これからやろうとする人が無駄な時間を浪費しないように。
経緯
私の祖父はパーキンソン病で、あまり動くことができません。最近別件でちょっと入院していた(今は退院している)こと、あとはコロナ禍もあり、親から「大きな画面のテレビで顔を見ながらテレビ電話(ビデオチャット)できるといいよね」という打診を受けました。
高齢のためスマホの操作に慣れておらず、通話できたところでスマホだと画面が小さくてよく見えないこと、PC はあるが小型かつ Windows 7 の古いものしかない、という事情もあります。
最近は Zoom でのオンライン会議が主流になっていますが、今回は遠方の祖父母とこちらの一対一の、(最近聞かなくなった)本来は Skype を使うような用途です。
当初は「テレビ」電話という単語があるくらいなのだからテレビでビデオチャットやるなんて簡単でしょーーなどと抜かしていたわけですが、いろいろ調べてみるとかなり厄介である事が分かりました。
Skype なんてなかった
まず、Skype は Android TV を含むテレビに対応していません。以前は対応していたのですが、そもそもテレビで通話する需要が減ったからか、2016 年にサービスを終了しています。
Skype for TV 向けに各社 TV メーカーが対応の専用 Web カメラを出したりなど色々やっていたようなのですが、これも Skype 側のサービス終了にともない、やむを得ず終了となってしまっています。
とはいえ、これは各社のテレビが Android TV 化される前の話。Android TV であれば、Web カメラを接続すればビデオチャットできるのではないか?と考えました。
幸いにも、祖父母の家のテレビはソニーの BRAVIA で、2017 年モデルの Android TV 対応の 4K テレビです。なんでも前のテレビが壊れたので家電量販店の人に「とりあえず安くていいやつ」とか言って後全部やってもらった結果だそうな…?(一応型落ちらしいんだけど、本来は十数万はしそう)。
型番まではわからなかったのですが、幸いにも帰省時に外観の写真を撮っていたので、そこから画像検索を駆使して探り当て、大まかな型番を特定することができています。
Android TV 搭載のテレビですが、祖父母は今まで Android TV の機能を一切使っておらず、単にテレビを見る事だけの用途で使っていたらしいです。今回 Android TV 側の画面をかなり触ったわけですが、「こんな機能あったの知らなかったわ…」といった反応だったそう。宝の持ち腐れでは…
Google Duo との出会い
そこで見つけたのが Google Duo 。Android をお使いの方ならもしかするとインストールされているかもしれない、あの Zoom みたいなアイコンのアプリです。
Google Duo はもともと IP 電話 & ビデオ通話アプリで、通常の電話アプリの代替として使えるようにとの意図から開発されているものみたいです。ただ日本だと LINE 電話だったりが普及している影響で、そんなに使っている人を見かけません。私もこれをきっかけに知ったようなものです。
Google Duo は、2020 年 8 月にベータ版として Android TV のサポートを追加しています[1]https://jetstream.bz/archives/109452。 これなら Android TV でもビデオチャットができると思い、親が帰省するタイミングに Web カメラの取り付けとセットアップをやってもらう事にしました。
が… 結論から言えば、うまくいきませんでした。
Web カメラの認識には苦労したものの成功したのですが、なぜか Web カメラに内蔵のマイクが Duo に認識されないため、祖父母の方から声を送ることができませんでした。
回避策
ただ、Google Duo にはグループ通話機能もあります。以前は「電話アプリの代替」だったため一対一の通話に限定されていたようですが、昨今のコロナ禍でオンライン通話の需要が急増したこともあってか、コロナ禍が起きた 2020 年度に実装されたようです。
この機能を応用し、まず祖父のスマホに Google Duo をインストールし、マイク専用として使うことにしました。さらに Android TV 側の Google Duo では祖母のアカウントでログインし、祖父・祖母・私たち家族 の3人でグループを作成して通話を開始することで、面倒ではあるものの、なんとか使えるような状態にすることができました。
マイク専用として使う Google Duo を祖父、Android TV の Google Duo を祖母のアカウントでそれぞれログインするのがミソです。
Google Duo は同じアカウントの別デバイスから通話するユースケースを想定していないようで(それはそう)、別のアカウントにしないとお互いをグループ通話に入れることができないようでした。
当初のテレビだけでテレビ電話の操作が完結する理想とは裏腹に、祖父母に別途スマホを操作してもらわないといけない形態になってしまったのは残念ですが、親の帰りの時間が迫っていたため仕方ありません。
ただ得られた成果もあったので、ここにやったことと調査結果を書き残しておく次第です。
ちなみに通話した際の画質が最悪に悪いという問題もあったのですが、これに関しては祖父母宅のネットワーク環境が最高 6Mbps しか出ないケーブル回線なのが大きそうです。ホームルーターを置いたりといったネット回線の変更で改善できそうでしたが、今回はそこまでは行いませんでした。
ただ Reddit の投稿 では「ぼやけていて 240p のレベル」だとか言われているので、もしかすると Android TV + Google Duo 共通の問題なのかもしれません。
検証環境
検証を行った Android TV は、SONY BRAVIA の KJ-43X8000E です。公式サイト等では X8000E シリーズとして取り扱われている、2017 年モデルの機種になります。
Android TV の OS バージョンは当初 7.0 だったようですが、後述の OS アップデートで 9.0 に更新しています。
ただし、BRAVIA は機種ごとに個別のチューニングをしているわけではなく、同じ年度、または同じ OS であれば共通の Android TV の OS イメージを使っているようです。
OS アップデートは容量が大きいし、放送波でアップデートデータを流す事や今後継続的にアップデートを提供しなければならない事を考慮すると、共通の OS イメージを使いたくなるのも無理はありません。
こうした理由から、他の機種でも共通する点が多いのではないかと思います。
一方外付け Web カメラ(USB カメラ)としては、Logicool (Logitech) の C310n という製品を使いました。一般的な Web カメラで、PC で普通に使う分には全く問題ないと思います。
ただ、どうも Logicool 製品と Android TV の相性はあまり良くないようです(後述)。
確かな事は言えないのですが、もしダメ元でトライされるのであれば、Logicool ではなく他のメーカーの Web カメラの方がいいかもしれません。
やったことと調査結果
あたかも私がやったかのように記述していますが、実際は親に指示を出してやってもらっているので、一部実際に行った事と齟齬があるかもしれません。
1. Android TV のバージョンを上げる
Google Duo の動作環境は Android TV 8.0 以上です。
一方 X8000E シリーズの初期インストール OS は Android TV 7.0 ですが、幸いにも Android TV 9.0 へのアップデートが公開されています。
アップデートすれば Android TV 9.0 なので Google Duo が使える、というわけで、BRAVIA のOS アップデートを行いました。
当然アップデート中はテレビにまつわるすべての操作ができなくなります。
かなり時間が掛かったようなので、深夜などの時間に余裕のある時に実行したほうがよいでしょう。
2. Web カメラを認識させる
Android TV に Google Duo をインストールさせるところまではすんなり行きました。Google のサポートページにできると書いてあるんだからできないと困ります。
あとは Web カメラを接続した状態で Google Duo を開けばビデオチャットできるのでは…? と、そう考えていた時が私にもありました。
インストール自体はできるのですが、そもそも接続した Web カメラ自体が認識されません。Web カメラが認識できないのだからビデオチャットなどできるはずもなく、ここでかなり詰まってしまいました。
いろいろ試したのですが、カメラが認識していないのには間違いありません。
そうこう調べていると、どうも BRAVIA の Android TV では Web カメラの認識が既定で無効化されていて、プロモードという隠し設定から明示的にオンにしないと使えないようになっている事が分かりました。
そもそもプロモードってなんだよって話ですが、たとえばホテル用のテレビだとか、そうした業務用などの法人向けテレビとして BRAVIA を活用するときに細かく色々設定できた方がいいよね、という用途に応えるため、本来はいじれない BRAVIA の細かな設定を調整することができる隠しモードの事です。
まさかそんな隠しコマンドみたいなのが本当にあるとは… と私自身かなり驚きました。
本来は法人向けテレビ専用の設定のはずですが、個人向けの BRAVIA でも使えるようになっています。
リモコンのボタンを [画面表示]→[消音]→[音量+]→[ホーム] の順に押すと、テレビが再起動してプロモードに入れるようになります。日本語情報が公式ドキュメントくらいしかないあたり、個人で BRAVIA をお使いの方でプロモードの存在を知っている人はほぼ皆無なのでしょう。
プロモードの付属機能としてプロ設定というのがあるので、そこから上のリンクの案内の通りに [USBカメラ機能] を有効にします。
変更を適用するには再起動が必要です(プロモード終了時に自動で再起動がかかります)。
もう一度同じようにリモコンのボタンを [画面表示]→[消音]→[音量+]→[ホーム] の順に押すと、テレビが再起動してプロモードを終了できます。
プロモード終了後も、USB カメラの認識は有効のまま持続します。
詳細は私もよく理解できていませんが、本来 Android TV にはカメラはついていないので、OS 側でカメラにアクセスする API が無効になっているらしいです[2]https://developer.android.com/training/tv/start/hardware?hl=ja。
このオプションを有効にするとそれらの API が有効になり、アプリ側で外部カメラが認識できるようになるのだそう。
ここまで奥まった所にある設定で有効にしないと使えなくなっている理由は、単純にサポートコストを上げたくないからだと思われます。
後述しますが、Android の外部カメラのサポート機能はどうやらあまり出来がよくないらしく、さらに認識できる Web カメラ自体も Linux の UVC (USB Video Class) という規格に対応したものである必要があります[3]UVC 対応の Web カメラの一覧。現在発売されている多くの Web カメラは対応していると思いますが、古かったり特殊な Web カメラだとそもそも認識できないかもしれません。
画面に「すべてのカメラで動作を保証するものではありません」と再三注意書きがあるように、動いたり動かなかったりがあって不安定な機能を普通のサードパーティアプリが使えるようになると、それこそ「Zoom が Google Play からインストールできるけど BRAVIA で動かない」だのクレームが来る事は明白でしょう。
そうした面倒事を避けるべく、意図的に外部カメラ機能を遮断して、カメラを利用するアプリが Google Play からインストールできないようにしているのだと考えられます[4]Android アプリには必要なハードウェア要件を設定する事ができ、それに一致しない端末では Google Play … Continue reading。
こうして BRAVIA 側の隠し設定で USB カメラの認識を有効にすることで、無事 Duo で Web カメラを認識させることができるようになりました。この設定を見つけるのにかなり時間がかかってしまった…。
3. Web カメラ内蔵のマイクが認識されない
さて、前述のとおりぶち当たった壁が「Web カメラ内蔵のマイクが認識されない」問題です。
Google Duo は Web カメラ自体はちゃんと認識してくれるのですが、Web カメラに内蔵のマイクに関しては「別のアプリがマイクを使っているのでマイクが使えない」という趣旨のエラーで認識されません。
ビデオ通話自体はできるものの、Android TV から相手側に声を届けられないという歯がゆい状態です。
いろいろ試してもダメな事からいろいろフォーラムを漁ったりしてみたのですが、Android TV の OS 側のバグ、BRAVIA の OS カスタマイズによる変更、Google Duo の不具合の3つが複雑に絡み合っているようで、現時点で有効な解決策は存在しないようでした。
Android Issue Tracker の投稿ですが’(表示するには Google アカウントでのログインが必要)、多くのコメントがついているのにも関わらず、最初のコメントが投稿されてから2年近く進展がありません。
一応 2021 年 3 月のセキュリティアップデートで若干改善したとの報告があったのですが、アップデートを行ったものの、残念ながら Google Duo でマイクが認識されるようになるまでには至りませんでした。
日本やこちらの環境の問題(おま国、おま環)ではなく世界的にこの問題が発生しているという事でその点は安心したのですが、とはいえ現状解決策がないのは残念でなりません。
Android の外部カメラサポート機能自体がそもそもほぼ使われていないであろう事(スマホなら内蔵カメラの方が早いし…)、さらに Android TV 自体がマイナーで対応アプリも少ない事などが影響しているものと思われます。
特に海外ではコロナが酷かったこともあり、テレビでビデオ通話をしたいという需要がそれなりにあったようです。コメントの内容からもコロナに関連したニュアンスが読み取れます。
「別のアプリがマイクを使っているのでマイクが使えない」というエラーですが、おそらくエラーメッセージ自体が誤っていると考えられます。
試しに Google Duo 以外のマイクへのアクセス権限を全て切った上で再起動したりもしてみましたが、状況は一切変わりませんでした。マイクへのアクセス自体が遮断されればマイクを使用状態にする事はできないはずなので、それにも関わらずこのエラーが表示されるのは本来ありえないからです。
Issue Tracker の方にも「Duo ではこういうエラーが出るけど Google アシスタントではマイクがちゃんと動作するので Duo のバグじゃない?」というコメントが投稿されていました。
この問題が不可解かつ解決を困難にしているのが、すべての Android TV で Google Duo が使えないわけではないという事です。
過去ログを読む限り、ソニーの BRAVIA、フィリップスのテレビ、Xiaomi の Mi BOX(後者はおそらく日本未発売)での不具合報告が非常に多いです。さらに、Web カメラとしては Logitech(日本では Logicool として発売されている)のカメラが使われていることが多く、これら2つの TV と Web カメラの相性問題である可能性も残されています。
普通に動いた人がこのようなフォーラムを発見してコメントを残すことは普通考えられないので、「できない」という報告ばかりが上がり「できた」環境の情報が上がってこないのがつらいところです。
ただ Android TV 全般で動かないなら Google のサポートページで「Android TV で Google Duo が使えます」などと豪語しないでしょうし、テレビの機種に偏りがある事からも、これらのメーカーがカスタムしている Android TV による機種やメーカー依存が影響しているのは確実でしょう。
Google 側は Android (AOSP) のバグを修正することはできても、そこから先のメーカー側でカスタムされた OS の部分には関知できませんし、ソースコードも当然公開されていません。Google が対処できる部分にも限界があるので、膠着状態になるのも致し方ないような気はします。
さらに言えばソニー側は USB カメラを既定で認識できないようにしているあたり「公式でビデオ通話/ビデオ会議アプリをサポートする予定はない」ようなので、ソニー側が BRAVIA 向け Android TV の不具合を改善してくれるのも望み薄です。
一度サポートするとなればちゃんと動くように不具合を修正していかないといけないでしょうし、それに伴う開発コストの増大と需要の少なさを勘案すれば、そういう判断になるのも無理はないでしょう。
加えて、Google Duo ではマイクが使えないが、他のアプリではマイクが動作したという報告もありました。
今回当該の BRAVIA でも試しに MicTest というマイクの確認用アプリをインストールしてみたのですが、そちらでは正しくマイクを認識している事が確認できました(リモコンに搭載されている Google アシスタント用のマイクなのか、Web カメラ側のマイクなのかは時間の都合で検証できませんでした)。
さらに言えば、そもそも Android TV に対応したビデオ通話/ビデオ会議アプリは極めて少ないのですが(大手どころは Google Duo くらいしかない)、Google Duo は動かないけど TrueConf という海外のマイナーなビデオ会議アプリなら動いた、という報告もありました。
時間があればこの TrueConf というアプリも動くか試してみたかったのですが、滞在時間の余裕がなく、そこまで取り掛かる事ができませんでした。それで Duo でのマルチ通話でなんとかするという妥協案に落ち着いたわけです。
後になってから、実は(APK をゴリゴリいじれば)Skype を Android TV に無理矢理インストールできる事がわかりました。マイクが認識できるかどうかは定かではありませんが、時間に余裕があれば試してみる価値はあると思います。
この問題が影響しているのか、一時 Android TV の Google Play から Google Duo が削除されていた事がありました。その後「正しいマイクを選択できるよう変更を加えた」のだそうですが、その後も機能しないままです(一部のテレビではこれで改善されたのかもしれませんが)。
回避策として、Bluetooth でマイク付きのヘッドセットを接続し(?)、テレビの音量をテレビのスピーカーと Bluetooth ヘッドセットの両方に出力するようにして、Bluetooth ヘッドセットのマイクを認識させるといった手法が紹介されていました。
これも試してみたかったのですが、残念ながら今回の X8000E シリーズは微妙に古い型番という事もあって Bluetooth 自体には対応しているものの Bluetooth 経由でのイヤホンやヘッドホンへの再生に対応していない(音声送受信用のプロファイルが搭載されていない)ことが分かり、諦めざるを得ませんでした。
もしテレビ側に音声入力用のイヤホンジャックがついていれば…とも思いましたが、X8000E シリーズの取扱説明書を読む限りは見当たりませんでした(普通テレビにマイクつけようなんて思わないので仕方ない)。
Bluetooth ヘッドホンが使えるテレビであればこの回避策は有効かもしれないので、もしお手持ちのテレビが対応していれば、やってみる価値はあるのかもしれません。
そうこうしていると、Google Meet でビデオ会議している画面を Chromecast でテレビに飛ばす事ができるようになった事がわかりました。
ミラーリングではなく、ちゃんとした一機能として実装されています。当初はアメリカだけだったようですが、今は日本でも使えるみたいです。
Android TV には Chromecast built-in という Chromecast の機能が統合されているので、単体の Chromecast 同様にキャストできます。
今回は祖父母が高齢という事もあり、スマホでの操作が煩雑になるのを避けるべく[5]一応祖父母ともスマホを使ってこそいるが、とてもスマホの操作を熟知しているとはいえない感じ…、テレビだけで操作できる事を目指してやっていました。
ただ特にそうした要件がないのであれば、スマホや PC で繋いだ Google Meet の画面を Chromecast でキャストするのが手っ取り早くて確実かもしれません。
あとがき
この記事での情報を参考にして、ここをこうしたらマイクが認識できた・このアプリならマイクが使えた・Logicool 以外の Web カメラなら行けた・別に USB マイクを接続したらうまくいった といった何かしらの成果があった方は、ぜひささいな事でもコメント欄に投稿していただけると本当に助かります。
私の環境では時間不足で TrueConf などの他に使える試したいアプリや手法が試せなかったのが心残りです。
頂いた情報によってはこちらで試したり、この記事に追記することがあるかもしれません。私の屍を乗り越えてほしい…。
References
↑1 | https://jetstream.bz/archives/109452 |
---|---|
↑2 | https://developer.android.com/training/tv/start/hardware?hl=ja |
↑3 | UVC 対応の Web カメラの一覧 |
↑4 | Android アプリには必要なハードウェア要件を設定する事ができ、それに一致しない端末では Google Play からインストールできないようになっています。標準ではカメラが使えないものとして設定されているため、カメラを使うアプリは起動以前にインストールできないはずです。 |
↑5 | 一応祖父母ともスマホを使ってこそいるが、とてもスマホの操作を熟知しているとはいえない感じ… |
コメント
2021年モデル KJ-65X80Jにロジクール型落ちWebカメラQcam Orbit AF(2007年発売)を接続した上で、Google Duoをインストール/起動して、発着信及び音声通話+ビデオ通話が出来る事を確認済です。
(音声もWebカメラ内蔵マイクが拾っています)
当然ながら着信待受はBravia側でGoogle Duoアプリを起動している時のみで、TVを観ながらDuoの待受は出来ません。
また、スマートフォンには実装されている画面のエフェクトをBravia側で行う事は出来ません。
注意点としては、X80Jシリーズの背面にUSB端子はUSB3.0、USB2.0と2つあり、USB3.0は録画用HDD接続端子のようです。カメラはUSB2.0側へ接続しました。
Duoアプリ初回起動時に、カメラ等へのアクセス権限について確認が表示されますが、それ以外は特に何もいじる事なく簡単に使えました。
取り急ぎご報告まで。
そうなんですか…!!
USB カメラの有効化の設定をしなくても使えたんでしょうか? あと、画質や画角はどうなっていますか?
古い型落ちカメラでも特に何もいじる事なく音声通話できているとのことなので、2021 年モデルだと OS の更新などでちゃんと動くようになったのかもしれませんね。
あとは Google Duo 側のアップデートで BRAVIA に対応したとかでしょうか。もしそうなら私の祖父母宅の BRAVIA でも動くようになっていそうです(祖父母宅から地理的に遠いのですぐには試せませんが…)。
同じ思いで、昨年から試していました。
今のDuoはつながります。
バックグラウンドで呼び出しもしたかったので、WebRTCを使って作ってみました。
ブラウザーはAndroidTVにはないので専用に制作してみました。
今は亡きTV用のSkypeのように着信可能にできましたので近々公開したいと思っています。
情報、ありがとうございました。
今の Duo はつながるんですか!? 情報ありがとうございます!!
コロナで帰省もできなくなってしまいましたが、もし今度帰省する際には試してみたいと思います。
>> 今は亡きTV用のSkypeのように着信可能にできましたので近々公開したいと思っています
いいですね~!! 公開されたらぜひ教えていただけたら嬉しいです。
非常に参考になる検証をありがとうございます。
先日実家で2021年モデルBRAVIA(X85J)でGoogle Duo+Webカメラで映像・音声共に開通しまして、
今ならいけるかも?と期待して自宅の2017年モデルBRAVIA(X9000E)+Logicool C920nで試してみたのですが、残念ながらtsukumiさんと同じくマイクが認識出来ない旨メッセージが出て音声が不通でした。(映像はOK)
公式サイトでもGoogle Duoのサポートは2021,2022年モデル対象と書かれている為、
2017年モデルのソフトウェアでは足りないコンポーネントがあるのかもしれません。
そうでしたか…。公式サイトに Google Duo のサポート状況について書かれているんですね。
古いテレビだと OS が古かったりで Google Duo をサポートしていないのかもしれません。