Trae目前的能力边界和局限-远程桌面测试

201 阅读4分钟

前言

最近掘金Trae的推广满天飞,我寻思我是不是被淘汰了。本着拥抱变化的原则用一用,看看是不是我不懂,AI也能帮我干活了。刚好最近用免费的Todesk远程工具感觉分辨率太模糊了,想自己寻思能不能自己用WebRTC做一个,好好好!生命在于折腾,我直接上去就开干,不讲武德!

image.png

开工

环境的安装我就不说了,掘金头顶的广告大家想必都看到了,点进去我们就能找到链接下载,我们直接快进到项目搭建。

image.png

啪的一下,很快啊!马上给我整出了一堆代码,好好好,但我不知道要怎么运行代码(我不懂swift),先问问他,看看怎么应付我的出招

image.png

好好好,都帮我准备好了,我们按照他的流程走走,执行命令走起

swift build && swift run

image.png

哦吼,不出意外是出意外了,终端报错了,看看接下来怎么办

image.png 点击报错终端,右上角有一个添加到对话,我们直接点击这个按钮,然后回车

image.png

image.png

。。。。这体验说起来还真不错,异常都可以帮我分析做修正了,这用户体验还是非常的nice呀。但是还是有点小瑕疵,一个异常修复完了,构建还有异常,因为我不懂swift,我想着先让他帮我处理吧。接下来就是一路报错,一路回车修复,哎~,突然程序就没有报错了,跑起来了。

image.png

mac顶部有屏幕被采集的提示了,但是我这个是一个远程桌面程序,他处于后台运行的时候我是不清楚数据是否正常的。照葫芦画瓢,我们接着问

image.png

可以的,我跑起来后,确实日志打印了相应的数据,但是因为没有保留现场,这里就没有截图了,但是我想看到屏幕录制后的数据,嘿嘿嘿,我又来提需求了

image.png

看起来好像问题不大,跑起来看看

image.png

确实是有说法,有求就有应。好了,我都以为他能真的帮我干活了,我要开始严格起来了

image.png

image.png

哦,看起来有模有样的,我当真了,好,跑起来试试,报错了,还好,意料之中,按照之前的步骤,我们尝试将终端的异常抛给AI来处理处理,但是他无法解决这个问题,就是一直循环给出同样的解决方案,接下来两天我都困在这里了。

image.png

调用VTCompressionSessionEncodeFrame进行编码H264视频帧的时候报错了信息

Failed to encode frame with error: -12902

这个异常,其实是调用的钩子错了,但是我前面太相信他了,一直没往这个方面想,直到我花了两天时间入门了Swift,又大量翻阅了Mac的官方文档和各个开源仓库,才发现这个问题,还是有所局限! 并且AI在组合调用这些代码的时候算不上理解这些调用的第三方库,怎么说呢?

其实这里的H264Encoder编码类里面H264的编码逻辑已经包含在WebRTC的库里面了,不需要再额外写了,但是他不理解,还是写了,之后注入到库里面,这已经不是脱裤子放屁,一言难尽。

虽然笔者第一次接触swift,但是WebRTC的内容却比较熟悉,所以能发现这样的愚蠢的问题,但是假设我是一个完全的外行人呢?大概率就只能对这坨代码望洋兴叹了,好了不装逼了,我们接着往下瞧瞧。

image.png

上面的这个问题解决了之后呢,我们的推流就可以算是正常了,后面就都是小问题了,我们写了个简单的示例界面,和信令服务。然后我们就可以将服务联调起来了。 我们看看最后效果。

image.png

我们成功在浏览器展示了我们电脑桌面的视频流。这样我们就完成了这个远程桌面工具的第一步,下篇文章我们研究如何将浏览器的指针事件传递给远程桌面完成操控

总结

目前Trae已经具有很强的协助性,基本已经可以满足一个基础程序员对工作的协助,但是要想很好的使用,作为使用者,可能还是需要有一个较强的解决能力和对代码发展的洞察性。以他目前的能力来说,可以解决很多简单的问题,写几个demo界面是不在话下,但整体方案还是差了一点,需要人为干预,但是未来可期。总之还是要积极的拥抱变化,但也没必要过分焦虑,积极的生活就好。

image.png