在移动自动化场景中,录音是高频刚需能力 ------ 会议留痕、语音采集、语音交互验证等场景,都离不开稳定、可控的录音接口。本文从核心原理、API 详解、Demo 实现、场景扩展、问题排查全维度讲解,帮你快速掌握冰狐平台录音功能开发。
一、冰狐智能辅助录音核心逻辑
冰狐智能辅助的录音能力基于设备底层音频捕获接口封装,遵循权限申请→启动录制→过程控制→停止保存的标准流程,全程通过 JS 脚本调用,适配安卓主流设备,支持自定义采样率、文件命名与存储路径,输出标准 WAV 格式音频,兼容性强、音质可控。
核心优势:
- 零门槛调用:无需原生开发、无需 ADB 调试,纯 JS 脚本实现;
- 权限极简:仅需申请音频捕获权限,无需额外系统授权;
- 稳定可靠:后台静默录制,不依赖第三方录音 APP,避免界面干扰;
- 参数灵活:支持采样率配置,平衡音质与文件体积。
二、录音核心 API 详解
冰狐智能辅助录音功能依赖 3 个核心 API,参数与调用逻辑固定,不可随意修改。
1. requestAudioCapture ()
功能:录音前置操作,向设备申请音频捕获权限,必须在启动录制前调用,否则会因权限不足导致录制失败。
- 参数:无
- 返回值:无
- 注意:调用后系统会自动弹出权限申请弹窗,脚本需等待用户授权后再执行后续操作。
2. startRecordAudio (filename, options)
功能:初始化录音配置,启动音频录制,生成 WAV 格式文件。
- 参数:
- filename(字符串,必填):录音文件名,支持相对路径与绝对路径。相对路径默认保存至设备外部存储 Movies 目录;绝对路径可自定义存储位置(如
/sdcard/aznfz_record/)。 - options(对象,选填):录音配置项,核心为
sampleRate(采样率),可选值 8000、16000、32000、44100,数值越高音质越好、文件越大,官方示例默认 32000,兼顾音质与体积。
- filename(字符串,必填):录音文件名,支持相对路径与绝对路径。相对路径默认保存至设备外部存储 Movies 目录;绝对路径可自定义存储位置(如
- 返回值:返回录制状态标识,可用于日志排查。
3. stopRecordAudio ()
功能:终止当前录音任务,保存音频文件至指定路径,释放音频资源。
- 参数:无
- 返回值:无
- 注意:必须调用此方法,否则文件无法正常保存,可能出现损坏。
三、基础录音 Demo 源码
以下 Demo 严格遵循官方示例规范,实现授权→启动→延时录制→停止的完整流程,复制到冰狐智能辅助脚本编辑器即可直接运行。
javascript
/**
* 冰狐智能辅助 基础录音Demo
* 功能:申请权限→启动录制→20秒后自动停止→保存WAV文件
* 官方文档:https://aznfz.com/document/record#requestAudioCapture
*/
function main() {
// 1. 申请音频捕获权限(必选前置)
console.log("===== 开始申请录音权限 =====");
requestAudioCapture();
// 等待权限授权完成(避免权限未确认就启动录制)
sleep(2000);
console.log("===== 录音权限申请完成 =====");
// 2. 配置录音参数:文件名+采样率,启动录制
// 文件名:mys2.wav,采样率32000(官方推荐)
console.log("===== 启动录音,采样率:32000 =====");
var recordResult = startRecordAudio('mys2.wav', {sampleRate: 32000});
// 打印启动状态,便于调试
console.log("录音启动结果:", recordResult);
// 3. 录音过程控制:持续录制20秒
// 可替换为业务逻辑(如控件监听、按钮触发、定时结束)
console.log("===== 正在录音,时长20秒,请等待 =====");
sleep(20000);
// 4. 停止录音,保存文件
console.log("===== 录音结束,文件已保存 =====");
stopRecordAudio();
// 可选:提示录音完成
toast("录音完成,文件:mys2.wav");
}
Demo 运行说明
- 打开冰狐智能辅助 APP,进入脚本编辑页面,新建 JS 脚本;
- 复制上述代码,粘贴至编辑器,保存脚本;
- 运行脚本,首次执行会弹出录音权限申请,点击 "允许";
- 脚本自动启动录音,20 秒后停止,文件保存至设备
Movies/mys2.wav,可在文件管理器查看。
四、进阶扩展:实用录音场景实现
基础 Demo 满足通用录制需求,结合自动化业务场景,可扩展出定时录音、按键触发、循环分段录制、文件管理等高级功能,以下为常用场景实现。
场景 1:自定义时长定时录音
支持灵活设置录音时长,替代固定 20 秒,适配会议、采访等场景。
javascript
function main() {
requestAudioCapture();
sleep(2000);
// 自定义录音时长:60秒(1分钟)
var recordDuration = 60 * 1000;
var fileName = "timing_record.wav";
// 启动录制
startRecordAudio(fileName, {sampleRate: 44100});
toast("开始定时录音,时长1分钟");
console.log("定时录音启动,时长:" + recordDuration/1000 + "秒");
// 等待录制完成
sleep(recordDuration);
// 停止录制
stopRecordAudio();
toast("定时录音完成,文件:" + fileName);
console.log("文件保存路径:Movies/" + fileName);
}
场景 2:按键触发分段录音
适配课堂、会议重点标记场景,通过物理按键触发分段保存,避免长音频难以检索。
javascript
// 分段录音计数器
var segmentIndex = 1;
function main() {
requestAudioCapture();
sleep(2000);
console.log("===== 分段录音准备就绪,按音量下键触发分段 =====");
toast("按音量下键开始分段录音");
// 监听音量下键按键事件
setKeyCallback("KEYCODE_VOLUME_DOWN", function() {
// 停止上一段录制
stopRecordAudio();
console.log("第" + (segmentIndex-1) + "段录音已保存");
// 生成新段文件名(分段标记)
var newFileName = "segment_" + segmentIndex + ".wav";
// 启动新段录制
startRecordAudio(newFileName, {sampleRate: 32000});
console.log("开始第" + segmentIndex + "段录音");
toast("第" + segmentIndex + "段录音中...");
// 计数器自增
segmentIndex++;
});
// 保持脚本运行,持续监听按键
while (true) {
sleep(1000);
}
}
场景 3:自定义存储路径 + 文件管理
通过绝对路径指定存储目录,便于分类管理录音文件,结合 FileX API 实现目录创建。
javascript
// 引入文件管理模块
var FileX = require("FileX");
function main() {
requestAudioCapture();
sleep(2000);
// 自定义存储目录
var customPath = "/sdcard/冰狐录音/";
// 创建目录(不存在则自动创建)
var dir = new FileX(customPath);
if (!dir.exists()) {
dir.makeDirs();
console.log("自定义目录创建成功:" + customPath);
}
// 带路径的文件名
var fullFileName = customPath + "custom_path_record.wav";
// 启动录制
startRecordAudio(fullFileName, {sampleRate: 32000});
toast("自定义路径录音中...");
console.log("录音文件路径:" + fullFileName);
// 录制30秒
sleep(30000);
// 停止录制
stopRecordAudio();
toast("录音完成,路径:" + fullFileName);
}
五、常见问题排查
-
启动录音失败,提示权限不足 原因:未调用
requestAudioCapture()或未授权;解决:脚本开头必须调用权限申请,运行时手动允许录音权限。 -
录音文件损坏、无法播放 原因:未调用
stopRecordAudio()直接终止脚本,文件未保存;解决:确保录制完成后必须执行停止方法,可加异常捕获保证执行。 -
文件找不到 原因:混淆相对路径与绝对路径;解决:相对路径默认在
Movies目录,绝对路径需完整路径(如/sdcard/xxx.wav)。 -
音质差 / 文件过大原因:采样率设置不合理;解决:语音场景用 16000/32000,高保真用 44100,节省空间用 8000。
六、总结与规范提醒
冰狐智能辅助的录音功能通过 3 个核心 API,实现了自动化脚本中音频录制的极简开发。
核心规范必记:
- 权限先行:
requestAudioCapture()必须在启动录制前调用; - 格式固定:仅支持 WAV 格式,文件名后缀不可修改;
- 完整流程:启动→控制→停止,缺一不可;
- 路径清晰:区分相对 / 绝对路径,便于文件管理。
无论是基础自动化录音,还是复杂场景的分段、定时、触发录制,基于本文 Demo 与 API 详解,均可快速扩展实现。后续可结合冰狐的音频播放、网络上传 API,打造录音→播放→上传的完整音频自动化闭环,满足更多业务需求。