@
angryfish 服务端,就是放在服务器上的那端负责定时间隔截图例如每 0.1 秒截图一次。
每张截图都是固定大小的,只要屏幕色彩位数不变,像素不变情况下。。。
如:
protobuf 定义结构如下,
message BytesMessage{
repeated bytes screenBytes = 1; //原始截图数据,第一次带全数据,第二次开始这里为空,节省带宽
map<int, uint32> screenChangedMapIntByes = 2;//protobuf3 没有 uint8,uint8 足够表示,客户端那边转为 uint8 刷入到指定变化位置。用于记录截图那些出现了变化,如果只有第 10 、23[]byte 出现变化那么 screenChangedMapIntByes[9]=uint32(screenBytes[9]),screenChangedMapIntByes[22]=uint32(screenBytes[22])
}
//以上设计相对于截图然后将没有变化的位置全部置 0 传输中,在屏幕变化少于一半的情况下是优势的,但是当屏幕变化较大可以采用没变化位置置 0 传输让客户端自己对比上一张截图数据实现更新。。。
//还能压缩一下再传送,这个自己代码中测试。。。
根本不需要其他第三方库或者 sdk 之类。。。完全自己完成所有。。。