为了演示,我正在尝试使用相机和一些运动跟踪AS3类来检测ViewSonic智能显示器前的运动。我已经在其他Android设备上获得了应用程序和检测功能,但“智能显示器”给我带来了一些奇怪的问题。
很长一段时间内,有人可能会遇到这样的情况,但这是非常简单的摄像机设置代码,我将问题降到了以下几个方面:
var camera = Camera.getCamera();
camera.setMode(stage.stageWidth, stage.stageHeight, 30, true);
var video:Video = new Video(stage.stageWidth, stage.stageHeight);
video.attachCamera(camera);我的问题就在于"video.attachCamera“,因为某种原因,这个设备把这个功能当作”在右上角的一个小窗口中显示视频“,而忽略了所有其他代码,用空白的黑色控制屏幕,以及一个很小(可能是40x20 of平方)的视频流。
它的图像..。

任何帮助都非常感谢,谢谢。
发布于 2013-08-02 15:57:45
问题可能是使用setMode()方法传递给摄像机的值。你正试图将摄像机设置为在舞台的宽度/高度拍摄。
相机可能没有这样的捕获分辨率,正如setMode()文档所述,它将试图找到接近您指定的内容:
将相机捕获模式设置为最符合指定要求的本机模式。如果相机没有一个与您传递的所有参数匹配的本机模式,则运行时将选择一个最接近于合成所请求模式的捕获模式。这种操作可能涉及剪切图像和删除帧。
现在,可以肯定的是,您可以期望Flash选择一个比屏幕截图中显示的分辨率更大的分辨率。但是,考虑到大量的相机设备/驱动程序,这可能在你的情况下不太好用。
首先,您可以尝试W/更典型的分辨率来捕捉视频: 480x320,640x480,800x600,或者最多1024x768。网络上的大多数应用程序可能使用第一或第二捕获分辨率。
因此,改变:
camera.setMode(stage.stageWidth, stage.stageHeight, 30, true);至:
camera.setMode(640, 480, 30, true);请注意,您可以以任意大小显示视频,但是可以使用的捕获分辨率取决于相机硬件/驱动程序/OS/等等。典型的分辨率有4:3的纵横比,而且相对较小(不是屏幕/舞台的全部尺寸)。您使用的捕获分辨率影响到视频的质量和传输视频所需的网络带宽。通常(对于流),您的不希望使用大的捕获分辨率,但是在您的运动捕获用例中,它可能并不那么重要。
https://stackoverflow.com/questions/18020997
复制相似问题