一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

harmony OS NEXT-音頻錄制與播放模塊

程奕紅 ? 來源:jf_34770892 ? 作者:jf_34770892 ? 2025-03-27 17:55 ? 次閱讀

# HarmonyOS 音頻錄制與播放模塊

## 1.模塊功能概覽

- **麥克風(fēng)權(quán)限動(dòng)態(tài)檢測(cè)與申請(qǐng)**
- **音頻錄制功能**(支持參數(shù)配置)
- **音頻波形實(shí)時(shí)可視化**(暫時(shí)未完善,先湊合看,后續(xù)會(huì)完善)
- **錄音文件播放功能**

## 2.權(quán)限檢測(cè)流程

### 1.代碼實(shí)現(xiàn)

```typescript
async checkPermission() {
const manager = abilityAccessCtrl.createAtManager();

// 首次權(quán)限申請(qǐng)
const result = await manager.requestPermissionsFromUser(
getContext(), ["ohos.permission.MICROPHONE"]
);

// 檢查所有權(quán)限是否通過
const isPass = result.authResults.every(
res => res === abilityAccessCtrl.GrantStatus.PERMISSION_GRANTED
);

if (!isPass) {
// 二次彈窗引導(dǎo)設(shè)置
const confirm = await promptAction.showDialog({...});

if (confirm.index === 1) {
// 跳轉(zhuǎn)系統(tǒng)設(shè)置
const finalResult = await manager.requestPermissionOnSetting(
getContext(), ["ohos.permission.MICROPHONE"]
);
}
}
}
```

### 2.2. 權(quán)限狀態(tài)處理

| 狀態(tài) | 處理方式 |
| -------------------- | -------------------- |
| 第一次授權(quán)成功 | 直接啟用錄音功能 |
| 第一次授權(quán)失敗 | 彈窗提示前往系統(tǒng)設(shè)置 |
| 系統(tǒng)設(shè)置二次授權(quán)失敗 | 返回上級(jí)頁面 |

## 3. 錄音功能核心實(shí)現(xiàn)

#### 1.錄音機(jī)配置

