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

審核編輯 黃宇
-
音頻錄制
+關注
關注
0文章
3瀏覽量
6828 -
Harmony
+關注
關注
0文章
108瀏覽量
3558
發布評論請先 登錄
ES7243E+ES8311音頻錄制與播放電路資料
【EASY EAI Nano-TB(RV1126B)開發板試用】+音頻輸入輸出測試
速通音頻處理:掌握TTS播放、文件播放與錄音核心,實現完整功能
蜻蜓FM開源“SmartXPlayer”音頻播放組件,打造鴻蒙多端音頻播放新引擎
harmony OS NEXT-雙向數據綁定MVVM以及$$語法糖介紹
harmony OS NEXT-通過用戶首選項實現數據持久化
harmony OS NEXT-Navagation基本用法
harmony OS NEXT-評論功能小demo
新品 | Module Audio,ES8388音頻交互模塊
harmony OS NEXT-基本介紹及DevcoStudiop基本使用
harmony OS NEXT-音頻錄制與播放模塊
評論