web-dev-qa-db-ja.com

Androidエミュレータカメラで写真をモックする方法は?

エミュレーターカメラで撮影した静止画を設定する方法はありますか?エミュレーターのzxingバーコードリーダーでirをテストしたいと思います。

22
JoaoGalli

これは、この紳士がこのサンプルソースコードで行ったような古典的な抽象化レイヤーを追加することで解決できます。
http://www.tomgibara.com/Android/camera-source

具体的には、いくつかのテスト画像を用意して BitmapCamera を使用したいようです。

7
Joel Martinez

Linuxでエミュレーターを実行している場合は、v4l2loopbackとgstreamerを使用して画像(QRコードなど)を表示するモックウェブカメラを作成できます。

V4l2loopbackをインストールします。

$ wget https://github.com/umlaeute/v4l2loopback/archive/master.Zip
$ unzip master.Zip
$ cd v4l2loopback
$ make
$ Sudo make install

すでに持っているカメラの数を確認し(私は/ dev/video0しか持っていませんでした)、次のカメラを初期化します。

$ Sudo modprobe v4l2loopback video_nr=1 card_label="mockCam"

画像(たとえば、googlechartsからのQR)をmockCamにストリーミングします。これが必要です:

$ wget "https://chart.googleapis.com/chart?chs=600x340&cht=qr&chl=testing" -O qr.png
$ gst-launch-0.10 filesrc location=qr.png ! pngdec ! freeze ! v4l2sink device=/dev/video1

模擬カメラがエミュレーターによってピックアップされているかどうかを確認できます。

$ ./emulator -avd yourAVD -webcam-list

その場合は、モックWebカメラでエミュレータを起動できます。

$ ./emulator -avd yourAVD -camera-back webcam1

AVD設定をwebcam1に変更することもできます。お役に立てれば。

17
Martin Klomp

Android用のMockCameraを使用することもできます。回答については、詳細なリファレンスを参照してください。 https://stackoverflow.com/a/38456086/1053097

0
muneikh