我有一个简单的Flash应用程序,它显示用户的网络摄像头和包含它的小HTML。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>Camtest</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script src="https://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js"></script>
</head>
<body>
<div id="mySWFApplication">
<p>AlternativeContent</p>
</div>
</body>
我正在使用SWFObject将我的Flash应用程序嵌入到DOM
中swfobject.embedSWF("mySWFApplication.swf", "mySWFApplication", "500", "500", "9.0.0");
在SWF应用程序中,我选择了我的相机并授予其访问权限(网络摄像头LED变为绿色)
在某些时候,我想从DOM中删除对象以释放相机:
swfobject.removeSWF("myContent");
在Chrome和FF中,一切都很好。网络摄像头已经发布(LED变暗),可以再次被其他应用程序使用。
但在Internet Explorer中,情况有所不同。尽管swf周围的div元素已从DOM中移除,但相机仍在使用中。
看起来SWF仍然存放在Internet Explorer的内存中。
目前唯一有帮助的是重新加载浏览器窗口。
我在IE中看到两种可能的解决方案来解决这个问题:
有没有其他方法可以在不依赖Actionscript或重新加载的情况下从内存中删除SWF?
答案 0 :(得分:1)
我认为释放摄像头的最佳方法必须是来自闪光灯本身,添加执行此操作的动作:your_video_player.attachCamera(null);
然后您可以使用按钮或{ {1}}和javascript。
如果您无法触摸swf,您还有其他两种方式:
1 - 将您的swf页面显示为 iframe ,然后您可以将其卸载(iframe)。
2 - 您可以将swf页面加载到弹出窗口。