AI“幻觉“变真功能:App Inventor 2视频录制拓展一周开发实录

一场由AI"胡说八道"引发的真开发,最终变成了一段用户和团队的双向奔赴。

起因:AI说了一个"谎"

事情的开头有点荒诞。

有用户来咨询,说AI Pro版介绍里提到了我们有一款"视频录制拓展"。我们的第一反应是------没有啊。翻遍了产品列表,确实没有这个组件。这纯粹是AI的"幻觉",一本正经地编了个不存在的功能。

本来这事到这就结束了,"抱歉,暂时没有这个拓展"。

但紧接着,另一位用户也来问了。而且这次不是随便问问------他明确说要做一个会议录制App,需要调整视频码率来压缩体积。需求非常具体,场景非常清晰。

两个用户,同一个需求,前后脚出现。团队一合计:这不是AI在骗人,这是用户在告诉我们,他们真的需要这个功能。

一周:从零到上线

既然用户需要,那就做。

但说实话,App Inventor 2平台上做一个好用的视频录制拓展,挑战不小。不是"能录就行",而是要在积木式开发的框架下,让普通用户也能灵活控制视频质量、切换摄像头、管理录制文件。

团队定下了目标:一周之内,交付一个能打的版本。

然后就开始了整整一周的高强度开发。

那些差点劝退我们的技术难题

开发过程中,有几个问题是真的棘手:

竖屏横屏切换,预览画面怎么跟着转?

这是最先遇到、也是耗时最长的问题。用户竖着拿手机录,突然横过来,预览画面要自动适配,不能拉伸变形,也不能留黑边。来来回回改了好几个版本,最终找到了兼顾不同机型和屏幕比例的方案。

预览画面要"充满"布局

不是简单地填满就完事------要裁剪得当、焦点居中、不能丢失重要画面区域。这个看似简单的需求,调试过程远比预想复杂。

前置摄像头初始化

用户希望在打开App时直接使用前置摄像头,而不是默认的后置。这需要在录制开始前就设定好摄像头属性,经过反复测试验证,确认方案可行。

视频文件放哪里?

默认存App私有目录,不需要请求额外的文件访问权限。用户可以通过文件浏览器查看录制的MP4文件,也可以用信息分享器组件把文件另存到相册或分享给其他App。简单、安全、合规。后续还会研究直接保存到相册的方案。

录制时长实时显示

用户提出需要知道"已经录了多久",团队加了一个 RecordingDuration 属性,实时返回录制毫秒数。这样在界面上就能显示一个实时跳动的计时器。

屏幕常亮

录视频的时候手机自动锁屏?不行。加上了保持屏幕常亮的功能,录制期间屏幕不会自动熄灭。

视频质量怎么设?

这个问题很细节,但对用户体验影响很大。最终设计成了两种方式:

  • 设计器里:下拉框选择,HIGHEST、LOWEST、1080P、720P、480P一目了然
  • 代码块里:除了预设值,还支持直接输入自定义分辨率,比如1920×1080、1280×720

新手用下拉框就够了,进阶用户有自由度。各取所需。

两个组件,两种场景

最终交付的不止一个组件,而是两个,分别对应不同的使用场景:

VideoRecorder(前台模式)

带摄像头预览画面,适合用户主动录制、扫码录像这类场景。支持前后摄像头切换、闪光灯、静音录制。

BackgroundVideoRecorder(后台模式)

没有预览画面,App最小化后录制继续进行。适合后台监控、静默录制等场景。还支持录制中截图。

两个组件共享同一套编码参数------Quality、BitRate、FrameRate、AudioBitRate,设置方式统一。

用户:写了一封长长的感谢信

拓展上线后,那位协助测试的用户发来了一封感谢信。原文很长,这里摘几段:

"面对我的多次疑问和反复修改需求,全程没有一丝敷衍、没有半点不耐烦。"
"不管是视频分辨率、码率等质量参数的打磨、录制稳定性的优化,还是贴合实际使用场景的功能微调改动,都不厌其烦地反复修改、多次精进。"
"专业能力过硬,服务态度绝佳,包容耐心拉满。"

说实话,看到这些话的时候,那一周的加班值了。

一些技术细节(给感兴趣的开发者)

码率对照表(BitRate)

分辨率 建议码率 自动计算值
1080P (1920x1080) 6~10 Mbps 8 Mbps
720P (1280x720) 3~6 Mbps 4 Mbps
480P (720x480) 1.5~3 Mbps 2 Mbps
更低 1~2 Mbps 1.5 Mbps

Quality 预设值

  • HIGHEST - 设备支持的最高分辨率
  • LOWEST - 设备支持的最低分辨率
  • 1080P / 720P / 480P - 按高度匹配
  • 1920x1080 / 1280x720 - 指定具体分辨率

其他参数:

  • 帧率支持30fps和60fps
  • 音频码率建议64000~320000,默认128000
  • 暂停/恢复功能需要Android 7.0+
  • 录制参数在录制前设定,录制过程中不可修改

写在最后

这个故事最有趣的地方在于------起因是AI的"幻觉",结局却是真实的用户需求被满足。

有时候错误也能指向正确的方向。从一个不存在的功能,到一周内交付两个完整组件,再到用户发自内心的感谢。这一周的经历告诉我们:认真对待每一个用户需求,快速响应,反复打磨,结果不会差。

如果你也在用App Inventor 2开发,恰好需要视频录制功能------现在,它真的存在了。