应用flash软件来启用pc的摄像头怎样将它嵌入到

序言

之因此写这篇文章内容,关键是由于组长给提的1个新的要求——应用访问器启用电脑上的摄像头,来完成及时照相的作用。在网络上查了许多材料,因为这样那样的缘故,最后挑选了应用flash软件来启用pc的摄像头。自然,这个要求是根据B/S构架的,因而,就在想如何把它嵌入到前端开发的HTML网页页面中。

题外话

自然,这里都还没考虑到到封裝,关键是先以完成为目地,后续工作中再依据业务流程开展抽象性,封裝成通用性的组件。好了,空话很少说,注重点。

嵌入软件

应用 object 和 embed 标识

编码展现

拷贝编码
编码以下:

<span style="font-family:Microsoft YaHei;"><div style="margin-top:⑶0px;margin-left:⑴20px;">
<object classid="clsid:d27cdb6e-ae6d⑴1cf⑼6b8⑷44553540000"
codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0"
width="490" height="390" id="Untitled⑴" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="cam.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<embed src="cam.swf" quality="high" bgcolor="#ffffff" width="490" height="390" name="cam" align="middle" allowScriptAccess="sameDomain"
type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
</div></span>

这类方式用到的是 Object 和 Embed 标识,能够看到 object 的许多主要参数和 embed 里边的许多特性是反复的。访问器适配性,有的访问器适用 object,有的适用 embed,这也是为何要改动 Flash 的主要参数时两个地区都要改的缘故。这类方式是 Macromedia 1直以来的官方方式,最大程度的确保了 Flash 的作用,沒有适配性难题。

但如今看来,它還是存在很大难题的。

最先,没法根据认证,因为以便适配性而嵌入的 embed 标识是不符 W3C 的标准的。自然,假如你不在意甚么标准不标准,另当别论。

其次,微软因为种种缘故,在 sp2 后限定了 IE 的 ActiveX 的应用方式,便是在网页页面中的 ActiveX 有1个虚框,必须客户点一下1次才可以一切正常互动。Flash是做为1个 ActiveX 嵌入到网页页面中的,因此它也会受拖累,仅有根据 JS 嵌入 Flash 才可以处理这个难题。

再度,沒有 Flash 版本号检验,假如版本号访问器的flash软件版本号不足,或不可以一切正常显示信息你的 swf 文档,或会弹出1个 ActiveX 确实认安裝的框——这个框对许多客户来讲是很可怕的。

只应用 object 标识

编码展现

拷贝编码
编码以下:

<span style="font-family:Microsoft YaHei;"><div style="margin-top:⑶0px;margin-left:⑴20px;">
<object type="application/x-shockwave-flash data="c.swf?path=cam.swf" width="490" height="390">
<param name="cam" value="c.swf?path=cam.swf" />
<img src="defqr.png"
width="550" height="400" alt="" />
</object>
</div></span>

这类方式只用到了 Object 标识,实际上也便是 Flash satay。因为沒有了 embed 标识,能够根据认证,是规范的嵌入 Flash 的方式,访问器适配性也非常好,看起来基本上完善,但是還是有难题的。

最先,必须1个 holder swf 来载入你的总体目标 swf 以确保 IE 中的 stream 工作能力,假如你必须根据 flashvars 来传参,或和网页页面的 JS 互动,会很不便。

其次,和第1种方式1样,也会弹出1个ActiveX的提醒框,沒有版本号检验。

再度,1些低版本号的访问器(如低版本号的Safari等)不认同这类方法,对它的适配性不太好。

只应用 embed 标识

编码展现

拷贝编码
编码以下:

<span style="font-family:Microsoft YaHei;"><div style="margin-top:0px;margin-left:⑺0px;">
<embed id="cam" src="cam.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="450" height="350" name="webcam" align="middle" wmode="transparent" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="width=490&height=390&objid=cameradialog">
</div></span>

这类方式只用到了 Embed 标识,比照实际效果来讲,還是很非常好的,访问器的适配性也还非常好,全是能够载入的。自然,因为 embed 标识是不符 W3C 的标准的,因此也不强烈推荐应用这类方式。

应用JavaScript嵌入

应用 JS 来载入 Flash 软件,在网上早已有许多的方式了,并且也是有许多非常好的 JS 软件供大伙儿挑选。我这里只拿 SWFObject 来简易的详细介绍1下。

最先,你必须免费下载1个 SWFObject 软件包,该软件包中包括1个 JS 脚本制作,这个是你必须引进的步伐文档。还包含两个 html 的事例,大伙儿能够效仿1下。自然,你还能够去 SWFObject 的网站掌握1下,网站地址请点一下 这里 。

编码展现

拷贝编码
编码以下:

<span style="font-family:Microsoft YaHei;"><script type="text/javascript" src="swfobject.js"></script>
<script type="text/javascript">
swfobject.registerObject("myId", "9.0.0", "cam.swf");
</script></span>


拷贝编码
编码以下:

<span style="font-family:Microsoft YaHei;"><div style="margin-top:⑶0px;margin-left:⑴20px;">
<object id="myId" classid="clsid:D27CDB6E-AE6D⑴1cf⑼6B8⑷44553540000" width="490" height="390">
<param name="movie" value="cam.swf" />
<!--[if !IE]>-->
<object type="application/x-shockwave-flash" data="cam.swf" width="490" height="390">
<!--<![endif]-->
<div>
<h1>Alternative content</h1>
<p><a href="http://www.adobe.com/go/getflashplayer"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" /></a></p>
</div>
<!--[if !IE]>-->
</object>
<!--<![endif]-->
</object>
</div></span>

实际效果图
 
完毕语
比照这几种方法,我更强烈推荐应用 JS 嵌入的方法来载入 Flash 软件,这类方法不但能确保完成 Flash 的全部作用,另外在各访问器的适配性层面也都主要表现非常好,而且 JS 还能够出示更多的拓展作用,更关键是能够被更多的人复用,降低无须要的冗余编码。

软件免费下载详细地址:SWFObject