在鸿蒙(HarmonyOS)开发中,audiocapture
(音频采集)和 AVPlayer
(音视频播放器)是完全不同的两个模块,分别用于音频的输入和输出场景。以下是它们的核心区别及使用场景对比:
一、功能定位对比
模块 | 核心功能 | 数据流向 | 典型场景 |
---|---|---|---|
audiocapture |
从设备麦克风采集原始音频数据 | 输入(麦克风 → 应用) | 录音、语音识别、实时音频处理(如降噪) |
AVPlayer |
播放音视频文件(本地/网络) | 输出(应用 → 扬声器) | 音乐播放、视频播放、流媒体播放 |
二、核心差异详解
1. 数据方向不同
-
audiocapture
:- 输入型模块:从物理麦克风捕获音频流。
- 数据格式:采集原始 PCM 数据(未经压缩),通常需要自行转码(如转 MP3、WAV)。
- 代码示例:
// 初始化音频采集器 const audioCapturer = await audio.createAudioCapturer(config); // 读取麦克风原始数据 const pcmBuffer = await audioCapturer.read(bufferSize);
-
AVPlayer
:- 输出型模块:将音频/视频文件解码后输出到扬声器或屏幕。
- 支持格式:MP3、AAC、H.264、MP4 等常见编码格式。
- 代码示例:
// 创建播放器并播放网络音频 const avPlayer = await media.createAVPlayer()