如何使用AS3提高相机的质量?

时间:2011-06-14 05:19:05

标签: flash actionscript-3 video camera

我正在尝试使用基于网络摄像头的应用程序。我开始这样的代码:

import flash.media.Camera;
import flash.media.Video;
var cam:Camera = Camera.getCamera();
a.vid1.attachCamera(cam);
a.vid1.smoothing = true;

我的问题是视频的质量。 我正在使用iMac机器,其中相机质量很好。 有没有办法提高相机输出的质量?

感谢您的帮助。

2 个答案:

答案 0 :(得分:10)

以下是示例代码

package
{
    import flash.display.DisplayObject;
    import flash.display.Sprite;
    import flash.display.StageAlign;
    import flash.display.StageScaleMode;
    import flash.events.ActivityEvent;
    import flash.events.MouseEvent;
    import flash.media.Camera;
    import flash.media.Video;

    public class iosTest extends Sprite
    {

        private var cam:Camera;
        private var vid:Video;


        public function iosTest()
        {
            super();

            // support autoOrients
            stage.align = StageAlign.TOP_LEFT;
            stage.scaleMode = StageScaleMode.NO_SCALE;
            cam = Camera.getCamera();

            if (!cam) 
            {
                trace("No camera is installed.");
            }
            else 
            {
                connectCamera();
            }
        }

        private function connectCamera():void 
        {
            cam.setMode(640, 480, 25); 
            cam.setQuality(0,100);
            vid             = new Video();
            vid.width       = cam.width;
            vid.height      = cam.height; 
            vid.attachCamera(cam);
            addChild(vid);    

            stage.addEventListener(MouseEvent.CLICK, clickHandler);
        }

        private function clickHandler(e:MouseEvent):void 
        {

            return;

            switch (cam.width) {
                case 160:
                    cam.setMode(320, 240, 10); 
                    break;
                case 320:
                    cam.setMode(640, 480, 5); 
                    break;
                default:
                    cam.setMode(160, 120, 15); 
                    break;
            } 
            removeChild(vid);           
            connectCamera();
        }

    }
}

答案 1 :(得分:3)

使用setQuality()

  

<强>参数

     

bandwidth:int - 指定最大值   当前的带宽量   传出视频源可以使用,以字节为单位   每秒。指定Flash   播放器视频可以使用尽可能多的带宽   根据需要保持价值   质量,带宽为0。该   默认值为16384.

quality:int    - 一个指定的整数   所需的图像质量水平,如   由金额决定   压缩应用于每个   视频帧。可接受的值范围   从1(最低质量,最高   压缩)到100(最高质量,   没有压缩)。要指定   图像质量可根据需要而变化   避免超出带宽,传递0   质量。