我的工作:
前期:
1. Scratch创作器项目
2. Scratch作品分析服务
后期:架构组
1. 公共组件项目:
登录组件,WASM加解密组件/MD5,发送短信组件,滑动验证组件,上传组件,
标准化:jenkins,sentry,nexus npm私有库
1. WASM签名 , MD5签名,AES加解密,sb3,m3u8加解密
2. 发送验证码
3. 无痕验证,滑动验证
4. 文件上传组件:无界面,oss,网宿云存储,七牛云存储。封装统一的API,peerDependency
2. 负责直播客户端项目
--- 解决的是状态一致性问题
1. 多端状态管理同步。单一数据源原则。发送Action,操作状态和结果状态分离。服务端状态整合计算。
2. 频繁状态操作的防抖。
3. 客户端开发流程
4. 视频流补偿机制。采用屏幕截图上报的方式
遇到的问题 :
1. 学生看不到老师头像,
2. 老师看不到学生共享桌面
二. Scratch创作器
1. 游戏引擎性能优化
2. 涉及到的知识点比较多,动画,声音,图形编辑器。
3. Canvas Pool ,解决过多的canvas原色,在移动端ios设备上渲染不出来的问题。
4. 复杂SVG在移动端的支持。固定画布大小,将svg转成位图模式。
5. 凸多边形,碰撞检测算法。
6. 抽象基础组件,支持快速完成定制
目前小码王的Scratch环境是业界定制的最好的。包括:兼容性,性能(游戏播放时的卡顿等问题的解决)
七。 Scratch 播放器优化的内容:
一. 播放作品的流畅度度
1. 碰撞检测算法优化
1. 凸多边形算法优化:利用缓存,避免重复计算凸多边形的边界
2. 颜色碰撞算法优化:定期内存回收,长期不用。
的颜色内存数据从内存中清除。减少内存占用。
二. 作品的兼容性
中文字体的兼容性
SVG渐变效果
文字位置的兼容性
复杂SVG图片移动端兼容:避免重复重复绘制SVG,提前利用canvas将SVG转换为位图
三. 移动端低配置设备的支持, 针对性的解决问题。
1. 减少内存消耗
2. 降低渲染时资源分辨率
3. 解决内存泄漏问题
四. 内置屏幕录制功能
1. 麦克风和平模播放的声音合成 RecordRTC
2. 声音流与Canvas流合成
3. 获取音频流的音量信号,动态显示音量的波动变化,500毫秒刷新一次
五。其他关键词:骨骼动画, 球体,AABB 轴对其包围盒,OBB, K-DOP
六。使用WebWorker解决sb2文件解压缩,页面卡顿的问题。