自动化脚本中如何录制视频?

在移动自动化测试、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类型,返回非空字符串表示录制成功(视频文件的绝对路径),返回空字符串""表示失败。

参数说明

参数名类型必填说明
filenamestring视频文件名,仅支持MP4格式;支持绝对路径(如/sdcard/temp.mp4)和相对路径(相对手机外部存储Movies目录,如temp.mp4
optionsObject配置参数,默认值{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的使用方法,将极大提升自动化脚本的开发效率和实用性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值