- 文档首页
实时音视频
实时音视频
开发指南
音频管理
获取原始音频数据
Web 端获取原始音频数据
Web 端获取原始音频数据
本文主要介绍如何通过 RTC Web SDK 获取格式为 PCM 的原始音频数据,以便进行二次处理,例如本地录制、内容审核等。
适用场景
- 本地音频录制:将自己或远端的音频数据保存为本地文件。
- 客户端内容审核:将获取的音频数据交给第三方服务进行实时内容审核。
- 自定义音频处理:对音频数据进行变声、降噪等自定义处理。
功能实现
1. 创建引擎并开启音频采集
创建和初始化一个音视频引擎类。
如果你需要获取远端的音频数据,还需要加入房间并发布音频流,参考 实现音视频通话 获取详细步骤。 const engine = VERTC.createEngine(appId);
await engine.startAudioCapture(); // 开启本地音频设备采集
2. 开启回调
定义一个用于处理音频数据的回调函数,SDK 会在获取到每一帧音频数据时调用此函数。然后调用 setAudioFrameCallback 方法,将您定义的回调函数注册到 SDK。
const callback = (data: AudioFrameData) => {
console.log('AudioFrameData', data);
engine.setAudioFrameCallback(
StreamIndex.STREAM_INDEX_MAIN,
/* userId */undefined, // userId 为空表示获取本地音频,获取远端数据时需指定 userId
// engine.setAudioFrameCallback(StreamIndex.STREAM_INDEX_MAIN, userId, callback, frameSize);
3. 停止获取数据
不再需要获取音频数据时,再次调用 setAudioFrameCallback 并将回调函数参数设为 undefined 来取消注册,以节省性能。
engine.setAudioFrameCallback(
StreamIndex.STREAM_INDEX_MAIN,
/* callback */undefined,
// engine.setAudioFrameCallback(StreamIndex.STREAM_INDEX_MAIN, userId, /* callback */undefined, frameSize);
4. 销毁引擎
通话结束后,销毁音视频引擎以释放资源。
如果用户已经进入房间,则需要在销毁所有房间实例后再销毁音视频引擎。
最近更新时间:2026.08.05 19:25:48