GUST NOTCH? DIARY

久しぶりに Eclipse を立ち上げた

Android でカメラアプリを作ろうとすると、エミュレータでは映像を出してくれないので、実機で動作確認する必要があった。が、実機を使わずに開発できるようにWebカメラの映像を使う方法がある。
以前、NyARToolkit を試そうとしたのだけど、うまくビルドできなかったのであきらめていた。

しかし、最近またこちらの記事を目にしたので、久しぶりにトライしてみることにした。

今回はうまくいった、が、いくつかハマッタのでメモしとく。

  • Debug certificate expired とでてビルドできない

一年以上ぶりに Eclipse を立ち上げたら、Hello World すらビルドできない。なんでだろうと思ってコンソールの出力を見てみたら上記のメッセージが出ていた。
ググッてトップに出ていたこちらを参考にして直す。

Windows - Preference の Android - build にある Default debug keystore のファイルを削除して、Project - Clean すれば良いらしい。で、書いてあるとおり、エミュレータデバッグしようとしても

Re-installation failed due to different application signatures
You must perform a full uninstall of the application.
Please execute 'adb uninstall org.example.hello' in a shell.

と出るので、アンインストールしてあげる。sdk の tools の下に行って、書いてある通りのコマンドを叩けばいい。

  • WebcamBroadcaster が動かなかった

SDK と JMF のパスを設定したにも関わらず、カメラの画像が取得できない。
Unable to find a suitable player というエラーがでている。
元となっている下記に行くと、コメントに解決方法が出ていた。

JMF についてくる JMStudio.exe で、File - Preference - Capture を見ると、カメラデバイスが認識されていない。 Detect Capture Device をすると検出された。
http で 9889 port にアクセスすると、カメラ画像がブラウザに表示された。

SocketCamera.java を利用するために、このファイルがあるフォルダをビルドパスに追加する。プロジェクトを右クリックして、Build Path - Configure Build Path から Source タブの Link Source で、lib のパスとフォルダ名 lib を設定する。
SocketCamera を使うように ApiDemo の CameraCapture.java のソースを修正。
さて、これで動くはず……と思ったら画面が真っ黒。SocketCamera.java の中のIPアドレスを変更するのを忘れていました。
ちなみに、AndroidManifesto.xml

<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />

も有効になっている必要があるそうです。