flex调用摄像头功能

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx=" http://ns.adobe.com/mxml/2009"
      xmlns:s="library://ns.adobe.com/flex/spark"
      xmlns:mx="library://ns.adobe.com/flex/mx"
      width="500" height="350" creationComplete="application1_creationCompleteHandler(event)">
 <fx:Script>
  <![CDATA[
   import mx.controls.Alert;
   import mx.events.CloseEvent;
   import mx.events.FlexEvent;
   import mx.graphics.codec.PNGEncoder;
   
   private const CAMERA_WIDTH:int=400;
   private const CAMERA_HEIGHT:int=300;
   private var _camera:Camera;
   private var _pngEn:PNGEncoder;
   private var _bitmapData:BitmapData;
   private var _fr:FileReference;
   
   protected function application1_creationCompleteHandler(event:FlexEvent):void
   {
    _pngEn=new PNGEncoder;
    _fr=new FileReference;
    
    checkCamera();
   }
   
   private function checkCamera(event:CloseEvent=null):void
   {
    _camera=Camera.getCamera();
    if(_camera!=null){
     _camera.setMode(400,300,24);
     _camera.setQuality(0,100);
     
     cameraDisplay.attachCamera(_camera);
     cutCameraBtn.enabled=true;
    }else{
     Alert.okLabel="重试";
     Alert.show("找不到摄像头,程序将重新查找","对不起",4,null,checkCamera);
    }
   }
   
   private function getDateString():String{
    var date:Date=new Date;
    return "拍照"+date.getFullYear()+(date.getMonth()+1)+date.getDate()+date.getHours()+date.getMinutes()+date.getSeconds()+date.getMilliseconds();
   }
   
   protected function cutCameraBtn_clickHandler(event:MouseEvent):void
   {
    _bitmapData=new BitmapData(CAMERA_WIDTH,CAMERA_HEIGHT);
    _bitmapData.draw(cameraDisplay);
    
    var bytes:ByteArray=_pngEn.encode(_bitmapData);
    _fr.save(bytes,getDateString()+".png");
    
    //release
    bytes.length=0;
    _bitmapData.dispose();
   }
   
  ]]>
 </fx:Script>
 <fx:Declarations>
  <!-- 将非可视元素(例如服务、值对象)放在此处 -->
 </fx:Declarations>
 
 <mx:VideoDisplay id="cameraDisplay"
      width="400"
      height="300"
      y="10"
      x="50"/>
 <mx:Button id="cutCameraBtn"
      label="拍照"
      click="cutCameraBtn_clickHandler(event)"
      enabled="false"
      x="227"
      y="318"/>
</s:Application>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值