如何在同一App中集成Agora音视频呼叫SDK并实现音视频切换
Agora音视频呼叫SDK合并集成解决方案
最优实现方案
你无需同时集成两套独立的音频、视频SDK,Agora官方提供的全量agora-rtc-sdk本身同时包含音频、视频全部能力,原生支持通话过程中动态切换音视频模式,完全匹配你要实现的类WhatsApp切换需求,直接移除两套独立SDK,导入单套全量RTC SDK即可,不存在重名冲突问题。
切换音视频模式无需重建通话:调用SDK原生提供的enableLocalVideo、disableLocalVideo、muteRemoteVideoStream相关接口即可实现无缝切换,不需要重新走呼叫建联流程。
特殊场景两套SDK共存方案
如果因历史代码逻辑无法直接替换为全量SDK,确实可以通过重命名规避重名冲突,操作及注意事项如下:
- 对其中一套SDK的核心文件做全量重命名:比如将音频SDK的主文件从
agora-rtc-sdk.js(移动端对应为.framework/.aar文件)重命名为agora-rtc-audio-sdk,同时同步修改SDK内部所有关联的导出命名、依赖引用路径,避免内部调用报错。 - 导入项目时需要为两套SDK配置独立别名:
Web端导入示例:
import AgoraAudioRTC from 'agora-rtc-audio-sdk'import AgoraVideoRTC from 'agora-rtc-video-sdk' - 共存注意事项:
- 两套SDK同时运行会抢占音视频硬件资源,发起呼叫前必须先销毁另一套SDK的实例,禁止同时初始化两个SDK实例,否则会出现麦克风/摄像头占用报错、音视频流传输异常。
- 两种SDK切换呼叫时需要走完整的挂断-重新建联流程,无法实现无缝切换,用户体验远低于单套全量SDK方案。
内容的提问来源于stack exchange,提问作者Bit
相关产品推荐
相关产品推荐

