朋友们,我最近不是一直在捣鼓小软件嘛!手头这个叫TransDuck的音视频处理工具刚有点小爆的趋势,反馈意见里也是收到不少关于SaaS版本的问题,比如:

  • "翻译效果真的顶!但每次上传比较大的视频要等好久"(我:带宽太贵啦
  • "用网页校对和微调视频翻译像在摸鱼,能整个正经客户端吗?"(我:有道理,计划中

对于SaaS软件来说,虽然用浏览器就能丝滑上手,但遇到动辄上百M、甚至几个G的视频,让用户疯狂上传下载确实不讲武德。我这小水管服务器被薅到冒火星不说,用户盯着进度条干等的体验也属实下头。

其实,在做SaaS版本之前,DD就有过对客户端应用的思考:本地计算省带宽、断网也能用、还能避开浏览器沙盒限制...但每次想到要开发的时候,就有开始纠结用PyQt?Electron?还是Tauri?会不会花了很多时间学了一个,结果做一半发现某些想法实现不了,花了很多时间的又白费啦?就这样反反复复纠结了好久,一点行动都没!

但是,最近突然想着可以行动起来了!由于最近使用AI编程的频率很高,感觉对于这些自己不熟悉的领域,或许让AI来做能够得到奇效?就算失败了,也不会像以前那样从零开始学框架再进行开发那么费时。

所以,马上决定来波极限挑战:

  • 技能背景:熟悉后端开发、完全不会客户端开发
  • 辅助工具:腾讯云代码助手CodeBuddy
  • 挑战目标:实现一款跨平台的音视频处理客户端软件

这篇实测就带大家看看,一个从未接触过客户端开发的程序员,怎么用新工具去扩展更多可能性。

准备工作

  1. 安装VS Code:https://code.visualstudio.com/
  2. 在VS Code的扩展中搜索“腾讯云代码助手CodeBuddy”并安装插件

  1. 准备工程目录,新建一个文件夹,然后用VS Code打开

  1. 对工程目录做一些规划,这里我新建了两个目录分别是:
  • docs:用来放各个不同版本的需求文档,先在这里编写,然后再给CodeBuddy去执行
  • example:用来存放一些用于测试的音频和视频

需求编写

  1. 在docs目录下创建0.1.0.md文件
  2. 根据自己对第一个版本希望实现的功能、所要采用的技术栈、UI设计风格的要求等开发需求做详细的描述。比如,我这里写的要求:
实现一个跨平台的音频/视频处理桌面应用:TransDuck

# 技术栈

开发语言和框架:

- Node.js 22.15.0
- Tauri 2.0,前端框架选择Vue
- ffmpeg # 项目结构 - docs:项目需求文档
- example:测试用的音频、视频
- transduck-desktop:项目源码 # 前端框架与UI风格 1. 采用左右布局,左侧为功能菜单,右侧为功能操作区
3. 功能操作区上边为任务配置区,下边为任务执行进度和结果显示区
3. 支持多语言国际化配置,先实现中文和英文,后续再扩展其他语言的配置
4. UI主题采用Vue Admin Bootstrap # 功能模块 1. 音频格式转换 - 音频文件的支持范围:根据ffmpeg支持的所有音频均可支持
- 结果输出路径源文件同路径,转换完成后提示输出目录位置
- 转换过程需要显示进度条 2. 视频格式转换 - 视频文件的支持范围:根据ffmpeg支持的所有音频均可支持
- 结果输出路径源文件同路径,转换完成后提示输出目录位置
- 转换过程需要显示进度条 # 其他要求 1. 帮我完成项目初始化
2. ffmpeg集成:应用内置依赖、打包到应用中

配置CodeBuddy

在开始开发之前,按如下图所示,对CodeBuddy做一些配置:

把“自动运行”和“自动修改文件”开启,这样在Craft模式中发消息之后,CodeBuddy会直接帮我们进行开发相关的操作,比如:运行命令、修改文件等。

开发过程

  1. 把编写的需求内容复制到CodeBuddy下方的输入框内,模型选择default,

按“回车”开始!如下图,CodeBuddy在对我们的输入思考之后,先扫描当前项目内容,检查项目状态,再根据项目状态制定任务计划

在完成了计划制定之后,就马上开始执行了!如下图所示,由于项目是空的,所以CodeBuddy开始根据我们需求中写的技术栈要求和项目结构开始创建目录、初始化开发框架的项目结构等操作。

这里我们只需要等待AI一步步做,如果有需要确认的,就操作一下,不然看着就行。当CodeBuddy完成当前任务之后,会做当前任务的总结,并且给出下一步的任务建议。

这里,我们可以选择继续执行任务,也可以取消继续执行,执行其他任务,比如启动应用,看看是否可以跑起来。DD建议如果这一步做的任务很多,建议先跑一下,看看是否有报错,如果有报错就先及时处理一下。

由于DD从来没用过Tauri,也不知道如何运行程序,所以就让CodeBuddy帮我启动项目,看看是否有报错。于是CodeBuddy就开始执行命令启动应用(这里我也顺手学会了Tauri项目的启动_)。

如图所示,在执行过程中,CodeBuddy发现有报错信息,并且马上开始自动修复:

再修复完问题之后,然后可以继续让CodeBuddy执行之前还没完成的任务,就这样不断重复:提交任务、启动应用、修复错误,逐步推进开发。

下面是DD这次实践的几个阶段过程和成果:

  1. 初始化项目完成,初步实现界面布局

  1. 测试功能是否可用,是否有遗漏。这一步是耗时最多的,主要遇到不少错误,比如:
  • 点击选择文件没有效果
  • 输出格式组件是输入框,不好用
  • 点击转换按钮不执行转换任务
  • 转换结果输出后,点击打开不会跳转到对应目录

遇到这些问题的时候,如果没有报错信息,就用语言描述告诉CodeBuddy,让AI去处理。如果有报错,就直接复制报错信息告诉CodeBuddy去处理。

这里DD卡了比较久一步是由于Tauri 2.0比较新,可能AI的知识不是很信,所以一开始生成的内容有不少错误,不过比较意外的是,经过多次尝试,最后它还是完成了错误的修复:

  1. 在让AI辅助修复了所有问题,并让功能可用之后,对一些细节做优化,比如:
  • 增加图标元素,让界面更和谐
  • 优化输出格式的组件样式
  • 增加“关于”信息
  • 调整国际化语言选择的样式
  • 处理进度条、处理结果的样式

注意事项

在用CodeBuddy辅助编码或者处理错误的时候,特别要注意的一个点:不要一直用一个会话。

当一个会话处理较多内容之后,建议如下图点击“+”按钮新建会话来处理请求。

不然可能会一直处理好任务,甚至出来一些破坏现有代码的情况,比如会像下图这样给加入很多奇怪的内容:

其他能力

CodeBuddy除了可以帮忙写代码之外,还能帮忙自动生成commit信息,只需要点击下图中的这个按钮即可:

另外,MCP市场也是个不错的特性,你可以方便在这里安装外部服务来增强你的开发工作流:

小结

这波挑战前前后后总共花了我大概4小时左右完成。如果按照以往的模式,先阅读Tauri的教程文档,搭建环境、调试、开发、测试,估计可能最快也要几天时间吧。这次通过CodeBuddy的辅助,大大缩短了学习和开发时间。

同时,在AI辅助编码的过程中,其实我也逐步地学习了Tauri框架的相关内容,根据AI给出的构建命令、执行命令、以及修复错误的过程,也是对Tauri在一步步的学习。这种体验还是非常棒的,除了完成任务,还能学习新技术。

最后,这里开发的工具将会以开源的方式提供,并且计划是持续维护的,后续会增加更多音频、视频的处理能力进来。

感兴趣的小伙伴也可以关注,觉得不错的话,可以帮忙点个Star,项目地址如下:

挑战零基础用CodeBuddy做一款音视频处理软件的更多相关文章

  1. unity零基础开始学习做游戏(三)鼠标输入,来个虚拟摇杆怎么样?

    -------小基原创,转载请给我一个面子 现在移动游戏越来越火,大家都拿手机平板玩游戏,没有键盘和手柄输入,所以就不得不看看虚拟摇杆怎么搞?(小基对于没有实体反馈不是很喜欢呢) 首先要清楚,鼠标操作 ...

  2. unity零基础开始学习做游戏(五)看看你的完成度,进度条了解一下?

    -------小基原创,转载请给我一个面子 上回书说道,英雄和魔王都做完了,子弹也能发射了,就是不知道啥时候能干死魔王.那小基得做个血条来展示一下,他离死不远了(•౪• ) 其实血条也可以看作是进度条 ...

  3. unity零基础开始学习做游戏(二)让你的对象动起来

    -------小基原创,转载请给我一个面子 小基认为电子游戏与电影最重要的区别就是交互,如果电子游戏没有让你输入的交互功能的话,全程都"只可远观,而不可鼓捣"的话,你可能是在看视频 ...

  4. unity零基础开始学习做游戏(一)为了实现你的游戏,你需要提前做的准备工作

    -------小基原创,转载请给我一个面子 正所谓,工欲善其事,必现准备好电脑.接下来跟着小基一步一步来搭建你的开发环境吧 1.下载安装unity 上面的那个是破解软件,下面是unity5.5.6的安 ...

  5. unity零基础开始学习做游戏(四)biu~biu~biu发射子弹打飞机

    -------小基原创,转载请给我一个面子 主角都能移动了,那不得做点什么伸张正义,守护世界和平的事嘛,拿起家伙biu~biu~biu~ 首先得做一个好人和一个坏人 老规矩,Canvas下创建两个Im ...

  6. unity零基础开始学习做游戏(六)背景给我“滚”~

    -------小基原创,转载请给我一个面子 一望无际的...空旷场景,看着实在是难受,不如添加些背景吧.如果要真的想好好设计关卡背景的话,最好是做一个地图编辑器,不过做开发工具毕竟有点点复杂且枯燥,以 ...

  7. 《FPGA零基础入门到精通视频教程》-第001b讲软件的破解

    高清视频和配套讲义这里下载 http://www.fpgaw.com/thread-68128-1-1.html 优酷视频地址,不是很清楚

  8. 《FPGA零基础入门到精通视频教程》-第001a讲软件的安装

    高清视频和配套讲义这里下载 http://www.fpgaw.com/thread-67758-1-1.html 优酷视频不是很清晰

  9. 零基础照样做RNA-seq差异分析

    零基础照样做RNA-seq差异分析 GCBI知识库2018-08-24 14:43:36 基因表达谱的差异分析是RNA-seq中最常见的应用.你眼中的RNA-seq差异分析或许是酱紫的,对不会编程,不 ...

  10. TurnipBit—MicroPython开发板:妥妥拽拽零基础也能玩编程

    可视化编程网站入口:www.turnipbit.com 说到编程.谈到硬件,你也许会想到屌丝逆袭女神的"传奇"故事,也许会浮现出带着眼镜.头发稀少.无精打采的程序猿形象." ...

随机推荐

  1. [TJOI/HEOI2016] 求和 题解

    为什么又是佳媛姐姐啊啊啊! 斯特林数在这道题中不好处理,直接拆开: \[f(n)=\sum_{i=0}^n\sum_{j=0}^i\begin{Bmatrix}i\\j\end{Bmatrix}2^j ...

  2. QT5笔记:9. QT的容器类

    QList 中存放对象指针,QVector直接存放对象,所以访问性能更高 QMap中key不可以重复,QMultiMap中key可以重复 QMap在内存中顺序存储,QHash不是顺序存储的(hash算 ...

  3. QT5笔记:3.手动撸界面和可视化托界面混合

    3.手动撸界面和可视化托界面混合 参考视频:https://www.bilibili.com/video/BV1AX4y1w7Nt 3.1 工具栏可以通过在UI界面右键选择添加工具栏 3.2 设置窗口 ...

  4. Markdown 语法深度详解与实战演示

    一.引言 在当今数字化的时代,高效地处理和呈现文本信息变得至关重要.Markdown 作为一种轻量级标记语言,因其简洁.易读.易写的特点,受到了广大开发者.写作者和内容创作者的喜爱.无论您是撰写博客. ...

  5. 解释 Git 的基本概念和使用方式

    Git是一种分布式版本控制系统,常用于管理和追踪软件开发项目的代码.以下是Git的基本概念和使用方式的解释: 仓库(Repository):Git管理代码的基本单位,可以理解为一个存储代码历史和版本信 ...

  6. Spark - 面试题

    Spark是什么?答案:Apache Spark是一个快速.通用的大数据处理引擎,它提供了大规模数据集的内存计算和分布式计算能力.Spark可以处理各种数据源,如HDFS.Hive.Cassandra ...

  7. 错误模块名称:vrfcore.dll

    记录一下. 应用程序莫名报这个错,其它电脑上正常. 可能是Application Verifier这个工具影响到了. 进入注册表:win+R->regedit->HKEY_LOCAL_MA ...

  8. Docker使用手册--给你通用常用命令

    卸载JDK rpm -qa | grep -i java rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps 安装JDK tar -zxvf jdk- ...

  9. win11的go安装

    背靠国外各大金主的go语言,在各种推动下,可谓是新的弄潮儿,但国内虽然各种推销,但从安装到开发再到维护,资料都少之又少,可能被垄断了解释权吧. 因此下面的也只是一个记录而已,是一次仅限于本人本机本阶段 ...

  10. Mybatis的*Dao.XML中的配置与其对应的接口、resultMap的运用

    例子. <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC &quo ...