エミュレーターカメラで撮影した静止画を設定する方法はありますか?エミュレーターのzxingバーコードリーダーでirをテストしたいと思います。
これは、この紳士がこのサンプルソースコードで行ったような古典的な抽象化レイヤーを追加することで解決できます。
http://www.tomgibara.com/Android/camera-source
具体的には、いくつかのテスト画像を用意して BitmapCamera
を使用したいようです。
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に変更することもできます。お役に立てれば。
Android用のMockCameraを使用することもできます。回答については、詳細なリファレンスを参照してください。 https://stackoverflow.com/a/38456086/1053097