笔记五:小程序、视频与技术翻译

235 阅读4分钟

一、小程序解决了什么问题?

介于HTML5(体验方面弱势)与Native APP(开发、维护成本高)之间的一种技术方案,取得了平衡点;可以使用一些受限制的Native接口。

二、小程序的技术栈

1、HTML5(wxml)、CSS(wxss)、JavaScript等原生Web前端技术

2、Node.js

3、移动端适配知识

4、HTTPS/HTTP协议

5、OAuth2(认证方案)

三、主流的小程序平台

微信、支付宝、百度、抖音头条、京东、钉钉、360(基于PC)

四、微信小程序入门

1、了解文件结构

(1)app.json:整个小程序的配置信息,pages描述页面路径;window字段定义了顶部的相关定义。

(2)project.config.json:定义了微信开发者工具配置。

(3)page下的.json:定义了该page的个性化配置。

(4)sitemap:定义了搜索引擎的收录。

(5)wxml:魔改的HTML,有一些类似于Vue语法,建议使用声明式编程而不是命令式编程。

(6)wxss:精简后的css,提供了rpx单位,支持全局与局部定义。

(7)js:负责逻辑交互,提供了APP、Page、Component等构造函数,支持调用微信暴露的API。

五、双线程模型


适用于移动端等算力局限的平台,渲染层和逻辑层位于两个进程,JS一般不能操作DOM和BOM,这保证了安全,但也使得UI与逻辑的同步更新变为进程通信,即转换为异步操作。

六、视频数据


帧间的压缩可以联想大学中学到的各种压缩方法…

七、传输协议

以后可以去了解这方面的内容,感兴趣的还有包括开源库flv.js的实现。

八、播放器的基本原理

1、需要去解协议(数据的加载展开)

2、解封装(按照不同的容器类型,解复用)

3、解码(还原显示器可以利用的数据)

4、渲染(声音、画面、调用硬件)


八、播放器的基本原理

1、需要去解协议(数据的加载展开)

2、解封装(按照不同的容器类型,解复用)

3、解码(还原显示器可以利用的数据)

4、渲染(声音、画面、调用硬件)

九、判断浏览器端视频兼容情况

调用video.canPlayType(),传入格式和解码字符串,返回的是字符串结果(在未知解码方式的情况下,浏览器只能猜测是否支持)

十、交互式视频场景

可以了解一下B站之前的源码实现(好像不是通过跳转进度条,而是通过播放相应的短视频,原理应该不复杂)

十一、了解判断视频是否播放

video对象有一个叫 paused 的属性来判断视频是否在播放(如果为true说明正在暂停中,反之);

另外还提供了两个方法来进行播放和暂停的操作:1、play() 方法可以播放视频;2、pause()方法暂停播放

十二、视频快进快退

video`有一个属性叫 currentTime,可以用来设置视频当前的时间。我们只要修改这个属性就可以了,例如:

video.currentTime += parseFloat(this.dataset.skip);

同时视频的currentTime属性更新的时候还会触发timeupdate事件。

十三、视频音量

volume 属性设置或返回音频/视频的当前音量。

十四、视频播放速度

playbackRate 属性设置或返回音频/视频的当前播放速度。

十五、视频的总长度

duration 属性返回当前音频/视频的长度,以秒计。

如果未设置音频/视频,则返回 NaN。

传入event参数,判断event.shiftKey的布尔值。

十六、点播直播的类型选择


十七、Web播放器解决方案


十八、待实践的插件组合

Eslint+prettier

思考:结合webpack又该怎么做呢?

十九、技术翻译的意义

1、翻译技术文章有助于学习新技术思想。

2、翻译技术文档有助于掌握标准和工具。

二十、技术翻译的标准

准确、地道、简洁,追求意译,不要直译。

二十一、技术翻译的驱动

技术翻译要坚持技术的驱动,先积累技术名词,在翻译过程中代码先行,通过代码来理解,多理解native的表达