功能介绍
实时音频传输过程中,anyRTC SDK 通常会启动默认的音频模块进行采集。在一些场景中,你会发现默认的音频模块无法满足开发需求:
- 项目中已有自己的音频模块
- 使用非麦克风采集的音频源,比如
MediaStreamTrack
等 - 经过处理后的音频(变声等)
- ...
本文介绍如何使用 anyRTC Web SDK 满足以上场景的开发需求。
实现方法
自定义音频采集
SDK 提供 createCustomAudioTrack 方法,支持通过传入一个 MediaStreamTrack 对象来创建本地音频轨道,通过这个方法实现自定义音频采集。
通过调用 getUserMedia
方法获取 MediaStreamTrack
对象,再将该对象传入 createCustomAudioTrack
创建可以在 SDK 中使用的本地音频轨道对象。
示例:
navigator.mediaDevices.getUserMedia({ video: false, audio: true })
.then((mediaStream) => {
const audioMediaStreamTrack = mediaStream.getAudioTracks()[0];
// create custom audio track
return ArRTC.createCustomAudioTrack({
mediaStreamTrack: audioMediaStreamTrack,
});
})
.then((localAudioTrack) => {
// ...
});
同样,你也可以利用强大的 Web Audio API 来获取 MediaStreamTrack
,实现定制化的音频处理。
自定义音频播放
通过 createCustomAudioTrack 方法创建可以在 SDK 中使用的本地音频轨道后,就可以使用 LocalAudioTrack.play 方法渲染音频
localAudioTrack.play()