音频旁路功能为开发者提供了实时获取会议本地音频数据的解决方案,适用于需要实时处理音频流的业务场景。
通过平台API,可获取本端麦克风采集的原始PCM音频数据(16kHz/16bit/单声道),这些数据可直接用于语音识别、实时分析等业务处理。
该功能采用事件回调机制推送音频流及相关信息,确保数据的实时性和低延迟。值得注意的是,获取的音频流仅包含本地终端采集的原始数据,不涉及远端参会者的音频内容。
功能内置开关控制,开发者可根据实际业务需求,通过API动态启用或禁用音频数据上报,实现灵活的资源管理。这一特性使得第三方应用能够在不干扰会议正常进行的前提下,高效地集成音频处理功能。
在创建 XYClient
模块后,必须先调用setFeatureConfig方法,设置enableAudioPCM
为true
以启用音频PCM数据上报功能
XYClient.setFeatureConfig({
...
enableAudioPCM: true
});
发起呼叫时,调用 XYRTCClient.createVideoAudioTrack 创建音视频轨道
const videoAudioTrack = await XYClient.createVideoAudioTrack();
videoAudioTrack.on('audio-pcm-data', (e: XYAudioPCMData) => {
const pcmData = e.data; // 做其他处理
//...
});
videoAudioTrack.on('audio-pcm-error', (e) => {
// 提示信息
//...
});
会中通过switchFeatureConfig方法启用或停用音频PCM数据上报功能,此方法仅在setFeatureConfig设置enableAudioPCM
为true
的情况下使用
// 停用
XYClient.switchFeatureConfig('enableAudioPCM', false);
// 再次启用
XYClient.switchFeatureConfig('enableAudioPCM', true);
// 1. 初始化SDK并启用功能
const XYClient = XYRTC.createClient({...});
XYClient.setFeatureConfig({ enableAudioPCM: true });
// 2. 登录并呼叫会议
await XYClient.loginExternalAccount({});
await XYClient.makeCall({ confNumber: '', displayName: '' });
// 3. 创建音视频轨道
const videoAudioTrack = await XYClient.createVideoAudioTrack({});
// 4. 监听音频数据
videoAudioTrack.on('audio-pcm-data', (e) => {
const pcmData = e.data; // 传递给语音识别引擎
});
videoAudioTrack.on('audio-pcm-error', (err) => {
// 提示信息
});
// 5.采集并推送流
await videoAudioTrack.capture();
XYClient.publish(videoAudioTrack);
// 6. 会中停止音频pcm数据上报功能
document.getElementById('stopBtn').addEventListener('click', () => {
client.switchFeatureConfig('enableAudioPCM', false);
});
// 7. 会中再次启用音频pcm数据上报功能
document.getElementById('restartBtn').addEventListener('click', () => {
client.switchFeatureConfig('enableAudioPCM', true);
});