我有一个基于闪存as3的网络摄像头录像机发布网络摄像头视频流,为此我使用以下代码:
var camera:Camera = Camera.getCamera(0);
var arr:Array = Camera.names;
if(camera != null)
{
videoWidth = topBorderContainer.width;
videoHeight = topBorderContainer.height;
camera.setMode(videoWidth, videoHeight, 30, false);
camera.setQuality(0, 100);
if (camera)
{
videoDisplay.videoObject.attachCamera(camera);
}
}
但问题是,如果我在运行时连接新的文档摄像头并运行我的网络摄像头工具,则Camera.names
将返回先前连接的文档摄像头名称,而不是返回新的文档摄像头名称。
要获取新文档网络摄像头名称,我必须重新启动我的应用程序。
但我不知道如何在运行时获取新连接的文档摄像机名称,所以如果有人知道如何在运行时获取新连接的文档摄像机名称,请帮我解决。
答案 0 :(得分:1)
你很可能无法解决问题:
“扫描摄像机的硬件需要时间。当运行时找到至少一台摄像机时,硬件不会在播放器实例的生命周期内再次扫描。但是,如果运行时没有找到任何摄像机,它将扫描每次调用getCamera。如果相机存在但被禁用,这将很有用;如果您的SWF文件提供了一个调用getCamera的Try Again按钮,则Flash Player可以找到相机而无需用户重新启动SWF文件。“ p>
Flash Player可能将Workers(http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/system/Worker.html)视为单独的Flash Player实例,因此新的Worker可以访问更新的Cameras列表。你可能想尝试一下。