今天就同事提出关于网页视频功能的实现问题,到家以后苦思冥想后决定根据自己的思路试验一下,果然简陋的视频功能就出炉了,如下代码如有勘误、写错的地方请指正,临时工代码也请各位看客见谅。
例子有很多不足,我是将image的base64l整个送到node然后派发给各个客户端,数据量有点大,希望这方面有人能指点我一下谢谢。
准备知识(注url不是官方的,是我写例子是看的)
2、 canvas
3、安装nodejs及ws模块
大概思路:
1、根据浏览器相关的api获取媒体流,getUserMedia在各个浏览器api名字不一样,还有那些版本支持可以找相关文档
代码:
经过上一步骤基本上网页上已经呈现出来您视频头所捕获的图像了
2、 让canvas绘制视频头捕捉的图像
经过上一步骤网页就会看到一个视频头步骤的头像,一个canvas动态绘制的图像
3、既然本地已经没有问题下,那么就让其他人跟我一起视频吧
在我最开始的时候我想着架php服务器,轮训的方式请求去推和拉下来一针一针的图片,但是每次请求和服务器要处理下来开销很大,所以替代的当然是现在比较流行的websocket
当然由于本人没了解过websocket所以也不能说websocket对于这个例子有什么优势。我只是听同事说这个比用笨重的服务器处理好,我就本着看看了解一下的态度,写了下面几行生硬的代码。
服务器端代码:
客户端代码:
基本上告一段落。
下面是全部代码:这里有一些我还没做完和一些其他想法,微困就咱不整理了,我就粘出来污染一下大家的眼睛吧
再改,文件传输协议、数据校验、二进制处理