harmony OS NEXT-音频录制与播放模块
2025-03-22 15:48:35
224次阅读
0个评论
HarmonyOS 音频录制与播放模块
1.模块功能概览
- 麦克风权限动态检测与申请
- 音频录制功能(支持参数配置)
- 音频波形实时可视化(暂时未完善,先凑合看,后续会完善)
- 录音文件播放功能
2.权限检测流程
1.代码实现
async checkPermission() {
  const manager = abilityAccessCtrl.createAtManager();
  
  // 首次权限申请
  const result = await manager.requestPermissionsFromUser(
    getContext(), ["ohos.permission.MICROPHONE"]
  );
  // 检查所有权限是否通过
  const isPass = result.authResults.every(
    res => res === abilityAccessCtrl.GrantStatus.PERMISSION_GRANTED
  );
  if (!isPass) {
    // 二次弹窗引导设置
    const confirm = await promptAction.showDialog({...});
    
    if (confirm.index === 1) {
      // 跳转系统设置
      const finalResult = await manager.requestPermissionOnSetting(
        getContext(), ["ohos.permission.MICROPHONE"]
      );
    }
  }
}
2.2. 权限状态处理
| 状态 | 处理方式 | 
|---|---|
| 第一次授权成功 | 直接启用录音功能 | 
| 第一次授权失败 | 弹窗提示前往系统设置 | 
| 系统设置二次授权失败 | 返回上级页面 | 
3. 录音功能核心实现
1.录音机配置
// 创建文件描述符
const file = fileIo.openSync(filePath, 
  fileIo.OpenMode.CREATE | fileIo.OpenMode.READ_WRITE);
// AVRecorder 参数配置
const config = {
  audioSourceType: media.AudioSourceType.AUDIO_SOURCE_TYPE_MIC,
  url: `fd://${file.fd}`,
  profile: {
    audioBitrate: 100000,
    audioChannels: 2,
    audioSampleRate: 48000,
    audioCodec: media.CodecMimeType.AUDIO_AAC,
    fileFormat: media.ContainerFormatType.CFT_MPEG_4A
  }
};
2.录音操作控制
| 方法 | 功能描述 | 
|---|---|
| startRecord() | 创建文件句柄/配置参数/启动录音 | 
| stopRecord() | 停止录音/释放资源/关闭文件 | 
3.音频播放实现
async playRecord() {
  const avPlayer = await media.createAVPlayer();
  avPlayer.url = `fd://${file.fd}`;
  
  avPlayer.on('stateChange', (state) => {
    if (state === 'initialized') {
      avPlayer.prepare();
    } else if (state === 'prepared') {
      avPlayer.play(); // 自动播放
    }
  });
}
4.效果展示

00
- 0回答
- 1粉丝
- 0关注
相关话题
- 鸿蒙Next使用AVRecorder录制和播放音频
- harmony OS NEXT-启动页开发
- harmony OS NEXT-基本组件结构
- harmony OS NEXT-常用组件及其导航
- harmony OS NEXT-应用状态-AppStorage详细介绍
- harmony OS NEXT-评论功能小demo
- HarmonyOS 音频录制开发实战【2】
- HarmonyOS 音频录制开发实战【1】
- harmony OS NEXT-基本介绍及DevcoStudiop基本使用
- harmony OS NEXT-设备开发中的核心概念
- HarmonyOS 媒体播放开发实战(音频播放)
- harmony OS NEXT-双向数据绑定MVVM以及$$语法糖介绍
- harmony OS NEXT-通过用户首选项实现数据持久化
- 鸿蒙Next使用AudioCapturer实现音频录制和AI语言转文字
- 【HarmonyOS NEXT】使用AVPlayer播放音乐,导致系统其它应用音乐播放暂停 - 播放音频焦点管理

