我使用flash / as3构建了一个AIR应用程序,在舞台上显示了一个网络摄像头。在构建应用程序时,在我的所有测试中,所有内容看起来和工作都很花哨,但是当我为AIR发布时,图像会被拉伸。图像的边界似乎保持不变,但实际的凸轮输出是扭曲的。有没有人以前遇到过这个问题?
我应该补充一点,这是一个桌面应用程序,它永久安装在一台计算机上,因此设备兼容性应该不是问题。
这是相机设置:
var cam:Camera = Camera.getCamera();
cam.setMode(280,380,20);
var video:Video = new Video(380,380);
这是我第一次打电话给相机......
video.attachCamera(cam);
video.x = 355;
video.scaleX = -1;
video.y = -100;
addChildAt(video, 0);
奇怪尺寸的原因在于它位于框架后面,在整个交互式中改变位置。
答案 0 :(得分:2)
不一定是您正在寻找的答案,但您应该牢记这一点:
您要求相机以280 x 380的分辨率进行拍摄,这不是标准的4:3宽高比。
当您致电cam.setMode(280,380,20);
时,文档会说Flash会尝试将相机分辨率设置为您的规格,如果相机不支持该分辨率,它会尝试找到匹配的分辨率。所以你可能会或可能不会得到这个实际的解决方案。
setMode()
有第四个参数,可以禁用此功能。阅读docs,了解其含义:)
然后在视频对象380x380中显示视频。所以我希望图像在水平方向上拉伸(b / c原始来源只有280)。
目前尚不清楚为什么这种行为会有所不同:您是说运行应用程序的调试版本有效,但是当您导出发布版本并运行它看起来很时髦时?
最后,scaleX = -1
在做什么?我记得这是我过去使用的某种狡猾的技巧......但这里的目的是逃避我:)
答案 1 :(得分:-1)
是的,源代码很酷。顺便说一句,我建议你,一旦你开始播放视频流,就手动设置video.width和video.height属性。 这将强制凸轮以正确的尺寸显示。