HarmonyOS 鸿蒙Next:avRecorder录音失败,录音文件的保存地址怎么设置。

发布于 1周前 作者 yuanlaile 来自 鸿蒙OS

HarmonyOS 鸿蒙Next:avRecorder录音失败,录音文件的保存地址怎么设置。

按照官网示例代码使用avRecorder进行录音操作,报如下错误。

已经赋予了麦克风权限。

录音的保存地址该如何填,如果录音成功了如何获取录音文件的地址,进行文件处理播放,上传等。cke_212.png

3 回复
// 1.创建录制实例
this.avRecorder = await media.createAVRecorder();
this.setAudioRecorderCallback();
// 2.获取录制文件fd赋予avConfig里的url;参考FilePicker文档
const filepath = getContext(this).filesDir + '01.mp3';
const exist = await fs.access(filepath)
log.i(TAG, `文件路径:${filepath} | 存在吗?${exist}`)
if (exist) {
await fs.unlink(filepath)
}
const file = fs.openSync(filepath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
const fdNumber = file.fd;
this.avConfig.url = 'fd://' + fdNumber;
// 3.配置录制参数完成准备工作
await this.avRecorder.prepare(this.avConfig);
// 4.开始录制
await this.avRecorder.start();

await media.createAVRecorder(); 这句报错

针对HarmonyOS 鸿蒙Next中avRecorder录音失败及录音文件保存地址设置问题,建议如下:

  1. 确保已获取麦克风权限,这是录音功能的基础。
  2. 录音文件保存地址通常通过文件描述符(fd)指定,形式为’fd://xx’(xx为文件描述符号)。需使用文件操作接口创建并获取该文件描述符。
  3. 示例代码:创建文件后,使用fs.openSync获取文件描述符,并赋值给avConfig的url字段,如const fdNumber = file.fd; this.avConfig.url = 'fd://' + fdNumber;

如果问题依旧没法解决请加我微信,我的微信是itying888。

回到顶部