js进阶六:JSON,离线存储,WebSocket,画布,音频/视频

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js进阶六:JSON,离线存储,WebSocket,画布,音频/视频相关的知识,希望对你有一定的参考价值。

参考技术A

sessionStorage 数据创建到浏览器页签关闭
localStorage 数据创建到用户手动清除,或者使用clear(), removeItem(key)删除

sessionStorage 条件:同一个浏览器页签
localStorage 条件:相同域名(协议,域名,端口)的不同网址

频繁操作且安全性不高的数据

增加一条数据

根据key值获取一条数据

根据指定的key删除一条数据

清除所有数据

获取指定索引位的key值

数据项个数

宽高不要写单位,宽高不要在css中设置

默认从左到右,从上到下绘制,宽高为负值的时候往返方向绘制

设置填充颜色(可设置渐变色)

合法的颜色值,rgba(255,255,255,.5)

设置描边颜色(可设置渐变色)

填充矩形

设置画笔宽度

描边矩形

开始绘制新的路径,相当于抬起画笔

把路径移动到画布中的指定点,不创建线条

添加一个新点,然后在画布中创建从该点到最后指定点的线条

设置或返回线条末端线帽的样式

设置或返回两条线相交时,所创建的拐角类型

创建从当前点回到起始点的路径,创建线条

绘制已定义的路径

清除指定区域内的像素

创建弧/曲线(用于创建圆形或部分圆)

绘制两条切线之间的弧线

设置或返回文本内容的当前字体属性

设置或返回文本内容的当前对齐方式,水平对齐方式

可选值: center,start ,end,left,right

设置或返回在绘制文本时使用的当前文本基线

可选值: alphabetic ,top ,hanging ,middle , ideographic ,bottom

在画布上绘制文本

创建线性渐变(用在画布内容上)

创建放射状/环形的渐变(用在画布内容上)

设置或返回用于阴影的颜色

设置或返回用于阴影的模糊级别
paint.shadowBlur = 100;

设置阴影偏移

向画布上绘制图像、画布或视频

转换有叠加效果,如果之前有转换,会在之前转换的基础上再次转换

缩放当前绘图

旋转当前绘图

重新映射画布上的 (0,0) 位置

可选值:

设置或返回绘图的当前 alpha 或透明值

保存之前paint设置的样式

重新回到之前保存的样式

建立连接成功

接收服务器信息, even.data 包含返回的信息

发生错误

关闭通信

当音频元数据加载完毕时触发。

播放过程中实时触发

声音改变时触发

在网页上用websocket播放RTSP实时流 性能优化 进阶方案

参考技术A 最近发现有的网站上,显示的视频流很丝滑,而且在多路情况下不会出现页面卡死。 总结了一下所使用的技术。

后端推消息,把数据转为json字符串,通过websocket推给前端, 图片使用base64编码


"channel": "camera_1",
"url": "data:image/png;base64,iV"


前端接收到数据后,解码,使用img 标签展示 图片base64

客户端的传输方式改为 ArrayBuffer方式。将channel、图片文件流等信息拼接为二进制数据。 通过websocket推送给前端
举例:
channel频道: camera_1 占两个字节;
图片: file文件流 占128字节
字节顺序 Little-endian

前端读取为ArrayBuffer, 通过视图操作,取出图片的二进制流,生成Blob对象
读取blob对象, 返回 URL格式的字符串(base64编码)以表示所读取文件的内容
前端img 标签 src 赋值为 base64 字符串,显示视频流图片。

以上是关于js进阶六:JSON,离线存储,WebSocket,画布,音频/视频的主要内容,如果未能解决你的问题,请参考以下文章

在网页上用websocket播放RTSP实时流 性能优化 进阶方案

离线存储 json 响应 iOS

如何在线保存/加载数据(使用 AJAX 和 JSON 存储数据)和离线(本地)

Python入门自学进阶——4--序列化和结构化数据

Delphi WebBrowser调用WebSocket 服务

如何在 Flutter 中直接持久化存储 JSON 数据以供查询和离线使用?