CamTwistを使ってAndroidEmulatorのカメラソースをPC画面にする

バーコード読み取り機能を作る場合などにいちいち実機でバーコードをスキャンするのが面倒臭かったのでなんとかPCに表示した画像をエミュレータのカメラソースにできないか調べてみました

CamTwist

CamTwistニコニコ生放送やTwitchなどで配信する時に、Webカメラの映像ではなく、PC画面を映像のソースとして配信するためのソフトです。エミュレータではWebカメラや内臓カメラをソースとして使えますが、同じようにCamTwistの映像も使うことができます

以下の方法はCamTwist以外にも同じ機能をもったソフトであれば有効だと思います

設定方法

CamTwist

CamTwistをダウンロードページからダウンロードしてインストールします

CamTwistの設定は、以下のようにします

  • Desktop (範囲は任意)
  • Rotation Translation(任意)
  • Zoom(任意)

f:id:scache:20170927010204p:plain:w400

エミュレータで表示した時に画像が回転した状態で表示されていたらRotationを設定してみてください

AVD

  1. エミュレータの設定画面からShow Advanced Settingsを押す
  2. Cameraの設定をwebcam0にする
  3. 設定を保存

f:id:scache:20170927010812p:plain:w400

f:id:scache:20170927014603p:plain:w200

以上で設定は終了です

エミュレータ起動

エミュレータでカメラアプリを起動して確認してみます

以下のようにCamTwistで指定した範囲の映像が表示されていればOKです

f:id:scache:20170927012641p:plain:w300

おまけ webcam0について

Macではもともと内臓カメラがついている端末がほとんどだと思いますが、エミュレータの設定では内臓カメラやCamTwistなどの映像ソースが複数ある場合でもwebcam0しか選択することができません(AndroidStudioのエミュレータ設定ではカメラがあろうがなかろうがNone, Emulated, Webcam0の3つのみ選択できるようになっているようです)。

そのため、環境によっては内臓カメラの映像が自動的に選択されてしまうかもしれません。

emulatorコマンド Commonly used optionsを見た限りではemulatorコマンドからエミュレータを起動する際にどの映像ソースを使うかを選択できそうですが、カメラ一覧を取得してもwebcam0しか表示されず任意の映像ソースを選択する方法はわかりませんでした。