自动化脚本中如何录音?

📅 2026/7/20 12:54:41
自动化脚本中如何录音?
自动化脚本平台提供了一套完整的录音 API开发者可以通过简单的函数调用来实现音频录制功能。这套 API 包含三个核心函数requestAudioCapture请求录音权限、startRecordAudio开始录音和stopRecordAudio停止录音。本文将详细介绍这三个 API 的使用方法、参数说明以及实际开发中的注意事项。一、录音权限请求requestAudioCapture在 Android 平台上进行录音操作首先需要获取录音权限。冰狐平台通过requestAudioCapture函数来处理这一前置步骤。函数签名requestAudioCapture(confirmPermissionTag, retryCount)参数详解参数名类型必填说明confirmPermissionTagstring选填权限对话框中确认打开权限的文字默认值为立即开始|允许retryCountinteger选填点击 confirmTag 的重试次数默认值为 5使用说明confirmPermissionTag参数用于匹配系统权限弹窗中的确认按钮文字。如果不为空平台会自动点击匹配到的控件自动确认打开权限若为空则需要开发者手动点击确认按钮。该参数支持使用|分割多个文本只要匹配到其中一个即可生效。retryCount参数指定了自动点击确认按钮的重试次数默认为 5 次。在某些设备上权限弹窗可能出现延迟适当的重试机制可以提高权限获取的成功率。示例// 使用默认参数请求权限 requestAudioCapture(); // 自定义确认按钮文字和重试次数 requestAudioCapture(允许|同意, 3);二、开始录音startRecordAudio获取录音权限后通过startRecordAudio函数开始录制音频。函数签名startRecordAudio(fullPath, options)参数详解参数名类型必填说明fullPathstring必填文件名仅支持 wav 格式optionsObject选填录音参数配置默认值 {sampleRate: 44100, channelCount: 1, bitsPerSample: 16}文件路径说明fullPath参数支持两种路径格式绝对路径例如/sdcard/temp.wav指定完整的文件存储位置相对路径例如temp.wav文件将保存在手机外部存储目录下需要注意的是该 API 仅支持 wav 格式的音频文件其他格式如 MP3、AAC 等目前不被支持。录音参数配置options对象包含三个可配置参数sampleRate采样率默认 44100 Hz。常见的取值有 8000、16000、22050、32000、44100、48000 等。采样率越高音质越好但文件体积也越大。channelCount声道数默认 1单声道。设置为 2 则为立体声。bitsPerSample位深度默认 16。常见的取值有 8 和 1616 位提供更好的音质表现。返回值startRecordAudio函数会返回一个值可用于判断录音是否成功启动。示例// 使用默认参数录音保存为相对路径 var result startRecordAudio(my_recording.wav); // 自定义录音参数 var result startRecordAudio(/sdcard/audio/high_quality.wav, { sampleRate: 48000, channelCount: 2, bitsPerSample: 16 }); // 低采样率录音适合语音类应用 var result startRecordAudio(voice.wav, { sampleRate: 16000, channelCount: 1, bitsPerSample: 16 });三、停止录音stopRecordAudio录音完成后通过stopRecordAudio函数停止录音并保存文件。函数签名stopRecordAudio()使用说明该函数无需任何参数调用后会立即停止当前正在进行的录音并将音频数据写入到startRecordAudio指定的文件中。示例stopRecordAudio();四、完整示例以下是一个完整的录音流程示例展示从权限请求到录音完成的全部步骤function main() { // 第一步请求录音权限 requestAudioCapture(); // 第二步开始录音指定文件名和参数 var result startRecordAudio(mys2.wav, { sampleRate: 32000 }); console.log(录音启动结果, result); // 第三步录音持续 20 秒 sleep(20000); // 第四步停止录音 stopRecordAudio(); }五、实战应用场景场景一语音笔记应用function startVoiceNote() { var timestamp new Date().getTime(); var fileName note_ timestamp .wav; requestAudioCapture(允许|同意, 3); var result startRecordAudio(fileName, { sampleRate: 22050, channelCount: 1, bitsPerSample: 16 }); if (result) { console.log(开始录音文件 fileName); } else { console.log(录音启动失败); } } function stopVoiceNote() { stopRecordAudio(); console.log(录音已保存); }场景二定时录音任务function scheduledRecording(durationSeconds) { requestAudioCapture(); var result startRecordAudio(/sdcard/scheduled.wav, { sampleRate: 44100, channelCount: 1, bitsPerSample: 16 }); if (result) { console.log(定时录音开始持续 durationSeconds 秒); sleep(durationSeconds * 1000); stopRecordAudio(); console.log(定时录音完成); } } // 录制 30 秒 scheduledRecording(30);场景三带重试机制的权限请求function recordWithRetry() { // 尝试请求权限最多重试 5 次匹配允许或同意按钮 requestAudioCapture(允许|同意, 5); // 等待权限弹窗处理 sleep(1000); var result startRecordAudio(retry_test.wav); if (result) { console.log(录音已启动); // 录音逻辑... } else { console.log(录音启动失败请检查权限); } }六、注意事项权限是前提在任何录音操作之前必须先调用requestAudioCapture获取录音权限否则startRecordAudio可能会失败。格式限制目前仅支持 wav 格式如需其他格式需要自行转换。文件路径使用相对路径时文件保存在手机外部存储目录不同设备的具体路径可能有所不同。录音时长录音时长没有硬性限制但需注意存储空间和内存占用。并发录音同一时间只能有一个录音会话在调用startRecordAudio之前确保没有其他录音正在进行。权限弹窗处理不同 Android 版本和厂商的权限弹窗文字可能不同建议confirmPermissionTag参数包含多种可能的匹配文本。七、总结冰狐智能辅助平台的录音 API 设计简洁明了三个核心函数覆盖了从权限获取到录音完成的完整流程。开发者只需按照「请求权限 → 开始录音 → 停止录音」的顺序调用相应函数即可快速实现音频录制功能。通过灵活配置采样率、声道数和位深度等参数可以满足从高质量音乐录制到低码率语音采集等不同场景的需求。