すらいむがあらわれた

こまんど >  たたかう  にげる

AndroidエミュレータでARToolkitを試すには

↑上の魂魄を召還する方法ですw
私の環境は以下です。
OS:Windows Vista(MacBook上でBootCampで動作)
カメラ:MacBook付属のカメラiSight
Eclipse:3.4.2
エミュレータ:Android SDK 1.1対象で動作

ソースは「Software Design 2009年3月」号の
特集2 「〜開発の基礎から,マッシュアップ/ハードウェア連携まで〜Androidアプリ開発「匠(たくみ)」への道」の第4章のサンプルコードです。
http://gihyo.jp/magazine/SD/archive/2009/200903/support


雑誌の解説記事は本文は短くて、具体的なソースのビルド方法にまでは触れていないので解説も一緒に読むのをお勧めします。
・本文
http://www.android-group.jp/index.php?%BC%B9%C9%AE%2F%BB%A8%BB%EF%2FSD%2F2009%2F03%2F%B2%BE%C1%DB%B8%BD%BC%C2%B4%B6%A1%A6%CB%DC%CA%B8
・解説
http://www.android-group.jp/index.php?%BC%B9%C9%AE%2F%BB%A8%BB%EF%2FSD%2F2009%2F03%2F%C2%E8%A3%B4%BE%CF%2F%B2%BE%C1%DB%B8%BD%BC%C2%B4%B6


エミュレーターでカメラ画像を取得するためはカメラサーバー用のプログラム「WebcamBroadcaster」を使用します。「WebcamBroadcaster」はサンプルコードの中に含まれていますが、動作させるために別途Java Media Frameworkが必要です。
http://java.sun.com/javase/technologies/desktop/media/jmf/2.1.1/download.html


どうもVista環境では「WebcamBroadcaster」はそのままでは動かないようです。
「WebcamBroadcaster」のコードの以下の部分がnullを返してしまい、カメラを認識できません。

private static Player createPlayer(int width, int height) {
Vector devices = CaptureDeviceManager.getDeviceList(null);

createPlayerメソッドを呼び出すのをやめ、startメソッドの中で以下のようにカメラを取得しました。

player = Manager.createRealizedPlayer(new MediaLocator("vfw://0"));

以下のページの記述を参考にしています。
http://forums.sun.com/thread.jspa?threadID=5368939

後はあらかじめ「WebcamBroadcaster」を起動しておいて、その後Eclipseからサンプルコードの中のNyARToolkitを実行します。


私が試した限りではまだAndroid SDK 1.1エミュレーターでしか動かせていません。
1.5のエミュレータ、および実機(GDD Phone)では画面が真っ暗のままでカメラ画像の取得もできていないようです。


ARは携帯電話上で使えてこそ面白いのでなんとか実機で動かしたい(_ _;