之所以写这篇文章,主要是因为组长给提的一个新的需求——使用浏览器调用电脑的摄像头,来实现即时拍照的功能。在网上查了很多资料,由于这样那样的原因,最终选择了使用flash插件来调用pc的摄像头。当然,这个需求是基于B/S架构的,因此,就在想怎么把它嵌入到前端的HTML页面中。

题外话

当然,这里还没有考虑到封装,主要是先以实现为目的,后续工作再根据业务进行抽象,封装成通用的组件。好了,废话不多说,看重点。

嵌入插件

使用 object 和 embed 标签

代码展示

codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0"

width="490" height="390" id="Untitled-1" align="middle">

type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />

这种方法用到的是 Object 和 Embed 标签,可以看到 object 的很多参数和 embed 里面的很多属性是重复的。浏览器兼容性,有的浏览器支持 object,有的支持 embed,这也是为什么要修改 Flash 的参数时两个地方都要改的原因。这种方法是 Macromedia 一直以来的官方方法,最大限度的保证了 Flash 的功能,没有兼容性问题。

但现在来看,它还是存在很大问题的。

首先,无法通过验证,由于为了兼容性而嵌入的 embed 标签是不符合 W3C 的规范的。当然,如果你不在乎什么规范不规范,另当别论。

其次,微软由于种种原因,在 sp2 后限制了 IE 的 ActiveX 的使用模式,就是在页面中的 ActiveX 有一个虚框,需要用户点击一次才能正常交互。Flash是作为一个 ActiveX 嵌入到网页中的,所以它也会受牵连,只有通过 JS 嵌入 Flash 才能解决这个问题。

再次,没有 Flash 版本检测,如果版本浏览器的flash插件版本不够,或者不能正常显示你的 swf 文件,或者会弹出一个 ActiveX 的确认安装的框——这个框对很多用户来说是很恐怖的。

只使用 object 标签

代码展示

defqr.png

width="550" height="400" alt="" />

这种方法只用到了 Object 标签,其实也就是 Flash satay。由于没有了 embed 标签,可以通过验证,是标准的嵌入 Flash 的方法,浏览器兼容性也不错,看起来几乎完美,不过还是有问题的。

首先,需要一个 holder swf 来加载你的目标 swf 以保证 IE 中的 stream 能力,如果你需要通过 flashvars 来传参,或者和页面的 JS 交互,会很麻烦。

其次,和第一种方法一样,也会弹出一个ActiveX的提示框,没有版本检测。

再次,一些低版本的浏览器(如低版本的Safari等)不认同这种方式,对它的兼容性不好。

只使用 embed 标签

代码展示

这种方法只用到了 Embed 标签,对比效果来说,还是很不错的,浏览器的兼容性也还不错,都是可以加载的。当然,由于 embed 标签是不符合 W3C 的规范的,所以也不推荐使用这种方法。

使用JavaScript嵌入

使用 JS 来加载 Flash 插件,网上已经有很多的方法了,而且也有很多不错的 JS 插件供大家选择。我这里只拿 SWFObject 来简单的介绍一下。

首先,你需要下载一个 SWFObject 插件包,该插件包中包含一个 JS 脚本,这个是你需要引入的脚步文件。还包括两个 html 的例子,大家可以模仿一下。当然,你还可以去 SWFObject 的网站了解一下,网址请点击 这里 。

代码展示

swfobject.registerObject("myId", "9.0.0", "cam.swf");

Alternative content

效果图

结束语

对比这几种方式,我更推荐使用 JS 嵌入的方式来加载 Flash 插件,这种方式不仅能保证实现 Flash 的所有功能,同时在各浏览器的兼容性方面也都表现不错,并且 JS 还可以提供更多的扩展功能,更主要是可以被更多的人复用,减少不必要的冗余代码。

更多flash插件来调用pc的摄像头如何将它嵌入到TML页面相关文章请关注PHP中文网!

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

