我正在C#中创建一个非常基本的屏幕共享应用程序.无需遥控器.我只是希望用户能够将他们的屏幕广播到网络服务器.
我该如何实现? (任何指针在正确的方向将不胜感激).
它不需要高FPS.足够甚至可以更新5年左右.你认为只需将5秒钟的截图上传到我的网络服务器就足够了吗?
解决方法
我以前曾经写过关于
how remote screen sharing software works here的内容,它不是C#的具体内容,但它对这个主题有很好的基础性了解.该文章中还链接了您可能想要阅读的远程帧缓冲区规范.
基本上你会想要截图,你可以传输这些截图并在另一边显示它们.您可以保留最后一个屏幕截图并比较屏幕截图,以查看您需要发送的截图的哪些块.您通常会在发送数据之前进行某种压缩.
要进行远程控制,您可以跟踪鼠标移动并传输它,并在另一端设置指针位置.也是关于击键.
就C#压缩而言,您只需使用JpegBitmapEncoder,就可以使用Jpeg压缩创建您所需的质量的截图.
JpegBitmapEncoder encoder = new JpegBitmapEncoder(); encoder.QualityLevel = 40;
为了比较文件块,你可能最好在旧的块和新块上创建哈希,然后检查它们是否相同.您可以使用任何hashing algorithm您想要的.