You need to enable JavaScript to run this app.
文档中心
实时音视频

实时音视频

复制全文
下载 pdf
获取原始音频数据
Web 端获取原始音频数据
复制全文
下载 pdf
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
    callback, 
    frameSize
);
// 开启远端主流的回调
// engine.setAudioFrameCallback(StreamIndex.STREAM_INDEX_MAIN, userId, callback, frameSize);

3. 停止获取数据

不再需要获取音频数据时,再次调用 setAudioFrameCallback 并将回调函数参数设为 undefined 来取消注册,以节省性能。

// 关闭本地主流的回调
engine.setAudioFrameCallback(
    StreamIndex.STREAM_INDEX_MAIN, 
    /* userId */undefined, 
    /* callback */undefined, 
    frameSize
);

// 关闭远端主流的回调
// engine.setAudioFrameCallback(StreamIndex.STREAM_INDEX_MAIN, userId, /* callback */undefined, frameSize); 

4. 销毁引擎

通话结束后,销毁音视频引擎以释放资源。

如果用户已经进入房间,则需要在销毁所有房间实例后再销毁音视频引擎。

// 销毁引擎
engine.destroy();

API

功能Web
设置并开启指定的音频数据帧回调setAudioFrameCallback
最近更新时间:2025.10.15 22:27:27
这个页面对您有帮助吗?
有用
有用
无用
无用