问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

如何用HTML5 在网页内显示PC的实时视频

发布网友 发布时间:2022-04-21 05:57

我来回答

3个回答

热心网友 时间:2022-04-20 00:35

HTML5技术支持WebApp在手机上拍照,显示在页面上并上传到服务器。这是手机微博应用中常见的功能,当然你也可以在其它类型应用中适当使用此技术。
  1、 视频流
  HTML5 的 The Media Capture(媒体捕捉) API 提供了对摄像头的可编程访问,用户可以直接用 getUserMedia (请注意目前仅Chrome和Opera支持)获得摄像头提供的视频流。我们需要做的是添加一个HTML5 的 Video 标签,并将从摄像头获得的视频作为这个标签的输入来源。
<video id=”video” autoplay=”"></video>
<script>
var video_element=document.getElementById(‘video’);
if(navigator.getUserMedia){ // opera应使用opera.getUserMedianow
navigator.getUserMedia(‘video’,success,error); //success是回调函数,当然你也可以直接在此写一个匿名函数
}
function success(stream){
video_element.src=stream;
}
</script>
此时,video 标签内将显示动态的摄像视频流。下面需要进行拍照了。
  2、 拍照
  拍照是采用HTML5的Canvas功能,实时捕获Video标签的内容,因为Video元素可以作为Canvas图像的输入,所以这一点很好实现。主要代码如下:

var canvas=document.createElement(‘canvas’); //动态创建画布对象
var ctx=canvas.getContext(’2d’);
var cw=vw,ch=vh;
ctx.fillStyle=”#ffffff”;
ctx.fillRect(0,0,cw,ch);
ctx.drawImage(video_element,0,0,cw,ch,0,0,vw,vh); //将video对象内指定的区域捕捉绘制到画布上指定的区域,可进行不等大不等位的绘制。
document.body.append(canvas);

  3、 图片获取
  从Canvas获取图片数据的核心思路是用canvas的toDataURL将Canvas的数据转换为base64位编码的PNG图像,类似于“data:image/png;base64,xxxxx”的格式。
var imgData=canvas.toDataURL(“image/png”);

这样,imgData变量就存储了一长串的字符数据内容,表示的就是一个PNG图像的base64编码。因为真正的图像数据是base64编码逗号之后的部分,所以要让实际服务器接收的图像数据应该是这部分,我们可以用两种办法来获取。
  第一种:是在前端截取22位以后的字符串作为图像数据,例如:
var data=imgData.substr(22);

  如果要在上传前获取图片的大小,可以使用:
var length=atob(data).length; //atob 可解码用base-64解码的字串

  第二种:是在后端获取传输的数据后用后台语言截取22位以后的字符串(也就是在前台略过上面这步直接上传)。例如PHP里:
$image=base64_decode(str_replace(‘data:image/jpeg;base64,’,”,$data);

  4、 图片上传
  在前端可以使用Ajax将上面获得的图片数据上传到后台脚本。例如使用jQuery时可以用:
$.post(‘upload.php’,{‘data’:data});

在后台我们用PHP脚本接收数据并存储为图片。
function convert_data($data){
$image=base64_decode(str_replace(‘data:image/jpeg;base64,’,”,$data);
save_to_file($image);
}
function save_to_file($image){
$fp=fopen($filename,’w');
fwrite($fp,$image);
fclose($fp);
}

  以上的解决方案不仅能用于Web App拍照上传,也可以通过Canvas的编辑功能函数提供图片编辑,例如裁剪、上色、涂鸦、圈点等功能,然后把用户编辑完的图片上传保存到服务器上。
  在还在不断补充修正的HTML5的驱动下,Web App与Native App之间的距离将越来越小。在可预见的不远的未来,越来越多老的和新的开发项目必将会迁移到WEB应用上来。

热心网友 时间:2022-04-20 01:53

这需要专门的服务器和插件 html5没有这功能

热心网友 时间:2022-04-20 03:28

HTML5是一系列新标签、新功能和新标准的集合,文档的基础格式很简单:
<!doctype html>
<html>
<head>
<title>HTML5 Page</title>
<meta charset="utf-8">
</head>
<body>
your contents
</body>
</html>
至于如何使用canvas、websocket、audio、geolocation等功能,三言两语实在说不清楚,还请你百度下html5,有很多教程。如果想买书,《Head First HTML5 Programming》作为入门是很不错的
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
纹身纹在不容易被人看到的地方,比如腰的上面一点,人际交往应该没什么... 我想办信用卡,工作证明这样写可以不? 工作证明 兹有我单位 办理信用卡需要验证上班公司的信息吗?办卡需要什么条件? 没有固定单位上班能申办信用卡吗? 少年包青天3上三大神器一案中谁是凶手? 仙人山服务区有早点吗_防城港3路公交车路线 山西队迪亚洛是哪个国家的 现在机票的飞机建设费和燃油费 贾府是一座大宅子黛玉走了哪些地方 一个长方形操场长110米宽90米把它画在比例尺上1:100的图纸上,长和... wordpress中做个视频展示页面,不知道用什么代码调用 java实现视频显示在页面上 网页设计时如何设置一个短视频优先于网页前面显示,就是点一下视频之后再显示网页界面,谢谢啦!!! cgi中c语言如何实现网页显示视频? flash视频播放器播放的视频怎么在网页中显示出来。 浏览器打开网页视频显示不出来 电脑液晶坏了怎么办 网页不能显示视频,怎么解决 如何直接在网页上显示视频啊 404 Not Found 在网页中插入图片和视频时如何让网页快速显示出来 如何将服务器上的视频展示到页面上? 如何把视频调到网站首页来显示? 早餐家常菜谱大全及做法大全集 适合儿童的早餐食谱 破壁机营养早餐食谱大全 早上吃什么好菜谱大全 营养早餐的菜谱 自制早餐食谱大全及做法 在网页中插入图片和视频时如何让网页快速显示出来 为什么我网页上看视频显示不出视频来 如何在第二台显示器上显示网页中的视频 为什么视频网站全打不开,网页无法显示 为什么网页上的视频显示不出来? cad阵列怎么用 Revit软件有没有学习论坛,我想学习这个,谢谢了。 为什么revitbbs论坛上不去 revit模型可以在哪个网站下到,求给网址。谢谢 Revit和CAD的区别 Revit结构、Revit建筑软件主要区别是什么 404 Not Found BIM revit2014 安装的时候出现这种情况怎么办? 请问revit 速博包什么?怎样使用?谢谢了,大神帮忙啊 REVIT怎么画空间网架结构 Revit 的幕墙嵌板只能嵌入横平竖直的嵌板吗? 如何在revit中设置泳池? 为啥电脑下载不了revit2018,只能安装2020哪个好 revit建模与su建模哪个快 revit2018建模用3DMax哪个版本渲染
  • 焦点

最新推荐

猜你喜欢

热门推荐