API 概览
声网通过全球部署的 SD-RTN™,提供可以灵活搭配的 API 组合,实现质量可靠的实时音视频通信。
初始化相关
| 方法/回调 | 描述 |
|---|---|
| createAgoraRtcEngine | 创建 IRtcEngineEx 对象。 |
| initialize | 初始化 IRtcEngine。 |
| release | 销毁 IRtcEngine 对象。 |
| addListener | 添加一个 IRtcEngineEvent 监听器。 |
| removeListener | 移除指定的 IRtcEngineEvent 监听器。 |
| removeAllListeners | 移除指定事件类型的所有监听器。 |
| getMediaEngine | 获取 IMediaEngine 对象。 |
频道相关
| 方法/回调 | 描述 |
|---|---|
| setChannelProfile | 设置频道场景。 |
| joinChannel | 设置媒体选项并加入频道。 |
| joinChannelEx | 加入频道。 |
| updateChannelMediaOptions | 加入频道后更新频道媒体选项。 |
| updateChannelMediaOptionsEx | 加入频道后更新频道媒体选项 。 |
| leaveChannel | 设置频道选项并离开频道。 |
| leaveChannelEx | 设置频道选项并离开频道。 |
| preloadChannel | 使用 token、channelId、uid 预加载频道。 |
| preloadChannelWithUserAccount | 使用 token、channelId、userAccount 预加载频道。 |
| updatePreloadChannelToken | 更新预加载频道的通配 Token。 |
| renewToken | 更新 Token。 |
| setClientRole | 设置直播场景下的用户角色和观众端延时级别。 |
| onJoinChannelSuccess | 成功加入频道回调。 |
| onRejoinChannelSuccess | 成功重新加入频道回调。 |
| onClientRoleChanged | 用户角色、观众端延时级别已切换回调。 |
| onClientRoleChangeFailed | 用户角色切换失败回调。 |
| onLeaveChannel | 离开频道回调。 |
| onUserJoined | 远端用户(通信场景)/主播(直播场景)加入当前频道回调。 |
| onUserOffline | 远端用户(通信场景)/主播(直播场景)离开当前频道回调。 |
| onNetworkTypeChanged | 本地网络类型发生改变回调。 |
| onUplinkNetworkInfoUpdated | 上行网络信息变化回调。 |
| onConnectionLost | 网络连接中断,且 SDK 无法在 10 秒内连接服务器回调。 |
| onConnectionStateChanged | 网络连接状态已改变回调。 |
| onRequestToken | Token 已过期回调。 |
| onTokenPrivilegeWillExpire | Token 即将在 30s 内过期回调。 |
| onError | 发生错误回调。 |
发布和订阅
音频基础功能
| 方法/回调 | 描述 |
|---|---|
| adjustUserPlaybackSignalVolume | 调节本地播放的指定远端用户信号音量。 |
| adjustUserPlaybackSignalVolumeEx | 调节本地播放的指定远端用户信号音量。 |
| adjustPlaybackSignalVolume | 调节本地播放的所有远端用户信号音量。 |
| enableAudio | 启用音频模块。 |
| disableAudio | 关闭音频模块。 |
| enableAudioVolumeIndication | 启用用户音量提示。 |
| enableAudioVolumeIndicationEx | 启用用户音量提示。 |
| setAudioProfile | 设置音频编码属性和音频场景。 |
| setAudioScenario | 设置音频场景。 |
| onAudioVolumeIndication | 用户音量提示回调。 |
| onActiveSpeaker | 监测到远端最活跃用户回调。 |
| onLocalAudioStateChanged | 本地音频状态发生改变回调。 |
| onFirstLocalAudioFramePublished | 已发布本地音频首帧回调。 |
| onFirstRemoteAudioFrame | 已接收远端音频首帧回调。 |
| onUserMuteAudio | 远端用户(通信场景)/主播(直播场景)停止或恢复发送音频流回调。 |
| onRemoteAudioStateChanged | 远端音频流状态发生改变回调。 |
| onLocalAudioStats | 通话中本地音频流的统计信息回调。 |
| onRemoteAudioStats | 通话中远端音频流的统计信息回调。 |
音频采集
| 方法/回调 | 描述 |
|---|---|
| enableLocalAudio | 开启或关闭本地音频采集。 |
| enableLoopbackRecording | 开启声卡采集。 |
| enableLoopbackRecordingEx | 开启声卡采集。 |
| adjustRecordingSignalVolume | 调节音频采集信号音量。 |
| adjustLoopbackSignalVolume | 调节声卡采集信号音量。 |
| muteRecordingSignal | 是否将录音信号静音。 |
| enableInEarMonitoring | 开启耳返功能。 |
| setInEarMonitoringVolume | 设置耳返音量。 |
音频前处理和后处理
原始音频数据
| 方法/回调 | 描述 |
|---|---|
| registerAudioFrameObserver | 注册音频观测器对象。 |
| setEarMonitoringAudioFrameParameters | 设置耳返的音频数据格式。 |
| setRecordingAudioFrameParameters | 设置采集的原始音频数据格式。 |
| setPlaybackAudioFrameParameters | 设置播放的原始音频数据格式。 |
| setMixedAudioFrameParameters | 设置采集和播放音频混音后的原始音频数据格式。 |
| setPlaybackAudioFrameBeforeMixingParameters | 设置混音前的原始音频播放数据格式。 |
| onEarMonitoringAudioFrame | 获得耳返的原始音频数据。 |
| onRecordAudioFrame | 获得采集的原始音频数据。 |
| onPlaybackAudioFrame | 获得播放的原始音频数据。 |
| onPlaybackAudioFrameBeforeMixing | 获取所订阅的远端用户混音前的声音。 |
| onMixedAudioFrame | 获取采集和播放音频混音后的数据。 |
已编码音频数据
| 方法/回调 | 描述 |
|---|---|
| registerAudioEncodedFrameObserver | 注册音频编码数据观测器。 |
| unregisterAudioEncodedFrameObserver | 取消注册音频编码数据观测器。 |
| onRecordAudioEncodedFrame | 获取本地用户的音频编码数据。 |
| onPlaybackAudioEncodedFrame | 获取所有远端用户的音频编码数据。 |
| onMixedAudioEncodedFrame | 获取本地和所有远端用户混音后的音频编码数据。 |
自定义音频采集和渲染
| 方法/回调 | 描述 |
|---|---|
| createCustomAudioTrack | 创建一个自定义音频采集轨道。 |
| destroyCustomAudioTrack | 销毁指定的音频轨道。 |
| setExternalAudioSink | 设置外部音频渲染。 |
| pullAudioFrame | 拉取远端音频数据。 |
| pushAudioFrame | 推送外部音频帧。 |
| adjustCustomAudioPlayoutVolume | 调节自定义音频采集轨道在本地播放的音量。 |
| adjustCustomAudioPublishVolume | 调节自定义音频采集轨道在远端播放的音量。 |
| enableCustomAudioLocalPlayback | 设置是否在本地播放外部音频源。 |
音频频谱
| 方法/回调 | 描述 |
|---|---|
| registerAudioSpectrumObserver | 注册音频频谱观测器。 |
| enableAudioSpectrumMonitor | 开启音频频谱监测。 |
| disableAudioSpectrumMonitor | 关闭音频频谱监测。 |
| unregisterAudioSpectrumObserver | 取消注册音频频谱观测器。 |
| onLocalAudioSpectrum | 获取本地音频频谱。 |
| onRemoteAudioSpectrum | 获取远端音频频谱。 |
视频基础功能
| 方法/回调 | 描述 |
|---|---|
| enableVideo | 启用视频模块。 |
| disableVideo | 关闭视频模块。 |
| setVideoScenario | 设置视频业务场景。 |
| setVideoEncoderConfiguration | 设置视频编码属性。 |
| setVideoEncoderConfigurationEx | 设置视频编码属性。 |
| startPreview | 开启视频预览并指定预览的视频源。 |
| stopPreview | 停止视频预览。 |
| onLocalVideoStateChanged | 本地视频状态发生改变回调。 |
| onLocalVideoStats | 本地视频流统计信息回调。 |
| onFirstLocalVideoFramePublished | 已发布本地视频首帧回调。 |
| onVideoPublishStateChanged | 视频发布状态改变回调。 |
| onVideoSizeChanged | 本地或远端视频大小和旋转信息发生改变回调。 |
| onRemoteVideoStateChanged | 远端视频状态发生改变回调。 |
| onRemoteVideoStats | 通话中远端视频流的统计信息回调。 |
| onFirstLocalVideoFrame | 已显示本地视频首帧回调。 |
| onFirstRemoteVideoFrame | 渲染器已接收首帧远端视频回调。 |
| onFirstRemoteVideoDecoded | 已接收到远端视频并完成解码回调。 |
| onUserMuteVideo | 远端用户取消或恢复发布视频流回调。 |
| onUserEnableVideo | 远端用户开/关视频模块回调。 |
视频采集
| 方法/回调 | 描述 |
|---|---|
| enableLocalVideo | 开关本地视频采集。 |
| startCameraCapture | 开始通过摄像头采集视频。 |
| stopCameraCapture | 停止通过摄像头采集视频。 |
视频前处理和后处理
| 方法/回调 | 描述 |
|---|---|
| enableContentInspect | 开启/关闭本地截图上传。 |
| takeSnapshot | 对视频截图。 |
| takeSnapshotWithConfig | 在指定观测位置进行视频截图。 |
| takeSnapshotEx | 使用连接 ID 获取视频截图。 |
| takeSnapshotWithConfigEx | 使用连接 ID 获取指定观测位置的视频截图。 |
| enableVirtualBackground | 开启/关闭虚拟背景。 |
| startLocalVideoTranscoder | 开启本地合图。 |
| stopLocalVideoTranscoder | 停止本地合图。 |
| updateLocalTranscoderConfiguration | 更新本地合图配置。 |
| onLocalVideoTranscoderError | 本地合图发生错误回调。 |
| enableVideoImageSource | 设置是否开启垫片推流功能。 |
| setBeautyEffectOptions | 设置美颜效果选项。 |
| setColorEnhanceOptions | 设置色彩增强功能。 |
| setLowlightEnhanceOptions | 设置暗光增强功能。 |
| setVideoDenoiserOptions | 设置视频降噪功能。 |
| setFilterEffectOptions | 设置滤镜效果选项并指定媒体源。 |
| setFaceShapeBeautyOptions | 设置美型效果选项并指定媒体源。 |
| setFaceShapeAreaOptions | 设置美型部位选项并指定媒体源。 |
| getFaceShapeBeautyOptions | 获取美型效果选项。 |
| getFaceShapeAreaOptions | 获取美型部位选项。 |
| isCameraCenterStageSupported | 查询摄像头是否支持人像锁定。(仅适用于 macOS) |
| enableCameraCenterStage | 开启或关闭人像锁定功能。(仅适用于 macOS) |
| onSnapshotTaken | 视频截图结果回调。 |
| addVideoWatermark | 添加本地视频水印。 |
| addVideoWatermarkEx | 添加本地视频水印。 |
| clearVideoWatermarks | 删除已添加的视频水印。 |
| clearVideoWatermarkEx | 删除已添加的视频水印。 |
视频渲染
| 方法/回调 | 描述 |
|---|---|
| destroyRendererByConfig | 销毁多个视频渲染器对象。 |
| destroyRendererByView | 销毁单个视频渲染器对象。 |
| setRenderMode | 设置播放器视图的渲染模式。 |
| setLocalRenderMode | 更新本地视图显示模式。 |
| setRemoteRenderMode | 更新远端视图显示模式。 |
| setRemoteRenderModeEx | 设置远端视图显示模式。 |
| setLocalRenderTargetFps | 设置本地视频渲染的最大帧率。 |
| setRemoteRenderTargetFps | 设置视频在远端渲染的最大帧率。 |
| setView | 设置播放器渲染视图。 |
| setupLocalVideo | 初始化本地视图。 |
| setupRemoteVideo | 初始化远端用户视图。 |
| setupRemoteVideoEx | 初始化远端用户视图。 |
| enableInstantMediaRendering | 开启音视频帧加速渲染。 |
| startMediaRenderingTracing | 开启视频帧渲染数据打点。 |
| startMediaRenderingTracingEx | 开启视频帧渲染数据打点。 |
| onVideoRenderingTracingResult | 视频帧渲染事件回调。 |
原始视频数据
| 方法/回调 | 描述 |
|---|---|
| registerVideoFrameObserver | 注册原始视频观测器对象。 |
| onCaptureVideoFrame | 获取本地设备采集到的视频数据。 |
| onPreEncodeVideoFrame | 获取本地视频编码前的视频数据。 |
| onRenderVideoFrame | 获取远端发送的视频数据。 |
已编码视频数据
| 方法/回调 | 描述 |
|---|---|
| registerVideoEncodedFrameObserver | 为编码后的视频图像注册视频帧接收观测器。 |
| unregisterVideoEncodedFrameObserver | 为编码后的视频图像取消注册视频帧接收观测器。 |
| onEncodedVideoFrameReceived | 报告接收端已收到远端发送的待解码视频帧。 |
自定义视频采集和渲染
| 方法/回调 | 描述 |
|---|---|
| createCustomVideoTrack | 创建一个自定义的视频轨道。 |
| destroyCustomVideoTrack | 销毁指定的视频轨道。 |
| setExternalVideoSource | 设置外部视频源。 |
| pushVideoFrame | 将外部原始视频帧通过自定义视频轨道发布到频道中。 |
音乐文件播放
| 方法/回调 | 描述 |
|---|---|
| startAudioMixing | 开始播放音乐文件。 |
| stopAudioMixing | 停止播放音乐文件。 |
| pauseAudioMixing | 暂停播放音乐文件。 |
| resumeAudioMixing | 恢复播放音乐文件。 |
| adjustAudioMixingVolume | 调节音乐文件的播放音量。 |
| adjustAudioMixingPlayoutVolume | 调节音乐文件在本地播放的音量。 |
| adjustAudioMixingPublishVolume | 调节音乐文件远端播放音量。 |
| getAudioMixingPlayoutVolume | 获取音乐文件的本地播放音量。 |
| getAudioMixingPublishVolume | 获取音乐文件的远端播放音量。 |
| setAudioMixingPlaybackSpeed | 设置当前音乐文件的播放速度。 |
| getAudioMixingDuration | 获取音乐文件总时长。 |
| getAudioMixingCurrentPosition | 获取音乐文件的播放进度。 |
| setAudioMixingPitch | 调整本地播放的音乐文件的音调。 |
| setAudioMixingPosition | 设置音乐文件的播放位置。 |
| setAudioMixingDualMonoMode | 设置当前音频文件的声道模式。 |
| getAudioTrackCount | 获取当前音乐文件的音轨索引。 |
| selectAudioTrack | 指定当前音乐文件的播放音轨。 |
| selectMultiAudioTrack | 选择本地播放和发送至远端的音轨。 |
| onAudioMixingStateChanged | 音乐文件的播放状态已改变回调。 |
| onAudioMixingPositionChanged | 音乐文件播放进度回调。 |
音效文件播放
| 方法/回调 | 描述 |
|---|---|
| getEffectsVolume | 获取音效文件的播放音量。 |
| setEffectsVolume | 设置音效文件的播放音量。 |
| getVolumeOfEffect | 获取指定音效文件的播放音量。 |
| setVolumeOfEffect | 设置指定音效文件的播放音量。 |
| preloadEffect | 将音效文件加载至内存。 |
| playEffect | 播放指定的本地或在线音效文件。 |
| playAllEffects | 播放所有音效文件。 |
| pauseEffect | 暂停音效文件播放。 |
| pauseAllEffects | 暂停所有音效文件播放。 |
| resumeEffect | 恢复播放指定音效文件。 |
| resumeAllEffects | 恢复播放所有音效文件。 |
| stopEffect | 停止播放指定音效文件。 |
| stopAllEffects | 停止播放所有音效文件。 |
| unloadEffect | 从内存释放某个预加载的音效文件。 |
| unloadAllEffects | 从内存释放所有预加载音效文件。 |
| getEffectDuration | 获取指定音效文件总时长。 |
| getEffectCurrentPosition | 获取指定音效文件的播放进度。 |
| setEffectPosition | 设置指定音效文件的播放位置。 |
| onAudioEffectFinished | 本地音效文件播放已结束回调。 |
虚拟节拍器
| 方法/回调 | 描述 |
|---|---|
| startRhythmPlayer | 开启虚拟节拍器。 |
| stopRhythmPlayer | 关闭虚拟节拍器。 |
| configRhythmPlayer | 配置虚拟节拍器。 |
| onRhythmPlayerStateChanged | 虚拟节拍器状态发生改变回调。 |
媒体播放器
更多有关媒体播放器的方法,详见内置媒体播放器。
| 方法/回调 | 描述 |
|---|---|
| createMediaPlayer | 创建媒体播放器对象。 |
| getMediaPlayerCacheManager | 获取 IMediaPlayerCacheManager 实例。 |
| IMediaPlayer | 提供媒体播放器功能的类,支持多实例。 |
| IMediaPlayerCacheManager | 该类提供管理媒体播放器中缓存媒体文件的方法。 |
| IMediaPlayerSourceObserver | 提供媒体播放器的回调。 |
| addListener | 添加一个 IMediaPlayerEvent 监听器。 |
| removeAllListeners | 移除指定事件的所有监听器。 |
| removeListener | 移除指定的 IMediaPlayerEvent 监听器。 |
媒体播放器缓存
| 方法/回调 | 描述 |
|---|---|
| enableAutoRemoveCache | 设置是否开启自动清除缓存文件功能。 |
| removeAllCaches | 删除媒体播放器中所有已缓存的媒体文件。 |
| removeCacheByUri | 删除指定的已缓存媒体文件。 |
| removeOldCache | 删除媒体播放器中近期最少使用的一个缓存媒体文件。 |
| setCacheDir | 设置待缓存的媒体文件的储存路径。 |
| setMaxCacheFileCount | 设置缓存媒体文件数量的上限。 |
| setMaxCacheFileSize | 设置缓存媒体文件的总缓存大小的上限。 |
| getCacheDir | 获取缓存文件的储存路径。 |
| getCacheFileCount | 获取当前已缓存的媒体文件的总数量。 |
| getMaxCacheFileCount | 获取所设置的缓存文件数量上限。 |
| getMaxCacheFileSize | 获取所设置的缓存文件总缓存的上限。 |
| onPlayerCacheStats | 报告当前缓存中的媒体资源的相关信息。 |
音视频录制
| 方法/回调 | 描述 |
|---|---|
| createMediaRecorder | 创建音视频录制对象。 |
| setMediaRecorderObserver | 注册 IMediaRecorderObserver 观测器。 |
| startRecording | 开启音视频流录制。 |
| stopRecording | 停止音视频流录制。 |
| startAudioRecording | 开始客户端录音并进行录音配置。 |
| stopAudioRecording | 停止客户端录音。 |
| destroyMediaRecorder | 销毁音视频录制对象。 |
| addListener | 添加一个 IMediaRecorderEvent 监听器。 |
| removeAllListeners | 移除指定事件的所有监听器。 |
| removeListener | 移除指定的 IMediaRecorderEvent 监听器。 |
| onRecorderStateChanged | 录制状态发生改变回调。 |
| onRecorderInfoUpdated | 录制信息更新回调。 |
跨频道媒体流转发
| 方法/回调 | 描述 |
|---|---|
| startOrUpdateChannelMediaRelay | 开始或更新跨频道媒体流转发。 |
| startOrUpdateChannelMediaRelayEx | 开始或更新跨频道媒体流转发。 |
| stopChannelMediaRelay | 停止跨频道媒体流转发。一旦停止,主播会退出所有目标频道。 |
| stopChannelMediaRelayEx | 停止跨频道媒体流转发。一旦停止,主播会退出所有目标频道。 |
| pauseAllChannelMediaRelay | 暂停向所有目标频道转发媒体流。 |
| pauseAllChannelMediaRelayEx | 暂停向所有目标频道转发媒体流。 |
| resumeAllChannelMediaRelay | 恢复向所有目标频道转发媒体流。 |
| resumeAllChannelMediaRelayEx | 恢复向所有目标频道转发媒体流。 |
| onChannelMediaRelayStateChanged | 跨频道媒体流转发状态发生改变回调。 |
旁路推流
| 方法/回调 | 描述 |
|---|---|
| startRtmpStreamWithoutTranscoding | 开始非转码推流。 |
| startRtmpStreamWithoutTranscodingEx | 开始非转码推流。 |
| startRtmpStreamWithTranscoding | 开始旁路推流并设置转码属性。 |
| startRtmpStreamWithTranscodingEx | 开始旁路推流并设置转码属性。 |
| updateRtmpTranscoding | 更新旁路推流转码属性。 |
| updateRtmpTranscodingEx | 更新旁路推流转码属性。 |
| stopRtmpStream | 结束旁路推流。 |
| stopRtmpStreamEx | 结束旁路推流。 |
| onRtmpStreamingEvent | 旁路推流事件回调。 |
| onRtmpStreamingStateChanged | 旁路推流状态发生改变回调。 |
| onTranscodingUpdated | 旁路推流转码设置已被更新回调。 |
直推 CDN
| 方法/回调 | 描述 |
|---|---|
| startDirectCdnStreaming | 设置主播端开始直接向 CDN 推流。 |
| stopDirectCdnStreaming | 设置主播端停止直接向 CDN 推流。 |
| setDirectCdnStreamingAudioConfiguration | 设置主播端直接向 CDN 推流时的音频编码属性。 |
| setDirectCdnStreamingVideoConfiguration | 设置主播端直接向 CDN 推流时的视频编码属性。 |
| onDirectCdnStreamingStateChanged | CDN 推流状态改变回调。 |
| onDirectCdnStreamingStats | CDN 推流统计数据回调。 |
数据流
| 方法/回调 | 描述 |
|---|---|
| createDataStream | 创建数据流。 |
| createDataStreamEx | 创建数据流。 |
| sendStreamMessage | 发送数据流。 |
| onStreamMessage | 接收到对方数据流消息的回调。 |
| onStreamMessageError | 接收对方数据流消息发生错误的回调。 |
Metadata (SEI)
| 方法/回调 | 描述 |
|---|---|
| registerMediaMetadataObserver | 注册媒体 metadata 观测器用于接收或发送 metadata。 |
| unregisterMediaMetadataObserver | 取消注册媒体 metadata 观测器。 |
| setMaxMetadataSize | 设置媒体附属信息的最大大小。 |
| sendMetaData | 发送媒体附属信息。 |
| onMetaData | 报告已获取媒体附属信息。 |
| onMetadataReceived | 接收端已收到 metadata。 |
视频设备管理
| 方法/回调 | 描述 |
|---|---|
| setCameraCapturerConfiguration | 设置摄像头采集配置。 |
| queryCodecCapability | 查询 SDK 支持的视频编解码能力。 |
| enumerateVideoDevices | 获取系统中所有的视频设备列表。(仅适用于 Windows 和 macOS) |
| setDevice | 通过设备 ID 指定视频采集设备。(仅适用于 Windows 和 macOS) |
| getDevice | 获取当前使用的视频采集设备。(仅适用于 Windows 和 macOS) |
| getVideoDeviceManager | 获取 IVideoDeviceManager 对象,以管理视频设备。 |
| getCapability | 获取视频采集设备在指定的视频格式下的详细视频帧信息。(仅适用于 Windows 和 macOS) |
| numberOfCapabilities | 获取指定视频采集设备支持的视频格式数量。(仅适用于 Windows 和 macOS) |
| setCameraDeviceOrientation | 设置采集视频的旋转角度。(仅适用于 Windows) |
| onVideoDeviceStateChanged | 视频设备变化回调。(仅适用于 Windows 和 macOS) |
音频设备管理
插件相关
| 方法/回调 | 描述 |
|---|---|
| loadExtensionProvider | 加载插件。 |
| registerExtension | 注册插件。 |
| enableExtension | 启用/禁用插件。 |
| getExtensionProperty | 获取插件的详细信息。 |
| setExtensionProperty | 设置插件的属性。 |
| setExtensionProviderProperty | 设置插件服务商的属性。 |
| onExtensionStartedWithContext | 插件已启用成功回调。 |
| onExtensionStoppedWithContext | 插件已禁用回调。 |
| onExtensionEventWithContext | 插件事件回调。 |