0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

harmony OS NEXT-音频录制与播放模块

程奕红 来源:jf_34770892 作者:jf_34770892 2025-03-27 17:55 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

# HarmonyOS 音频录制与播放模块

## 1.模块功能概览

- **麦克风权限动态检测与申请**
- **音频录制功能**(支持参数配置)
- **音频波形实时可视化**(暂时未完善,先凑合看,后续会完善)
- **录音文件播放功能**

## 2.权限检测流程

### 1.代码实现

```typescript
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.录音机配置

```ts
// 创建文件描述符
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.音频播放实现

```ts
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.效果展示

![img](https://i-blog.csdnimg.cn/img_convert/7e139091863136676343350ef5ca5dcb.gif)


审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 音频录制
    +关注

    关注

    0

    文章

    3

    浏览量

    6832
  • Harmony
    +关注

    关注

    0

    文章

    108

    浏览量

    3612
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    ES7243E+ES8311音频录制播放电路资料

    本电路为一款低成本音频录制播放参考电路,含sch原理图和pcb板图。ES7243E接2路模拟麦克风实现音频采集,ES8311接1路功放实现音频
    发表于 02-04 17:18 4次下载

    蓝牙音频播放问题

    有偿!!!STM32F407驱动WM8978播放蓝牙SBC音频数据有滋滋声和电音。
    发表于 01-05 21:32

    【EASY EAI Nano-TB(RV1126B)开发板试用】+音频输入输出测试

    。 最简单的做法就是利用音频录制功能制备一个,其方法见图6所示。 图6 音频录制 这样就可以进行播放测试了,见图7所示。 图7
    发表于 12-25 18:34

    ESP32蓝牙驱动MAX98357对音频音乐播放

    本文介绍了MAX98357音频模块的基本特性,并利用ESP32的蓝牙功能程序驱动此模块,最后用手机蓝牙连接ESP32播放手机音乐
    的头像 发表于 12-19 19:55 3226次阅读
    ESP32蓝牙驱动MAX98357对<b class='flag-5'>音频</b>音乐<b class='flag-5'>播放</b>

    速通音频处理:掌握TTS播放、文件播放与录音核心,实现完整功能

    播放TTS、播放音频文件及录音是构建完整音频处理功能的三大核心模块。若想快速掌握并实现完整音频处理能力,无需深挖底层细节,只需聚焦“资源加载
    的头像 发表于 11-21 19:27 407次阅读
    速通<b class='flag-5'>音频</b>处理:掌握TTS<b class='flag-5'>播放</b>、文件<b class='flag-5'>播放</b>与录音核心,实现完整功能

    新手速成:掌握TTS/文件播放/录音核心,构建完整音频处理功能

    刚接触音频开发时,TTS播放、文件播放与录音功能看似复杂,实则是实现完整音频处理的基础。本文从新手视角出发,拆解这三大功能的核心逻辑——资源管理、
    的头像 发表于 11-21 19:26 419次阅读
    新手速成:掌握TTS/文件<b class='flag-5'>播放</b>/录音核心,构建完整<b class='flag-5'>音频</b>处理功能

    为什么UAC设备录制播放时会定期产生噪音?

    为什么UAC设备录制播放时会定期产生噪音?
    发表于 08-26 06:13

    请问为什么UAC设备录制播放时会定期产生噪音?

    请问为什么UAC设备录制播放时会定期产生噪音?
    发表于 08-21 06:09

    蜻蜓FM开源“SmartXPlayer”音频播放组件,打造鸿蒙多端音频播放新引擎

    近日,由蜻蜓FM研发的音频播放组件“SmartXPlayer”正式开源并上线 OpenHarmony 三方库中心仓。作为一款专为鸿蒙多端场景打造的音频播放引擎,SmartXPlayer
    的头像 发表于 07-21 16:31 755次阅读
    蜻蜓FM开源“SmartXPlayer”<b class='flag-5'>音频</b><b class='flag-5'>播放</b>组件,打造鸿蒙多端<b class='flag-5'>音频</b><b class='flag-5'>播放</b>新引擎

    【嘉楠堪智K230开发板试用体验】+ 视频录制测试

    本次视频录制测试,使用板载的摄像头进行视频录制,使用板载的按键进行视频录制的开始和停止。 from media.mp4format import * import os import
    发表于 07-06 15:21

    新品|Unit AudioPlayer,支持 MP3/WAV 播放音频播放单元

    UnitAudioPlayer是一款自带MP3解码功能的音频播放单元,内置高性能音频解码芯片N9301,自带microSD卡座。该产品采用UART通信接口,用户可通过配置指令实现音频
    的头像 发表于 06-20 15:59 1055次阅读
    新品|Unit AudioPlayer,支持 MP3/WAV <b class='flag-5'>播放</b>的<b class='flag-5'>音频</b><b class='flag-5'>播放</b>单元

    harmony OS NEXT-双向数据绑定MVVM以及$$语法糖介绍

    # 鸿蒙Harmony-双向数据绑定MVVM以及$$语法糖介绍 ## 1.1 双向数据绑定概念 在鸿蒙(HarmonyOS)应用开发中,双向数据改变(或双向数据绑定)是一种让数据·模型和UI组件之间
    的头像 发表于 04-29 16:52 1344次阅读

    harmony OS NEXT-通过用户首选项实现数据持久化

    # 鸿蒙通过用户首选项实现数据持久化 ## 1.1 场景介绍 用户首选项为应用提供Key-Value键值型的数据处理能力,支持应用持久化轻量级数据,并对其修改和查询。当用户希望有一个全局唯一存储的地方,可以采用用户首选项来进行存储。Preferences会将该数据缓存在内存中,当用户读取的时候,能够快速从内存中获取数据,当需要持久化时可以使用flush接口将内存中的数据写入持久化文件中。Preferences会随着存放的数据量越多而导致应用占用的内存越大,因此
    的头像 发表于 04-29 16:38 1306次阅读

    harmony OS NEXT-Navagation基本用法

    # Navagation基本用法 > Navigation组件是路由导航的根视图容器,一般作为Page页面的根容器使用,其内部默认包含了标题栏,内容栏和公工具栏,其中内容区默认首页显示导航内容(Navigation的子组件)或非首页显示(NavDestination的子组件),首页和非首页通过路由进行切换 * 使用Navigation跳转的组件不需要再使用Entry来修饰,普通组件即可 * Navigation是一个导航组件,API9和API11的使用官方推荐方式各不相同 ## 1. Navagation API9的用法-(Navigation-NavRouter-(其他组件+NavD
    的头像 发表于 04-27 17:39 1070次阅读

    harmony OS NEXT-评论功能小demo

    # 评论页面小demo ## 效果展示 ![img](https://i-blog.csdnimg.cn/img_convert/f574e0b18325ee466938a3cb70530209.gif) ## 1.拆解组件,分层搭建 我们将整个评论页面拆解为三个组件,分别是头部导航,评论项,回复三个部分,然后统一在index界面导入 ![image-20250304150652225](https://i-blog.csdnimg.cn/img_convert/2e234f0fe986014368d8d7f138577e6a.png) ## 2.头部导航界面搭建 ![image-20250304151026576](https://i-blog.csdnimg.cn/img_convert/c876aa04a505a3c3203c03984a2e1504.png) ```ts @Preview @Component struct HmNavBar {  // 属性:是可以被传
    的头像 发表于 04-27 17:38 673次阅读