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

发布于 2024-11-15 10:28:36 字数 280 浏览 0 评论 0原文

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

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

我的问题是视频的质量。 我使用的是 iMac 机器,其相机质量很好。 有什么方法可以提高相机输出的质量吗?

感谢您的帮助。

I'm trying for a webcam based application. I started the code like this:

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

My problem is that the quality of the video.
Im using an iMac machine, in which camera quality is good.
Is there any way to increase the quality of the camera output?

Thanks for the help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

以歌曲疗慰 2024-11-22 10:28:36

这是示例代码

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();
        }

    }
}

Here is a sample code

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();
        }

    }
}
看透却不说透 2024-11-22 10:28:36

使用setQuality()

参数

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

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

Use setQuality()

Parameters

bandwidth:int — Specifies the maximum
amount of bandwidth that the current
outgoing video feed can use, in bytes
per second. To specify that Flash
Player video can use as much bandwidth
as needed to maintain the value of
quality, pass 0 for bandwidth. The
default value is 16384.

quality:int
— An integer that specifies the
required level of picture quality, as
determined by the amount of
compression being applied to each
video frame. Acceptable values range
from 1 (lowest quality, maximum
compression) to 100 (highest quality,
no compression). To specify that
picture quality can vary as needed to
avoid exceeding bandwidth, pass 0 for
quality.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文