在移动自动化测试、APP操作演示、游戏流程记录、后台任务执行监控等场景中,屏幕录制是一项不可或缺的能力。冰狐智能辅助平台提供了一套完整的视频录制API,开发者可以通过简单的JavaScript脚本调用实现屏幕录制功能。本文基于冰狐官方文档,系统讲解视频录制的完整流程、API使用方法和参数调优技巧。
一、视频录制核心能力概述
冰狐智能辅助的视频录制基于Android系统屏幕采集能力实现,无需ROOT权限,仅需申请截屏权限即可运行。其核心特性如下:
-
输出格式:仅支持MP4格式,兼容性强,可直接在相册、播放器中查看;
-
存储路径:支持绝对路径(如
/sdcard/Movies/auto_record.mp4)与相对路径(默认保存至手机外部存储Movies目录); -
自定义参数:可调节帧率、视频缩放比例、音频采集方式及视频质量系数;
-
流程规范:必须遵循“申请权限→启动录制→停止录制→更新相册”的标准流程。
该能力适用于自动化测试录屏存证、APP操作教程生成、游戏挂机过程记录等多种场景,是冰狐平台高频使用的核心功能之一。
二、核心API全解析
冰狐智能辅助提供3个核心API完成视频录制全流程:
1. 权限申请:requestScreenShot()
功能:向设备申请截屏与屏幕录制权限,是启动录制的前置必备步骤。未调用该API直接启动录制会直接失败。
参数:无必填参数,可选填confirmPermissionTag(权限对话框中确认按钮的文字,默认值为'立即开始|允许',支持用"|"分割多个文本)和retryCount(点击确认按钮的重试次数,默认值为5)。
返回值:无。
注意事项:建议在冰狐智能辅助APP处于前台时调用,否则可能会出现黑屏闪烁或权限请求失败。建议在脚本的最开头调用该函数。首次运行必须授权,部分设备需在系统设置中手动开启“悬浮窗”“屏幕录制”权限。
示例:
function main() {
requestScreenShot(); // 申请截屏权限
}
2. 启动录制:startRecordVideo(filename, options)
功能:启动屏幕录制,返回视频文件的绝对路径。
返回值:String类型,返回非空字符串表示录制成功(视频文件的绝对路径),返回空字符串""表示失败。
参数说明:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| filename | string | 是 | 视频文件名,仅支持MP4格式;支持绝对路径(如/sdcard/temp.mp4)和相对路径(相对手机外部存储Movies目录,如temp.mp4) |
| options | Object | 否 | 配置参数,默认值{frameRate:30, scale:1, audio:0, rate:5.0} |
options参数细分配置:
-
frameRate:视频帧率,取值建议24/30/60。数值越高视频越流畅,但文件体积越大;
-
scale:视频缩放尺寸,取值范围(0, 1]。1为原分辨率,0.5为半分辨率,可有效减小文件体积;
-
audio:音频采集模式,0表示不采集音频,1表示使用麦克风采集音频;
-
rate:视频质量系数,可取值1-5.0。数值越高画质越好、文件越大,5.0为默认最优画质。
3. 停止录制:stopRecordVideo()
功能:停止当前正在进行的屏幕录制。
返回值:boolean类型,true表示停止成功,false表示停止失败(无录制进程)。
注意事项:必须与startRecordVideo成对调用,避免未停止导致文件损坏。
4. 相册更新:updatePhotoAlbum()
停止录制后,如果希望视频在系统相册中可以访问,必须调用更新相册函数。该函数为平台内置全局函数,直接调用即可完成媒体库刷新。
三、完整录制流程
视频录制的标准流程为:权限申请 → 启动录制 → 执行业务逻辑 → 停止录制 → 更新相册。
基础示例
以下是一个最基础的录制示例(来自官方文档):
function main() {
requestScreenShot(); // 1. 申请截屏权限
var path = startRecordVideo('temp.mp4'); // 2. 启动录制,文件保存在Movies目录
console.log('录制文件路径:', path); // 3. 打印录制文件路径
sleep(20000); // 4. 执行业务逻辑(此处为等待20秒)
stopRecordVideo(); // 5. 停止录制
updatePhotoAlbum(); // 6. 更新相册,使视频可在相册中查看
}
带参数配置的进阶示例
function main() {
// 1. 申请截屏权限(带自动确认)
requestScreenShot('立即开始|允许', 3);
// 2. 启动录制,配置参数
var options = {
frameRate: 30, // 帧率30fps
scale: 0.8, // 缩放至80%
audio: 1, // 采集麦克风音频
rate: 3.0 // 质量系数3.0
};
var path = startRecordVideo('/sdcard/Movies/auto_record.mp4', options);
if (path === '') {
console.log('录制启动失败,请检查权限');
return;
}
console.log('开始录制,文件保存至:', path);
// 3. 执行业务逻辑(如自动化操作)
// ... 此处可插入自动化测试、APP操作等代码 ...
sleep(30000); // 录制30秒
// 4. 停止录制
var result = stopRecordVideo();
if (result) {
console.log('录制已停止');
} else {
console.log('停止录制失败');
}
// 5. 更新相册
updatePhotoAlbum();
console.log('视频已更新至相册');
}
带时间戳文件名的示例
为了避免文件名冲突,建议使用时间戳命名视频文件:
function main() {
requestScreenShot();
// 生成时间戳文件名
var timestamp = new Date().getTime();
var filename = '/sdcard/Movies/record_' + timestamp + '.mp4';
var path = startRecordVideo(filename, {frameRate: 30, audio: 0});
if (path === '') {
console.log('录制启动失败');
return;
}
// 执行业务逻辑
// ...
stopRecordVideo();
updatePhotoAlbum();
}
四、参数调优与场景实践
不同场景下,参数配置策略有所不同:
1. 自动化测试存证场景
-
frameRate:30(平衡流畅度与文件大小)
-
scale:1(保留原分辨率,便于细节查看)
-
audio:1(采集音频,记录测试过程中的声音提示)
-
rate:5.0(最高画质,保证画面清晰度)
2. APP操作演示/教程生成场景
-
frameRate:24(足够流畅,文件较小便于传输分享)
-
scale:0.8(适当缩小分辨率,平衡画质与体积)
-
audio:1(采集解说音频)
-
rate:3.0-4.0(中等画质,兼顾清晰度与文件大小)
3. 后台任务执行监控场景
-
frameRate:15-24(降低帧率,大幅减小文件体积)
-
scale:0.5-0.7(显著减小分辨率)
-
audio:0(不采集音频,节省存储空间)
-
rate:2.0-3.0(较低画质,仅记录关键操作画面)
五、常见问题与注意事项
1. 权限相关问题
-
录制前必须调用
requestScreenShot(); -
建议在脚本最开头调用权限申请函数;
-
建议在冰狐智能辅助APP处于前台时调用,否则可能出现黑屏闪烁;
-
部分设备需在系统设置中手动开启“悬浮窗”“屏幕录制”权限。
2. 文件与路径问题
-
文件名仅支持MP4格式;
-
相对路径默认保存至手机外部存储Movies目录;
-
停止录制后必须调用
updatePhotoAlbum(),否则视频无法在系统相册中查看。
3. 脚本开发规范
-
冰狐脚本以
main函数为默认入口,所有操作逻辑需写在main函数内或在main中调用的自定义函数中; -
变量必须通过
var声明后使用; -
分支、循环语句即使仅有一条子语句也必须包裹
{}; -
支持
console.log打印日志,可通过日志排查问题; -
支持
sleep函数实现延时操作,控制录制时长。
4. 性能与稳定性
-
高帧率(60fps)和高画质(rate:5.0)会显著增加文件体积和系统资源占用,请根据实际需求合理配置;
-
长时间录制需注意手机存储空间是否充足;
-
录制过程中避免频繁切换APP或执行高负载操作,以免影响录制质量。
六、总结
冰狐智能辅助平台的视频录制功能通过requestScreenShot()、startRecordVideo()、stopRecordVideo()和updatePhotoAlbum()四个核心API,为开发者提供了一套简洁、完整的屏幕录制解决方案。开发者只需遵循“权限申请→启动录制→停止录制→更新相册”的标准流程,即可在自动化脚本中快速实现屏幕录制功能。
通过合理配置帧率、缩放比例、音频采集和质量系数等参数,开发者可以根据不同场景需求(测试存证、操作演示、后台监控等)灵活调整录制策略,在画质与文件大小之间取得最佳平衡。掌握这些API的使用方法,将极大提升自动化脚本的开发效率和实用性。

239

被折叠的 条评论
为什么被折叠?



