2011-03-12 82 views
2

我正在为使用Flash的android实现增强现实应用程序。为了让应用程序在我的Android手机上运行(nexus One),电话摄像头也必须启动。所以我需要2层一个用于背景,这是我的手机相机的反馈,另一个是在这种情况下来自away3d的视图。如何使用位图数据设置视频帧捕获

因此,设置一个BitmapData对象来保存最新的摄像头静止帧的信息,我可以做到这一点。

如果我使用Papervision3D的图书馆和FLARtoolkit,这我们使用的代码下面的部分从this video tutorial发现设立的BitmapData:

//import libraries 
import org.libspark.flartoolkit.core.raster.rgb.FLARRgbRaster_BitmapData; 
import org.libspark.flartoolkit.detector.FLARSingleMarkerDetector; 


private function setupCamera():void 
      { 
       vid = new Video(640, 480); 
       cam = Camera.getCamera(); 
       cam.setMode(320, 240, 10); 
       vid.attachCamera(cam); 
       addChild(vid); 
      } 

      private function setupBitmap():void 
      { 
       bmd = new BitmapData(640, 480); 
       bmd.draw(vid); 
       raster = new FLARRgbRaster_BitmapData(bmd); 
       detector = new FLARSingleMarkerDetector(fparams, mpattern, 80); 
      } 



private function loop(e:Event):void 
      { 
       if(detector.detectMarkerLite(raster, 80) && detector.getConfidence() > 0.5) 
       { 
        vp.visible = true; 
        detector.getTransformMatrix(trans); 
        container.setTransformMatrix(trans); 
        bre.renderScene(scene, camera, vp); 
        } 
        else{ 
        vp.visible = false} 
        } 
      catch(e:Error){}}}} 

但是,使用的Away3D引擎来实现我的应用程序Im和FLARManager和方式这样做是非常不同的,因为我能理解。我已经实现了下面的代码,但唯一的想法就是在3D视图的前面显示Flash Camera,并且我无法检查我的应用程序是否工作,因为当我没有向我显示任何3D对象时将标记放置在屏幕前方。

我的代码是:

//Setting Up Away3DLite Camera3D 
import com.transmote.flar.camera.FLARCamera_Away3DLite; 

private var camera3D:FLARCamera_Away3DLite; 

this.camera3D = new FLARCamera_Away3DLite(this.flarManager, new Rectangle(0, 0, this.stage.stageWidth, this.stage.stageHeight)); 

    //Setting Up the bitmapData 
    private function bitmap():void 
{ 
    c = Camera.getCamera(); 
    c.setMode(320,240,10) 
    this.v.attachCamera(c); 
    addChild(this.v);   
    bmd = new BitmapData(640,480); 
    bmd.draw(this.v); 
    } 

能否请你帮我找出我如何可以结合这两个?

我真的很感激任何建议,我可以从你那里得到。

谢谢

回答

1

要隔离您的问题,我会尝试打破这两个东西,并确保各部分工作第一。这听起来像你有相机部分工作,尝试做一些3D(没有AR)绘制立方体或东西。然后尝试实施AR,但让它做一些简单的事情,例如追踪事物或使对象可见或不可见。然后开始合并它们。

+0

谢谢你的回复。问题是即使我只使用一些3D立方体,T也无法正确地运行位图数据。它是否有任何可用的在线资源,您认为它可以帮助我解决此问题?这对我来说似乎非常复杂,因为我是远离3D引擎的新手。 – Apollon1954 2011-03-14 16:01:09

+0

Lee Brimelow在该网站上有一些优秀的教程。他实际上也使用FLARManager做了一个。 – Sam 2011-03-14 19:35:23

+0

FLARManager不需要您明确调用相机类,这只是在FLARToolkit中。 [链接](http://www.gotoandlearn.com/play.php?id=114)这可能有帮助。 – Sam 2011-03-14 19:44:23