在flash as3网络摄像头如何在运行时获取新连接的网络摄像头名称?

时间:2017-01-30 15:12:32

标签: actionscript-3 flash camera webcam video-capture

我有一个基于闪存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将返回先前连接的文档摄像头名称,而不是返回新的文档摄像头名称。

要获取新文档网络摄像头名称,我必须重新启动我的应用程序。

但我不知道如何在运行时获取新连接的文档摄像机名称,所以如果有人知道如何在运行时获取新连接的文档摄像机名称,请帮我解决。

1 个答案:

答案 0 :(得分:1)

你很可能无法解决问题:

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/media/Camera.html#getCamera()

“扫描摄像机的硬件需要时间。当运行时找到至少一台摄像机时,硬件不会在播放器实例的生命周期内再次扫描。但是,如果运行时没有找到任何摄像机,它将扫描每次调用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列表。你可能想尝试一下。