1

我用 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);

尺寸奇怪的原因是它位于框架后面,在整个交互过程中会改变位置。

4

2 回答 2

2

不一定是您正在寻找的答案,但您应该记住这一点:

您要求相机以 280 x 380 的分辨率进行拍摄,这不是标准的 4:3 纵横比。

当您致电cam.setMode(280,380,20);文档时,Flash 会尝试将相机分辨率设置为您的规格,如果相机不支持该分辨率,它将尝试找到匹配的分辨率。因此,您可能会或可能不会获得此实际分辨率。

setMode()有第四个参数,可以禁用此功能。阅读相关文档,以便了解其中的含义:)

然后在 380x380 的 Video 对象中显示视频。所以我希望图像在水平方向上被拉伸(b / c原始来源只有280)。

目前尚不清楚为什么会有不同的行为:您是说运行应用程序的调试版本可以工作,但是当您导出发布版本并运行时,它看起来很时髦?

最后,在scaleX = -1做什么?我记得这是我过去使用的某种漂亮技巧......但它的目的是逃避我:)

于 2012-05-24T17:55:55.723 回答
-1

是的,源代码会很酷。顺便说一句,我建议您在视频流运行后立即手动设置 video.width 和 video.height 属性。这将强制凸轮以正确的尺寸显示。

于 2012-05-19T10:47:08.990 回答