2023/12/29 14:39:20
自定义音频采集和渲染
实时音视频传输过程中,声网 SDK 通常会启动默认的音频模块进行采集。在以下场景中,你可能会发现默认的音频模块无法满足开发需求:
- App 中已有自己的音频模块
- 希望使用非麦克风采集的音频源,比如裸 PCM 数据
- 需要使用自定义的音频前处理库(变声等)
本文介绍如何使用声网 Web SDK 在项目中实现自定义的音频采集。
实现方法
开始前,请确保你已参考快速开始在你的项目中实现基本的实时音视频功能。
SDK 提供 createCustomAudioTrack
方法,支持通过传入一个浏览器原生的 MediaStreamTrack
对象来创建本地音频轨道,你可以通过这个方法实现自定义音频采集。如果需要使用多个音频源,调用 createCustomAudioTrack
方法创建多个本地音频轨道即可。
例如,你可以调用 getUserMedia
方法获取 MediaStreamTrack
对象,再将该对象传入 createCustomAudioTrack
创建可以在 SDK 中使用的本地音频轨道对象。
JavaScript
navigator.mediaDevices.getUserMedia({ video: false, audio: true })
.then((mediaStream) => {
const audioMediaStreamTrack = mediaStream.getAudioTracks()[0];
// create custom audio track
return AgoraRTC.createCustomAudioTrack({
mediaStreamTrack: audioMediaStreamTrack,
});
})
.then((localAudioTrack) => {
// ...
});
同样,你也可以利用强大的 Web Audio API 来获取 MediaStreamTrack
,实现定制化的音频处理。