问题描述
|
我正在尝试基于网络摄像头的应用程序。我这样启动代码:
import flash.media.Camera;
import flash.media.Video;
var cam:Camera = Camera.getCamera();
a.vid1.attachCamera(cam);
a.vid1.smoothing = true;
我的问题是视频的质量。
我使用的是iMac机器,相机质量很好。
有什么办法可以提高摄像机输出的质量?
谢谢您的帮助。
解决方法
这是示例代码
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,5);
break;
default:
cam.setMode(160,120,15);
break;
}
removeChild(vid);
connectCamera();
}
}
}
, 使用setQuality()
参量
width:int —指定最大值
当前的带宽量
传出的视频供稿可以使用,以字节为单位
每秒。指定该Flash
播放器视频可以使用尽可能多的带宽
根据需要保持价值
质量,请为带宽传递0。的
默认值为16384.quality:int
—一个整数,指定
所需的图片质量水平
由数量决定
压缩应用于每个
视频帧。可接受值范围
从1(最低质量,最高
压缩)到100(最高质量,
无压缩)。要指定
图片质量可以根据需要变化
避免超过带宽,将0传递给
质量。