提交工单
咨询集成、功能及报价等问题
多源采集用于管理各个通道的音视频源配置,通过此能力您可以灵活快速的实现不同音视频内容的实时互动,如屏幕共享、混音等功能。
多源采集主要的能力特性与限制如下:
请参考 下载示例源码 获取源码。
相关源码请查看 “/ZegoExpressExample/Examples/Others/MultiVideoSource” 目录下的文件。
在使用多源采集功能之前,请确保:
实时语音产品仅支持设置音频采集源。
创建 ZegoExpressEngine 引擎流程,请参考实现视频通话的 创建引擎。
ZegoEngineProfile profile;
/** AppID 和 AppSign 由 ZEGO 分配给各 App;其中,为了安全考虑,建议将 AppSign 存储在 App 的业务后台,需要使用时从后台获取*/
profile.appID = appID;
profile.appSign = appSign;
/** 指定使用直播场景 (请根据实际情况填写适合你业务的场景)*/
profile.scenario = ZegoScenario::ZEGO_SCENARIO_BROADCAST;
/** 创建引擎实例 */
auto engine = ZegoExpressSDK::createEngine(profile, nullptr);
/** 使用摄像头作为视频采集源 */
engine->setVideoSource(ZEGO_VIDEO_SOURCE_TYPE_CAMERA);
调用 setAudioSource 接口设置音频采集源。
仅设置音频采集源
/** 使用麦克风作为音频采集源 */
engine->setAudioSource(ZEGO_AUDIO_SOURCE_TYPE_MICROPHONE);
设置音频采集源,同时设置混音配置
ZegoAudioSourceMixConfig audioSourceMixConfig;
/** 混入系统声卡播放的声音*/
audioSourceMixConfig.enableMixSystemPlayout = true;
/** 混入 SDK 播放的声音*/
audioSourceMixConfig.enableMixEnginePlayout = true;
/** 混入序号为 0 的媒体播放器播放的声音*/
audioSourceMixConfig.mediaPlayerCount = 1;
audioSourceMixConfig.mediaPlayerIndexList = new int[1];
audioSourceMixConfig.mediaPlayerIndexList[0] = 0;
/** 混入序号为 0 的音效播放器播放的声音*/
audioSourceMixConfig.audioEffectPlayerCount= 1;
audioSourceMixConfig.audioEffectPlayerIndexList= new int[1];
audioSourceMixConfig.audioEffectPlayerIndexList[0] = 0;
/** 使用麦克风作为音频采集源,且设置混音配置 */
engine->setAudioSource(ZEGO_AUDIO_SOURCE_TYPE_MICROPHONE, audioSourceMixConfig);
delete[] audioSourceMixConfig.audioEffectPlayerIndexList;
delete[] audioSourceMixConfig.mediaPlayerIndexList;
登录房间及推流流程,请参考实现视频通话的 登录房间 及 推流 。
/** 使用屏幕共享作为视频采集源 */
engine->setVideoSource(ZEGO_VIDEO_SOURCE_TYPE_SCREEN_CAPTURE);
/** 使用媒体播放器作为音频采集源 */
engine->setAudioSource(ZEGO_AUDIO_SOURCE_TYPE_MEDIA_PLAYER);
结束推流流程,请参考实现视频通话的 停止推拉流。
/** 停止推流*/
engine->stopPublishingStream();
如需采集屏幕视频与系统声音,请参考 屏幕共享。
支持,但需要注意相同的播放器实例仅能被一个通道占用。
组合使用视频源和音频源限制如下:
enableMicrophone
)。
如果您主路不需要麦克风声音,可通过 mutePublishStreamAudio
禁用音频推流保持麦克风启动。None
,否则会导致音频无法渲染。联系我们
文档反馈