gpt4 book ai didi

Android 'Smart Display' 和 AIR/相机交互问题

转载 作者:行者123 更新时间:2023-11-30 03:27:26 26 4
gpt4 key购买 nike

为了演示,我正在尝试使用相机和一些运动跟踪 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 像素正方形)视频流占据屏幕。

它发生的图像... enter image description here

非常感谢任何帮助,谢谢

最佳答案

问题可能出在您使用 setMode() 方法传递给相机的值。您正在尝试将相机设置为在舞台的宽度/高度处进行拍摄。

相机可能没有这样的捕获分辨率,并且作为 documentation for setMode()声明,它将尝试找到与您指定的内容接近的内容:

Sets the camera capture mode to the native mode that best meets the specified requirements. If the camera does not have a native mode that matches all the parameters you pass, the runtime selects a capture mode that most closely synthesizes the requested mode. This manipulation may involve cropping the image and dropping frames.

现在,您理所当然地认为 Flash 选择的分辨率比屏幕截图中显示的分辨率大。但是考虑到无数的相机设备/驱动程序,这可能在您的情况下效果不佳。

您可以先尝试使用更典型的分辨率来捕获视频:480x320、640x480、800x600 或最多 1024x768。网络上的大多数应用程序可能使用第一或第二捕获分辨率。

所以改变:

camera.setMode(stage.stageWidth, stage.stageHeight, 30, true);

收件人:

camera.setMode(640, 480, 30, true);

请注意,您可以以任何尺寸显示视频,但您可以使用的捕获分辨率取决于您的相机硬件/驱动程序/操作系统/等。典型的分辨率具有 4:3 的宽高比并且相对较小(不是屏幕/舞台的完整尺寸)。您使用的捕获分辨率会影响视频质量和流式传输视频所需的网络带宽量。通常(对于流式传输),您不想使用大捕捉分辨率,但它在您的 Action 捕捉用例中可能并不那么重要。

关于Android 'Smart Display' 和 AIR/相机交互问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18020997/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com