客户端 API

    功能总览

    更新时间:2024-01-08 15:40

    ZEGO SDK 拥有全面覆盖全球重点区域的网络节点,提供丰富的 API,为多端提供清晰稳定的实时语音视频云服务。

    API 返回的错误码请参考:https://doc-zh.zego.im/article/4378。

    以下为基本的 API 简要介绍。

    初始化相关的前置功能

    方法名 描述
    createEngine 创建 ZegoExpressEngine 单例对象并初始化 SDK。
    destroyEngine 销毁 ZegoExpressEngine 单例对象并反初始化 SDK。
    setEngineConfig 设置引擎进阶配置。
    setLogConfig 设置日志配置。
    setRoomMode 设置房间模式。
    setGeoFence 设置地理围栏。
    getVersion 获取 SDK 版本号。
    isFeatureSupported 查询当前 SDK 是否支持指定的功能特性。
    setRoomScenario 设置房间场景。
    uploadLog 上传日志到 ZEGO 服务器。
    enableDebugAssistant 开启调试助手。注意,请勿在线上版本开启此功能!仅在开发阶段使用!
    callExperimentalAPI 调用实验性 API。
    onDebugError 调试错误信息回调。
    onEngineStateUpdate 音视频引擎状态更新的回调通知。
    onRecvExperimentalAPI 实验性 API 回调。

    房间功能

    方法名 描述
    loginRoom 使用带配置进阶属性的方式登录房间,通过回调参数返回登录结果,推拉流前必须登录房间。
    logoutRoom 退出指定房间 ID 的房间。
    switchRoom 使用配置进阶属性的方式切换房间。
    renewToken 更新 token 鉴权信息。
    setRoomExtraInfo 设置房间附加消息。
    onRoomStateUpdate 房间状态变化通知。
    onRoomStateChanged 房间状态变化通知,包含具体的状态变化原因。
    onRoomUserUpdate 房间内其他用户增加或减少的回调通知。
    onRoomOnlineUserCountUpdate 房间内当前在线用户数量回调。
    onRoomStreamUpdate 相同房间内其他用户推的流增加或减少的通知。
    onRoomStreamExtraInfoUpdate 房间内流附加信息更新通知。
    onRoomExtraInfoUpdate 房间附加信息更新通知。
    onRoomTokenWillExpire 房间 Token 鉴权将要过期的回调通知。

    推流功能

    方法名 描述
    startPublishingStream 开始推流,支持多房间模式
    stopPublishingStream 停止推流,可停止指定通道的音视频流。
    setStreamExtraInfo 设置指定推流通道的流附加信息。
    startPreview 启动/更新本地预览,支持设置其他通道的推流。
    stopPreview 停止本地预览,支持设置其他通道的推流
    setVideoConfig 设置视频配置,支持设置其他通道的推流。
    getVideoConfig 获取当前视频配置,支持设置其他通道的推流
    setVideoMirrorMode 设置镜像模式,支持设置其他通道的推流。
    setAudioConfig 设置音频质量配置。
    setAudioConfigWithChannel 设置指定推流通道的音频质量配置。
    getAudioConfig 获取当前音频质量配置。
    setPublishStreamEncryptionKey 设置指定推流通道的推流加密密钥。
    takePublishStreamSnapshot 对指定推流通道的推流画面截图。
    mutePublishStreamAudio 停止或恢复发送指定推流通道的音频流。
    mutePublishStreamVideo 停止或恢复发送指定推流通道的视频流。
    setStreamAlignmentProperty 开启或关闭混流精准对齐功能
    enableTrafficControl 开始或停止指定推流通道的流量控制。
    setMinVideoBitrateForTrafficControl 设置流量控制的最低视频码率阈值。
    setMinVideoFpsForTrafficControl 设置流量控制的最低视频帧率阈值。
    setMinVideoResolutionForTrafficControl 设置流量控制的最低视频分辨率阈值。
    setTrafficControlFocusOn 设置指定推流通道的触发流量控制的关注因素。
    setCaptureVolume 设置推流端采集音量。
    setAudioCaptureStereoMode 设置音频采集双声道模式。
    addPublishCdnUrl 增加转推至 CDN 的 URL。
    removePublishCdnUrl 删除转推至 CDN 的 URL。
    enablePublishDirectToCDN 是否直接推流到 CDN(不经过 ZEGO RTC 服务器), 支持设置其他通道的推流。
    setPublishWatermark 设置推流水印,支持设置其他通道的推流。
    setSEIConfig 设置媒体增强补充信息类型。
    sendSEI 指定推流通道号,发送媒体增强补充信息。
    enableHardwareEncoder 开/关硬件编码。
    setCapturePipelineScaleMode 设置采集缩放时机,视频数据是采集的时候立即缩放还是编码时才进行缩放。
    setDummyCaptureImagePath 设置关闭摄像头时所推静态图片的路径
    enableH265EncodeFallback 是否开启 H.265 编码自动降级到 H.264 编码。
    isVideoEncoderSupported 是否支持指定的视频编码类型和实现方式。
    setLowlightEnhancement 设置低照度增强。
    setVideoSource 设置视频采集源实例作为指定推流通道的视频采集源。
    setAudioSource 为指定推流通道设置音频采集源
    setAudioSourceWithConfig 设置音频采集源及混音配置
    enableVideoObjectSegmentation 开启主体分割。
    enableAlphaChannelVideoEncoder 开启视频编码器透明通道支持。
    onPublisherStateUpdate 推流状态回调。
    onPublisherQualityUpdate 推流质量回调。
    onPublisherCapturedAudioFirstFrame 音频采集首帧回调接口。
    onPublisherCapturedVideoFirstFrame 视频采集首帧回调接口。
    onPublisherSendAudioFirstFrame 推流端音频发送首帧回调。
    onPublisherSendVideoFirstFrame 推流端视频发送首帧回调。
    onPublisherVideoSizeChanged 采集视频大小变更回调。
    onPublisherRelayCDNStateUpdate 添加/删除转推 CDN 地址状态回调。
    onVideoObjectSegmentationStateChanged 视频主体分割状态变化。

    拉流功能

    方法名 描述
    startPlayingStream 开始拉流(从 ZEGO RTC 服务器或第三方 CDN),支持多房间模式。
    stopPlayingStream 停止拉流。
    setPlayStreamDecryptionKey 设置拉流解密密钥。
    takePlayStreamSnapshot 拉流画面截图。
    setPlayVolume 设置拉流音量。
    setAllPlayStreamVolume 设置所有拉流音量。
    setPlayStreamVideoType 设置播放视频流类型。
    setPlayStreamBufferIntervalRange 设置拉流播放缓存自适应调整的区间范围。
    setPlayStreamFocusOn 设置拉音视频流优先级的权重。
    mutePlayStreamAudio 拉流是否可接收指定音频数据。
    mutePlayStreamVideo 拉流是否可接收指定视频数据。
    muteAllPlayStreamAudio 拉流是否接收所有音频数据。
    muteAllPlayStreamVideo 拉流是否可接收所有视频数据
    enableHardwareDecoder 开/关硬件解码。
    enableCheckPoc 开/关帧顺序检测。
    isVideoDecoderSupported 是否支持指定视频解码格式。
    onPlayerStateUpdate 拉流状态变更回调。
    onPlayerQualityUpdate 拉流质量回调。
    onPlayerMediaEvent 拉流媒体事件回调。
    onPlayerRecvAudioFirstFrame 拉流端音频接收首帧回调。
    onPlayerRecvVideoFirstFrame 拉流端视频接收首帧回调。除 Linux 系统,此回调默认从 ui 线程抛出。
    onPlayerRenderVideoFirstFrame 拉流端渲染完视频首帧回调。
    onPlayerVideoSizeChanged 拉流分辨率变更通知。
    onPlayerRecvSEI 收到远端流的 SEI 内容。
    onPlayerSyncRecvSEI 同步接收远端流的 SEI 内容。

    信令消息功能

    方法名 描述
    sendBroadcastMessage 发送房间广播消息。
    sendBarrageMessage 发送房间弹幕消息。
    sendCustomCommand 发送自定义信令。
    onIMRecvBroadcastMessage 接收房间广播消息通知。
    onIMRecvBarrageMessage 接收房间弹幕消息通知。
    onIMRecvCustomCommand 接收自定义信令通知。

    混流功能

    方法名 描述
    startMixerTask 开始混流任务。
    stopMixerTask 停止混流任务。

    音视频前处理

    方法名 描述
    enableAEC 是否开启回声消除。
    setAECMode 设置回声消除模式
    enableAGC 开/关自动增益控制
    enableANS 开/关噪声抑制
    enableTransientANS 开/关瞬态噪声抑制
    setANSMode 设置音频噪声抑制模式
    setAudioEqualizerGain 设置音效均衡器(EQ)。
    setVoiceChangerPreset 通过预设枚举设置变声。
    setVoiceChangerParam 设置变声的具体参数。
    setReverbPreset 通过预设枚举设置混响。
    setReverbAdvancedParam 设置混响的具体参数。
    setReverbEchoParam 设置混响回声效果的具体参数。
    enableVirtualStereo 开启或关闭推流时的虚拟立体声效果。

    媒体播放器功能

    方法名 描述
    createMediaPlayer 创建媒体播放器实例对象。
    destroyMediaPlayer 销毁媒体播放器实例对象。
    loadResource 加载本地或者网络媒体资源。
    loadResourceWithPosition 加载本地或者网络媒体资源,并指定开始位置。
    loadCopyrightedMusicResourceWithPosition 加载版权音乐资源。
    start 开始播放
    stop 停止播放
    pause 暂停播放
    resume 恢复播放
    seekTo 设置指定的播放进度
    enableRepeat 是否重复播放
    enableAux 是否将播放器的声音混入正在推的流中
    muteLocal 是否静默本地播放
    setPlayerView 设置播放器播放视频的视图
    setVolume 设置播放器音量,会同时设置本地播放音量和推流音量
    setPlayVolume 设置播放器本地播放音量
    setPublishVolume 设置播放器推流音量
    setProgressInterval 设置播放进度回调间隔
    getPlayVolume 获取当前媒体播放器本地播放的音量,范围为 0 ~ 200,默认值为 60
    getPublishVolume 获取当前媒体播放器推流的音量,范围为 0 ~ 200,默认值为 60
    getTotalDuration 获取媒体资源的总进度
    getCurrentProgress 获取当前播放进度
    getCurrentRenderingProgress 获取当前渲染进度
    getAudioTrackCount 获取播放文件的音轨个数
    setAudioTrackIndex 设置播放文件的音轨
    setVoiceChangerParam 设置变声的具体参数
    getCurrentState 获取当前播放状态
    getIndex 获取媒体播放器的序号
    takeSnapshot 对媒体播放器当前播放画面进行截图
    enableSoundLevelMonitor 是否开启声浪监听。
    enableFrequencySpectrumMonitor 是否开启频谱监听。
    getMediaInfo 获取媒体文件视频分辨率等媒体信息。
    enablePublishVideo 是否将播放器的视频混入正在推的流中
    getCustomVideoCapturePlugin 获取播放器的自定义视频采集插件
    registerCustomAudioProcessPlugin 注册自定义音频处理插件。
    unregisterCustomAudioProcessPlugin 注销自定义音频处理插件。
    enableLiveAudioEffect 开启现场音效。
    enableLocalCache 开启本地缓存 http/https 网络资源。
    onMediaPlayerStateUpdate 媒体播放器播放状态回调。
    onMediaPlayerNetworkEvent 媒体播放器网络状态事件回调。
    onMediaPlayerPlayingProgress 播放器播放进度回调。
    onMediaPlayerRenderingProgress 播放器渲染进度回调。
    onMediaPlayerVideoSizeChanged 媒体播放器播放视频分辨率改变事件回调。
    onMediaPlayerLoadResource 媒体播放器加载资源结果的通知。
    onMediaPlayerVideoData 媒体播放器视频数据回调。
    onMediaPlayerRecvSEI 媒体次要信息回调。
    onMediaPlayerSoundLevelUpdate 声浪更新回调。
    onMediaPlayerFrequencySpectrumUpdate 频谱更新回调。
    onMediaPlayerFirstFrameEvent 媒体播放器播放首帧回调。
    onMediaPlayerLocalCache 媒体播放器本地缓存 http/https 网络资源后回调。

    音效播放器功能

    方法名 描述
    createAudioEffectPlayer 创建音效播放器实例对象。
    destroyAudioEffectPlayer 销毁音效播放器实例对象。
    start 开始播放音效。
    stop 停止播放音效。
    pause 暂停播放音效。
    resume 恢复播放音效。
    stopAll 停止播放所有音效。
    pauseAll 暂停播放所有音效。
    resumeAll 恢复播放所有音效。
    seekTo 设置播放进度。
    setVolume 设置单个音效的播放音量,会同时设置本地播放音量和推流音量。
    setVolumeAll 设置所有音效的播放音量,会同时设置本地播放音量和推流音量。
    setPlaySpeed 设置指定音效的播放速度,会同时设置本地播放速度和推流速度(不支持单独设置)。
    getTotalDuration 获取指定音效资源的总长度。
    getCurrentProgress 获取当前播放进度。
    loadResource 加载音效资源。
    unloadResource 卸载音效资源。
    getIndex 获取音效播放器索引。
    onAudioEffectPlayStateUpdate 音效播放状态回调。

    录制功能

    方法名 描述
    startRecordingCapturedData 开始本地录制,直接将音视频数据录制到本地文件。
    stopRecordingCapturedData 结束录制本端音频或音视频。
    onCapturedDataRecordStateUpdate 本地录制的状态更新回调,当录制过程状态变化时触发。
    onCapturedDataRecordProgressUpdate 录制进度更新回调。

    设备管理

    方法名 描述
    muteMicrophone 设置是否静音(关闭麦克风)。
    isMicrophoneMuted 检查麦克风是否设置为静音。
    muteSpeaker 设置是否静音(关闭音频输出)。
    isSpeakerMuted 检查音频输出是否静音。
    getAudioDeviceList 获取音频设备列表
    getDefaultAudioDeviceID 获取默认音频设备 ID
    useAudioDevice 选择使用某个音频设备
    getAudioDeviceVolume 获取音频设备音量
    setAudioDeviceVolume 设置音频设备音量。
    setSpeakerVolumeInAPP 设置 App 中扬声器的音量。
    getSpeakerVolumeInAPP 获取 App 中扬声器的音量,只支持 Windows。
    startAudioDeviceVolumeMonitor 开启音频设备音量监控。
    stopAudioDeviceVolumeMonitor 停止音频设备音量监控。
    muteAudioDevice 静音或取消静音音频设备。
    enableAudioCaptureDevice 开/关音频采集设备。
    enableCamera 开/关摄像头,支持设置其他通道的推流。
    useVideoDevice 选择使用某个视频设备,支持设置指定推流通道
    getVideoDeviceList 获取视频设备列表
    getDefaultVideoDeviceID 获取默认视频设备 ID
    startSoundLevelMonitor 启动声浪监控,支持设置监听间隔。
    startSoundLevelMonitorWithConfig 启动声浪监控,支持开启进阶功能。
    stopSoundLevelMonitor 停止声浪监控。
    startAudioSpectrumMonitor 启动音频频谱监控,支持设置监听间隔。
    stopAudioSpectrumMonitor 停止音频频谱监控。
    enableHeadphoneMonitor 开启/关闭 耳返。
    setHeadphoneMonitorVolume 设置耳返音量。
    enableMixSystemPlayout 开启/关闭系统声卡采集。
    setMixSystemPlayoutVolume 设置系统声卡采集的音量。
    enableMixEnginePlayout 是否将 SDK 播放的声音混到推流中。
    startAudioVADStableStateMonitor 开始语音的稳态检测,可设置检测周期。
    stopAudioVADStableStateMonitor 停止语音的稳态检测。
    onAudioDeviceStateChanged 音频设备状态改变
    onAudioDeviceVolumeChanged 音频设备音量变更。
    onVideoDeviceStateChanged 视频设备状态改变。
    onCapturedSoundLevelUpdate 本地采集音频声浪回调。
    onCapturedSoundLevelInfoUpdate 本地采集音频声浪回调,支持人声检测。
    onRemoteSoundLevelUpdate 远端拉流音频声浪回调。
    onLocalCaptureVideoData 本地采集视频数据回调。
    onRemotePlayVideoData 拉流视频数据回调。
    onRemoteSoundLevelInfoUpdate 远端拉流音频声浪回调,支持人声检测。
    onCapturedAudioSpectrumUpdate 本地采集音频频谱回调。
    onRemoteAudioSpectrumUpdate 远端拉流音频频谱回调。
    onLocalDeviceExceptionOccurred 本地设备异常通知。
    onRemoteCameraStateUpdate 远端摄像头设备状态通知。
    onRemoteMicStateUpdate 远端麦克风设备状态通知。
    onRemoteSpeakerStateUpdate 远端扬声器设备状态通知。
    onAudioVADStateUpdate 检测音频数据的稳态语音状态的回调。
    getCurrentAudioDevice 获取当前使用的音频设备信息。

    自定义视频采集和渲染

    方法名 描述
    enableCustomVideoCapture 开始或停止自定义视频采集,支持设置其他通道的推流。
    enableExternalRender 开启/关闭外部渲染,当开启外部渲染时,SDK 内部将不再进行数据渲染。
    registerCustomVideoCapturePlugin 注册自定义视频采集插件
    unregisterCustomVideoCapturePlugin 注销自定义视频采集插件。
    enableCameraVideoDataCapturePlugin 开启/关闭摄像头视频数据采集插件
    getCameraVideoDataCapturePlugin 获取摄像头视频数据采集插件,需要先调用接口 [enableCameraVideoDataCapturePlugin] 开启才能使用。
    setCustomVideoCaptureFillMode 设置自定义视频采集画面缩放填充模式,支持其他路推流
    setCustomVideoCaptureRegionOfInterest 设置指定推流通道自定义视频采集编码器的感兴趣区域(ROI)。
    enableCustomVideoProcessing 自定义视频前处理配置开关,支持指定推流通道号。
    registerCustomVideoProcessPlugin 注册自定义视频前处理插件
    setCustomVideoProcessCutRegion 设置自定义视频前处理裁剪区域

    自定义音频采集和渲染

    方法名 描述
    enableCustomAudioCaptureProcessing 开启本地采集自定义音频处理(耳返前)。
    registerCustomAudioProcessPlugin 注册自定义音频处理插件。
    unregisterCustomAudioProcessPlugin 注销自定义音频处理插件。
    enableCustomAudioCaptureProcessingAfterHeadphoneMonitor 开启本地采集自定义音频处理(耳返后)。
    enableCustomAudioIO 开启自定义音频 IO 功能,支持其他路推流,支持 PCM 、AAC 格式数据。
    registerCustomAudioCapturePlugin 注册自定义音频采集插件。
    unregisterCustomAudioCapturePlugin 注销自定义音频采集插件。

    实用工具

    方法名 描述
    startNetworkSpeedTest 启动网络测速,支持设置测速周期。
    stopNetworkSpeedTest 停止网络测速。
    getNetworkTimeInfo 获取同步网络时间信息。
    onNetworkModeChanged 网络模式变更回调。
    onNetworkSpeedTestError 网络测速异常回调。
    onNetworkSpeedTestQualityUpdate 网络测速质量回调。
    onNetworkQuality 房间内正在推流的用户的网络质量回调。

    版权音乐

    方法名 描述
    createCopyrightedMusic 创建版权音乐实例对象。
    destroyCopyrightedMusic 销毁版权音乐实例对象。
    initCopyrightedMusic 初始化版权音乐模块。
    getCacheSize 获取缓存大小。
    clearCache 清除缓存。
    sendExtendedRequest 发送扩展功能请求。
    getLrcLyricWithVendorID 获取 lrc 格式歌词。
    getLrcLyricWithConfig 获取 lrc 格式歌词。
    getKrcLyricByToken 获取逐字歌词。
    requestResource 获取音乐资源。
    requestResourceWithConfigV2 获取音乐资源。
    getSharedResource 获取分享歌曲资源。
    getSharedResourceWithConfigV2 获取分享歌曲资源。
    download 下载音乐资源。
    queryCacheWithConfig 查询资源是否有缓存。
    queryCacheWithConfigV2 查询资源是否有缓存。
    getDuration 获取歌曲或伴奏文件的播放时长。
    setScoringLevel 设置打分难度级别。
    startScore 开始评分。
    pauseScore 暂停评分。
    resumeScore 恢复评分。
    stopScore 结束评分。
    resetScore 重置评分。
    getPreviousScore 获取上一句的评分。
    getAverageScore 获取平均评分。
    getTotalScore 获取总评分。
    getFullScore 获取满分。
    getStandardPitch 获取标准音高数据。
    getCurrentPitch 获取实时音高数据。
    onDownloadProgressUpdate 加载歌曲或伴奏进度回调。
    onCurrentPitchValueUpdate 实时音高线回调。

    屏幕共享

    方法名 描述
    getScreenCaptureSources 获取屏幕列表或屏幕中的窗口列表。
    createScreenCaptureSource 创建屏幕采集源
    destroyScreenCaptureSource 销毁屏幕采集源对象
    updateCaptureSource 更新屏幕采集源
    startCapture 开始屏幕采集。
    stopCapture 停止屏幕采集。
    getCaptureSourceRect 获取屏幕采集源的矩形。
    updateCaptureRegion 更新屏幕采集的区域。
    setExcludeWindowList 设置过滤的窗口列表。
    enableWindowActivate 是否激活窗口提升至前台显示。
    enableCursorVisible 设置是否显示光标
    getIndex 获取屏幕采集源索引。
    onExceptionOccurred 屏幕采集异常通知

    废弃接口列表

    方法名 描述
    init 【已废弃】初始化引擎。此函数在 2.14.0 版本及以上已废弃,请使用 [createEngine] 函数代替。
    requestSong 【已废弃】点歌。此函数在 3.0.2 版本及以上已废弃,请使用 [requestResource] 函数代替。
    requestAccompaniment 【已废弃】点伴奏。此函数在 3.0.2 版本及以上已废弃,请使用 [requestResource] 函数代替。
    requestAccompanimentClip 【已废弃】点伴奏高潮片段。此函数在 3.0.2 版本及以上已废弃,请使用 [requestResource] 函数代替。
    getMusicByToken 【已废弃】获取歌曲或伴奏。此函数在 3.0.2 版本及以上已废弃,请使用 [getSharedResource] 函数代替。
    getLrcLyric 【已废弃】获取 lrc 格式歌词。此函数在 3.2.1 版本及以上已废弃,请使用 [getLrcLyricWithVendorID]。
    queryCache 【已废弃】查询资源是否有缓存。此函数在 3.2.1 版本及以上已废弃,请使用 [queryCacheWithVendorID]。
    queryCacheWithVendorID 【已废弃】查询资源是否有缓存。此函数在 3.9.0 版本及以上已废弃,请使用带 [config] 参数的函数 [queryCacheWithConfig] 代替。
    本篇目录