```ts
// 創(chuàng)建文件描述符
const file = fileIo.openSync(filePath,
fileIo.OpenMode.CREATE | fileIo.OpenMode.READ_WRITE);

// AVRecorder 參數(shù)配置
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() | 創(chuàng)建文件句柄/配置參數(shù)/啟動(dòng)錄音 |
| stopRecord() | 停止錄音/釋放資源/關(guān)閉文件 |

### 3.音頻播放實(shí)現(xiàn)

```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(); // 自動(dòng)播放
}
});
}
```

### 4.效果展示

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


審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 音頻錄制
    +關(guān)注

    關(guān)注

    0

    文章

    2

    瀏覽量

    6799
  • Harmony
    +關(guān)注

    關(guān)注

    0

    文章

    63

    瀏覽量

    2852
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    harmony OS NEXT-雙向數(shù)據(jù)綁定MVVM以及$$語法糖介紹

    # 鴻蒙Harmony-雙向數(shù)據(jù)綁定MVVM以及$$語法糖介紹 ## 1.1 雙向數(shù)據(jù)綁定概念 在鴻蒙(HarmonyOS)應(yīng)用開發(fā)中,雙向數(shù)據(jù)改變(或雙向數(shù)據(jù)綁定)是一種讓數(shù)據(jù)·模型和UI組件之間
    的頭像 發(fā)表于 04-29 16:52 ?94次閱讀

    harmony OS NEXT-通過用戶首選項(xiàng)實(shí)現(xiàn)數(shù)據(jù)持久化

    # 鴻蒙通過用戶首選項(xiàng)實(shí)現(xiàn)數(shù)據(jù)持久化 ## 1.1 場(chǎng)景介紹 用戶首選項(xiàng)為應(yīng)用提供Key-Value鍵值型的數(shù)據(jù)處理能力,支持應(yīng)用持久化輕量級(jí)數(shù)據(jù),并對(duì)其修改和查詢。當(dāng)用戶希望有一個(gè)全局唯一存儲(chǔ)的地方,可以采用用戶首選項(xiàng)來進(jìn)行存儲(chǔ)。Preferences會(huì)將該數(shù)據(jù)緩存在內(nèi)存中,當(dāng)用戶讀取的時(shí)候,能夠快速從內(nèi)存中獲取數(shù)據(jù),當(dāng)需要持久化時(shí)可以使用flush接口將內(nèi)存中的數(shù)據(jù)寫入持久化文件中。Preferences會(huì)隨著存放的數(shù)據(jù)量越多而導(dǎo)致應(yīng)用占用的內(nèi)存越大,因此
    的頭像 發(fā)表于 04-29 16:38 ?99次閱讀

    harmony OS NEXT-Navagation基本用法

    # Navagation基本用法 > Navigation組件是路由導(dǎo)航的根視圖容器,一般作為Page頁面的根容器使用,其內(nèi)部默認(rèn)包含了標(biāo)題欄,內(nèi)容欄和公工具欄,其中內(nèi)容區(qū)默認(rèn)首頁顯示導(dǎo)航內(nèi)容(Navigation的子組件)或非首頁顯示(NavDestination的子組件),首頁和非首頁通過路由進(jìn)行切換 * 使用Navigation跳轉(zhuǎn)的組件不需要再使用Entry來修飾,普通組件即可 * Navigation是一個(gè)導(dǎo)航組件,API9和API11的使用官方推薦方式各不相同 ## 1. Navagation API9的用法-(Navigation-NavRouter-(其他組件+NavD
    的頭像 發(fā)表于 04-27 17:39 ?73次閱讀

    harmony OS NEXT-評(píng)論功能小demo

    # 評(píng)論頁面小demo ## 效果展示 ![img](https://i-blog.csdnimg.cn/img_convert/f574e0b18325ee466938a3cb70530209.gif) ## 1.拆解組件,分層搭建 我們將整個(gè)評(píng)論頁面拆解為三個(gè)組件,分別是頭部導(dǎo)航,評(píng)論項(xiàng),回復(fù)三個(gè)部分,然后統(tǒng)一在index界面導(dǎo)入 ![image-20250304150652225](https://i-blog.csdnimg.cn/img_convert/2e234f0fe986014368d8d7f138577e6a.png) ## 2.頭部導(dǎo)航界面搭建 ![image-20250304151026576](https://i-blog.csdnimg.cn/img_convert/c876aa04a505a3c3203c03984a2e1504.png) ```ts @Preview @Component struct HmNavBar { ?// 屬性:是可以被傳
    的頭像 發(fā)表于 04-27 17:38 ?67次閱讀

    新品 | Module Audio,ES8388音頻交互模塊

    與耳機(jī)播放),可滿足各類麥克風(fēng)錄音與立體聲音頻播放需求。模塊搭載STM32G030F6P6微控制器,支持TRRS插孔耳機(jī)機(jī)插拔檢測(cè)及WS2812CRGB燈效驅(qū)動(dòng)。
    的頭像 發(fā)表于 04-25 14:16 ?194次閱讀
    新品 | Module Audio,ES8388<b class='flag-5'>音頻</b>交互<b class='flag-5'>模塊</b>

    藍(lán)牙音頻模組中模擬音頻和數(shù)字音頻如何選擇?

    藍(lán)牙模塊中我們常說的模擬音頻和數(shù)字音頻,是指兩種不同的信號(hào)處理技術(shù),它們都可以實(shí)現(xiàn)聲音的錄制、存儲(chǔ)、編輯、壓縮或播放,但也有一些區(qū)別和特點(diǎn)。
    的頭像 發(fā)表于 04-17 15:55 ?109次閱讀
    藍(lán)牙<b class='flag-5'>音頻</b>模組中模擬<b class='flag-5'>音頻</b>和數(shù)字<b class='flag-5'>音頻</b>如何選擇?

    harmony OS NEXT-基本介紹及DevcoStudiop基本使用

    #鴻蒙基本介紹及DevcoStudiop基本使用 1.認(rèn)識(shí)DevcoStudiop工作區(qū) 1.1認(rèn)識(shí)工作區(qū) 開發(fā)節(jié)奏: 通過左側(cè)目錄找到對(duì)應(yīng)的應(yīng)用文件,在編輯區(qū)進(jìn)行代碼編寫,在右側(cè)看預(yù)覽效果 快捷鍵:連按兩下shift快速尋找全局內(nèi)容,如文件 1.2如何排錯(cuò) 寫代碼時(shí),我們經(jīng)常會(huì)遇到這種情況,右側(cè)出現(xiàn)不能開啟預(yù)覽器的提示,我們需要打開預(yù)覽器日志查看報(bào)錯(cuò) 第一種方法 第二種方法 第三種方法:通過統(tǒng)一構(gòu)建,暴露哪些文件及代碼無法編譯通過 1.3如何刷新看效果 預(yù)覽器是有熱
    的頭像 發(fā)表于 03-26 16:48 ?255次閱讀
    <b class='flag-5'>harmony</b> <b class='flag-5'>OS</b> <b class='flag-5'>NEXT-</b>基本介紹及DevcoStudiop基本使用

    如何在音頻播放時(shí)插播音頻

    ZDP14x0系列芯片是內(nèi)置開源GUI引擎的圖像顯示專用驅(qū)動(dòng)芯片,內(nèi)部集成16MB/64MB顯示內(nèi)存、2D圖形加速器、音視頻解碼器等豐富多媒體功能。不僅支持音視頻播放,還支持在音視頻播放時(shí)插播音頻,本文將介紹如何在
    的頭像 發(fā)表于 11-25 15:40 ?1014次閱讀
    如何在<b class='flag-5'>音頻</b><b class='flag-5'>播放</b>時(shí)插播<b class='flag-5'>音頻</b>

    《DNK210使用指南 -CanMV版 V1.0》第三十一章 視頻播放實(shí)驗(yàn)

    ;)video模塊為Video對(duì)象提供了volume()方法,用于配置播放音頻時(shí)的音量,volume()方法如下所示:video.volume(volume)volume()方法用于配置播放音頻
    發(fā)表于 10-31 14:20

    《DNK210使用指南 -CanMV版 V1.0》第二十九章 音頻錄制實(shí)驗(yàn)

    第二十九章 音頻錄制實(shí)驗(yàn) 本章將介紹CanMV下的音頻錄制通過CanMV提供的模塊便能快速地實(shí)現(xiàn)音頻
    發(fā)表于 10-26 14:16

    dm368錄制音視頻后用vlc播放不同步是怎么回事?

    目前我們用其他的開發(fā)板 能夠錄制音視頻,但是用vlc播放的時(shí)候發(fā)現(xiàn)每次都是視頻播放完成了音頻還要播放一會(huì),隨著
    發(fā)表于 10-15 06:56

    使用adau1961 codec進(jìn)行錄音,發(fā)現(xiàn)錄制音頻文件噪聲非常大,請(qǐng)問有什么辦法可以優(yōu)化嗎?

    (1)我這邊使用adau1961 codec進(jìn)行錄音,發(fā)現(xiàn)錄制音頻文件噪聲非常大,請(qǐng)問有什么辦法可以優(yōu)化么,我這邊已經(jīng)排除MIC導(dǎo)入噪聲的可能,實(shí)際使用AMIC。 (2)我這邊使用tas2505作為pa接speaker播放一個(gè)
    發(fā)表于 10-12 07:35

    如何使用音頻接口播放音頻文件

    ZDP1440是一款基于開源GUI引擎的圖像顯示專用驅(qū)動(dòng)芯片,內(nèi)部集成16MB顯示內(nèi)存、2D圖形加速器、音頻解碼器等豐富多媒體功能,本文將介紹如何使用音頻接口播放音頻文件。
    的頭像 發(fā)表于 08-06 16:12 ?938次閱讀
    如何使用<b class='flag-5'>音頻</b>接口<b class='flag-5'>播放音頻</b>文件

    HarmonyOS實(shí)戰(zhàn)開發(fā)-如何實(shí)現(xiàn)音頻低時(shí)延錄制播放,AudioVivid音樂播放的相關(guān)功能

    介紹 本示例主要展示了音頻低時(shí)延錄制播放,AudioVivid音樂播放的相關(guān)功能: 低時(shí)延錄制。 低時(shí)延
    發(fā)表于 05-11 20:26

    SIP網(wǎng)絡(luò)音頻播放模塊網(wǎng)絡(luò)音頻播放模組 集成sip音柱 sip號(hào)角 sip吸頂喇叭 sip音箱

    模塊介紹 SV-2401VP網(wǎng)絡(luò)音頻模塊是一款通用的獨(dú)立SIP音頻功能模塊,其帶2*15W功放音頻
    的頭像 發(fā)表于 05-09 09:29 ?1041次閱讀
    SIP網(wǎng)絡(luò)<b class='flag-5'>音頻</b><b class='flag-5'>播放</b><b class='flag-5'>模塊</b>網(wǎng)絡(luò)<b class='flag-5'>音頻</b><b class='flag-5'>播放</b>模組 集成sip音柱 sip號(hào)角 sip吸頂喇叭 sip音箱