php镶入电脑网页,flash插件来调用pc的摄像头如何将它嵌入到TML页面相关推荐

  1. VUE调用pc端摄像头

    VUE项目调用pc端摄像头功能 (摄像头只可以用localhost启用项目访问,或者修改浏览器配置,底部有方法) 代码如下: <template> <!-- 原生摄像头-->& ...

  2. 支付宝电脑网页支付接口的调用

    本次调用支付宝:电脑网页支付方式 首先登陆支付宝开放平台,找到文档中心,下载官方demo 链接地址:https://docs.open.alipay.com/270/106291/ 打开下载好的dem ...

  3. 抖音电脑网页版上线 可在PC端发视频、点赞、看评论

    一直以来,大家想想要看抖音视频只能在手机进行,而在电脑端则需要安装安卓模拟器.现在,抖音电脑网页版正式上线,不仅支持看视频,还可以点赞.查看评论,以及分享视频. 进入抖音的官网可以看到,页面进行了改版 ...

  4. HTML 页面加载 Flash 插件的几种方法

    前言 之所以写这篇文章,主要是因为组长给提的一个新的需求--使用浏览器调用电脑的摄像头,来实现即时拍照的功能.在网上查了很多资料,由于这样那样的原因,最终选择了使用flash插件来调用pc的摄像头.当 ...

  5. 调用PC端、手机、平板摄像头拍照

    调用PC端摄像头拍照 HTML代码: <div id="android-camera"><input type="button" title= ...

  6. 导出已安装的插件_明明flash插件已安装,但是网页依然不能正常显示的解决办法...

    相信有很多朋友都遇到过一个问题,那就是自己明明已经安装了Adobe flash player,但是进入网页后有些网页并不能正常显示,例如我这里使用flash player测试页面进行测试,flash ...

  7. es中的xpack插件下载_ppt中插入flash动画工具-PowerPoint中插入Flash插件下载电脑版...

    PowerPoint中插入Flash插件是一款能帮助快速在PowerPoint中能插 Flash动画的插件工具,我们知道,有时在PowerPoint课件中为了更形象地说明问题,需要插入Flash动画. ...

  8. HTML网页调用海康摄像头,[FastVideo]Web Html5 无插件方式连接海康摄像头[2]

    [实例简介] 此程序可以在Web Html通过Url或者 JS的方式调用海康摄像头,不需要在客户机浏览器安装插件.可以安装为服务,为Web提供后台服务. [实例截图] [核心代码] FastVideo ...

  9. js判断当前电脑是否安装flash插件

    if (!testingFlash()) {dialog("您的浏览器还没有安装flash插件或未允许本站运行,导致上传按钮无法加载,请检查flash插件后重试!");}/*** ...

最新文章

  1. 20家股东联名施压,要求贝佐斯停止向警方出售面部识别软件
  2. C#高级编程----错误和异常的总结
  3. 阿里巴巴启动2017全球创客大赛 四大洲共设25个赛区
  4. Vue 消除Token过期时刷新页面的重复提示
  5. springcloud 之 路由网关 zuul
  6. Openstack Havana的两个排错过程
  7. 1001.双系统互联的坑
  8. flutter 人脸检测_Flutter - 通过指纹和人脸识别认证
  9. mp3排序软件哪个好用_U盘加密软件_U盘防拷贝软件哪个好用?
  10. 面向对象三大特征:封装、继承、多态
  11. 钉钉开发系列(一)access_token的获取
  12. 明明管理失败,跟距离远有什么关系?
  13. Atitit.wrmi web rmi框架新特性
  14. B2C电商系统源码 在线商城源码
  15. Ubuntu22.04.1无法找到Ubuntu软件中心-Ubuntu Software
  16. 搭建直播平台什么样的服务器最合适?
  17. 全志A40I sdk wifi 模块移植说明文档
  18. 一个合格的java工程师应该必备的能力
  19. 牛逼啊!一顿火锅钱+一台旧手机 = 自主导航机器人?
  20. error LNK2019:和error LNK2001:

热门文章

  1. SteamVR_Skeleton_Poser的理解
  2. ――给中国青年学生的第三封信
  3. 鲁大师2021半年报手机排行:骁龙888旗舰霸榜,鸿蒙OS首次上榜
  4. 操作系统重要概念——并发性
  5. 如何修改网上下载word简历模板的照片
  6. 求长方形的面积和周长(Java)
  7. Javascript删除网页悬浮广告(一)
  8. adb指令通过uid控制_AB PLC | LOGIX 5000控制器之间通过MSG指令实现数据交互
  9. 正则表达式全部特殊符号
  10. linux初学 unit13 练习