2

我目前正在使用下面显示的代码在 Android 设备上访问和显示相机。它工作正常,但我不想访问标准摄像头,而是想访问前置摄像头。我怎样才能修改下面的代码来做到这一点?提前致谢。

var cam:Camera = Camera.getCamera(); 
var vid:Video = new Video(); 
vid.attachCamera(cam); 
addChild(vid);
if (cam != null) 
{ 
    cam.addEventListener(StatusEvent.STATUS, statusHandler); 
    vid = new Video(); 
    vid.attachCamera(cam); 
} 
function statusHandler(event:StatusEvent):void 
{ 
    if (!cam.muted) 
    { 
        vid.width = cam.width; 
        vid.height = cam.height; 
        addChild(vid); 

    } 
    cam.removeEventListener(StatusEvent.STATUS, statusHandler); 
} 
4

2 回答 2

6

将前置摄像头的凸轮索引值传递到您的 中Camera.getCamera();,例如:

var camIndex:String = "1"; 
var cam:Camera = Camera.getCamera(camIndex); 

如果上述修改没有改变任何内容,请尝试将 camIndex 的值更改为“0”、“2”、“3”,这取决于您的前置摄像头注册了哪个索引。尝试一下!

于 2012-12-21T23:35:22.810 回答
0

在使用 Adob​​e Air 开发应用程序时,在 android 和 ios 设备上安装前置摄像头的最佳方式是;

protected var _camera:Camera = null;    
_camera = getCamera(CameraPosition.FRONT);

进而

private function getCamera(position:String):Camera
    {
      for (var i:uint = 0; i < Camera.names.length; ++i)
      {
        var cam:Camera = Camera.getCamera(String(i));
        if (cam.position == position) return cam;
      }
      return Camera.getCamera();
    }

通过传递相机名称有时无法正常工作,尤其是在基于 ios 的设备中。

于 2014-01-29T13:05:40.263 回答