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();次のように、フロント カメラの Cam's Index 値を に渡します。

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

上記の変更で何も変わらない場合は、camIndex の値を「0」、「2」、「3」に変更してみてください。これは、フロント カメラが登録されているインデックスによって異なります。それを試してみてください!

于 2012-12-21T23:35:22.810 に答える
0

Adobe 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 に答える