鸿蒙Next录音功能如何使用
鸿蒙Next的录音功能在哪里开启?录音时如何暂停和继续?保存的录音文件默认存放在哪个文件夹?支持导出哪些音频格式?录音过程中能否实时调节音量或添加标记?
2 回复
鸿蒙Next录音?简单!打开“录音机”应用,点红色按钮开始录,再点暂停或停止。想找录音?去“文件管理”里翻“Recordings”文件夹。记住:别对着手机打喷嚏,不然录的全是你的“阿嚏”交响乐🎤😄
更多关于鸿蒙Next录音功能如何使用的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
鸿蒙Next(HarmonyOS NEXT)的录音功能主要通过AudioCapturer类实现。以下是使用步骤及示例代码:
1. 添加权限
在module.json5中配置音频录制权限:
{
"module": {
"requestPermissions": [
{
"name": "ohos.permission.MICROPHONE"
}
]
}
}
2. 初始化录音参数
设置采样率、声道数、编码格式等:
import audio from '@ohos.multimedia.audio';
let audioStreamInfo: audio.AudioStreamInfo = {
samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100, // 采样率
channels: audio.AudioChannel.CHANNEL_1, // 单声道
sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE, // 采样格式
encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW // 原始数据
};
3. 创建 AudioCapturer
let audioCapturer: audio.AudioCapturer | null = null;
let audioCapturerOptions: audio.AudioCapturerOptions = {
streamInfo: audioStreamInfo,
capturerInfo: {
source: audio.SourceType.SOURCE_TYPE_MIC, // 音源为麦克风
capturerFlags: 0 // 捕获标志
}
};
// 创建实例
audioCapturer = await audio.createAudioCapturer(audioCapturerOptions);
4. 开始录音
await audioCapturer.start(); // 开始录制
console.log('录音开始');
5. 读取音频数据(可选)
如需处理原始数据,可通过循环读取缓冲区:
let bufferSize = await audioCapturer.getBufferSize();
let buffer = await audioCapturer.read(bufferSize, true);
// 处理buffer中的音频数据
6. 停止录音
await audioCapturer.stop(); // 停止录制
await audioCapturer.release(); // 释放资源
audioCapturer = null;
console.log('录音结束');
注意事项:
- 权限申请:需在应用中动态申请麦克风权限(仅配置不够)。
- 错误处理:使用
try/catch封装可能异常的操作。 - 资源释放:录音完成后必须调用
release()防止内存泄漏。 - 文件保存:若需保存为文件,需将读取的
buffer数据写入指定路径(需使用@ohos.file.fs)。
完整流程示例:
async function recordAudio() {
try {
// 初始化参数
let audioCapturer = await audio.createAudioCapturer(capturerOptions);
await audioCapturer.start();
// 录制5秒
await new Promise(resolve => setTimeout(resolve, 5000));
await audioCapturer.stop();
await audioCapturer.release();
} catch (err) {
console.error(`录音失败: ${err.message}`);
}
}
通过以上代码即可实现基础录音功能。如需扩展(如实时处理、格式转换),可结合具体业务逻辑调整。

