API 概览
声网通过全球部署的虚拟网络,提供可以灵活搭配的 API 组合,为移动端到移动端以及移动端到 Web 端提供质量可靠的实时音视频通信。
注:
- 在调用 API 过程中,SDK 可能会返回错误码和警告码,详见 错误码和警告码 。
- IAgoraRtcEngine 类包含应用程序调用的主要方法。
- IAgoraRtcEngineEventHandler 类用于向应用程序发送回调通知。
- IAgoraRtcChannel 类在指定频道中实现实时音视频功能。通过创建多个 IAgoraRtcChannel 对象,用户可以同时加入多个频道。
- IAgoraRtcChannelEventHandler 类监听和报告指定频道的事件和数据。
核心方法
方法 | 描述 |
---|---|
CreateAgoraRtcEngine | 创建 IAgoraRtcEngine 对象并返回指针。 |
Initialize | 创建并初始化 IAgoraRtcEngine 。 |
Dispose | 销毁 IAgoraRtcEngine、IAgoraRtcAudioPlaybackDeviceManager、 IAgoraRtcAudioRecordingDeviceManager 和 IAgoraRtcVideoDeviceManager 对象。 |
SetChannelProfile | 设置频道场景。 |
SetClientRole [1/2] | 设置用户角色。 |
SetClientRole [2/2] | 设置直播场景下的用户角色和级别。 |
JoinChannel [1/2] | 加入频道。 |
JoinChannel [2/2] | 加入频道并设置是否自动订阅音频或视频流。 |
SwitchChannel [1/2] | 快速切换直播频道。 |
SwitchChannel [2/2] | 快速切换直播频道,并设置是否自动订阅音频流或视频流。 |
LeaveChannel | 离开频道。 |
RenewToken | 更新 Token。 |
GetConnectionState | 获取当前网络连接状态。 |
核心事件
事件 | 描述 |
---|---|
OnConnectionStateChanged | 网络连接状态已改变回调。 |
OnJoinChannelSuccess | 成功加入频道回调。 |
OnRejoinChannelSuccess | 成功重新加入频道回调。 |
OnLeaveChannel | 离开频道回调。 |
OnClientRoleChanged | 直播场景下用户角色切换成功回调。 |
OnUserJoined | 远端用户(通信场景)/主播(直播场景)加入当前频道回调。 |
OnUserOffline | 远端用户(通信场景)/主播(直播场景)离开当前频道回调。 |
OnNetworkTypeChanged | 本地网络类型发生改变回调。 |
OnConnectionLost | 网络连接中断,且 SDK 无法在 10 秒内连接服务器回调。 |
OnTokenPrivilegeWillExpire | Token 服务将在30s内过期回调。 |
OnRequestToken | Token 已过期回调。 |
音频管理
方法 | 描述 |
---|---|
EnableAudio | 启用音频模块。 |
DisableAudio | 关闭音频模块。 |
SetAudioProfile | 设置音频编码属性和音频场景。 |
AdjustLoopbackRecordingSignalVolume | 调节声卡采集信号音量。 |
AdjustUserPlaybackSignalVolume | 调节本地播放的指定远端用户信号音量。 |
AdjustPlaybackSignalVolume | 调节本地播放的所有远端用户信号音量。 |
EnableLocalAudio | 开关本地音频采集。 |
MuteLocalAudioStream | 取消或恢复发布本地音频流。 |
MuteRemoteAudioStream | 取消或恢复订阅指定远端用户的音频流。 |
MuteAllRemoteAudioStreams | 取消或恢复订阅所有远端用户的音频流。 |
视频管理
方法 | 描述 |
---|---|
EnableVideo | 启用视频模块。 |
DisableVideo | 关闭视频模块。 |
SetVideoEncoderConfiguration | 设置视频编码属性。 |
SetupLocalVideo | 初始化本地视图。 |
SetupRemoteVideo | 初始化远端用户视图。 |
SetLocalRenderMode [2/2] | 更新本地视图显示模式。 |
SetRemoteRenderMode [2/2] | 更新远端视图显示模式。 |
StartPreview | 开启视频预览。 |
StopPreview | 停止视频预览。 |
EnableLocalVideo | 开关本地视频采集。 |
MuteLocalVideoStream | 取消或恢复发布本地视频流。 |
MuteRemoteVideoStream | 取消或恢复订阅指定远端用户的视频流。 |
MuteAllRemoteVideoStreams | 取消或恢复订阅所有远端用户的视频流。 |
本地媒体事件
事件 | 描述 |
---|---|
OnLocalAudioStateChanged | 本地音频状态发生改变回调。 |
OnLocalVideoStateChanged | 本地视频状态发生改变回调。 |
OnFirstLocalAudioFramePublished | 已发布本地音频首帧回调。 |
OnFirstLocalVideoFramePublished | 已发布本地视频首帧回调。 |
OnFirstLocalVideoFrame | 已显示本地视频首帧回调。 |
OnAudioPublishStateChanged | 音频发布状态改变回调。 |
OnVideoPublishStateChanged | 视频发布状态改变回调。 |
远端媒体事件
事件 | 描述 |
---|---|
OnRemoteAudioStateChanged | 远端音频流状态发生改变回调。 |
OnRemoteVideoStateChanged | 远端视频状态发生改变回调。 |
OnFirstRemoteVideoFrame | 已显示首帧远端视频回调。 |
OnAudioSubscribeStateChanged | 音频订阅状态发生改变回调。 |
OnVideoSubscribeStateChanged | 视频订阅状态发生改变回调。 |
OnUserMuteAudio | 远端用户(通信场景)/主播(直播场景)停止或恢复发送音频流回调。 |
OnUserMuteVideo | 远端用户暂停/恢复发送视频流回调。 |
OnUserEnableVideo | 远端用户开/关视频模块回调。 |
OnUserEnableLocalVideo | 远端用户开/关本地视频采集回调。 |
数据统计事件
加入频道后,SDK 每隔 2 秒自动触发本组回调。
事件 | 描述 |
---|---|
OnRtcStats | 当前通话统计信息回调。 |
OnNetworkQuality | 通话中每个用户的网络上下行 last mile 质量报告回调。 |
OnLocalAudioStats | 通话中本地音频流的统计信息回调。 |
OnLocalVideoStats | 本地视频流统计信息回调。 |
OnRemoteAudioStats | 通话中远端音频流的统计信息回调。 |
OnRemoteVideoStats | 通话中远端视频流的统计信息回调。 |
视频前处理及后处理
方法 | 描述 |
---|---|
SetBeautyEffectOptions | 设置美颜效果选项。 |
EnableVirtualBackground | 开启/关闭虚拟背景(beta 功能)。 |
SetVideoDenoiserOptions | 设置视频降噪功能。 |
SetLowlightEnhanceOptions | 设置暗光增强功能。 |
SetColorEnhanceOptions | 设置色彩增强功能。 |
事件 | 描述 |
---|---|
OnVirtualBackgroundSourceEnabled | 报告虚拟背景是否成功开启。(beta 功能) |
多频道管理
API | 描述 |
---|---|
CreateChannel | 创建并获取一个 IAgoraRtcChannel 对象。 |
IAgoraRtcChannel | 提供在频道中实现实时音视频功能的方法。 |
IAgoraRtcChannelEventHandler | IAgoraRtcChannelEventHandler 接口类用于 SDK 向 app 发送 IAgoraRtcChannel 的事件通知。 |
屏幕共享
方法 | 描述 |
---|---|
StartScreenCaptureByDisplayId | 通过屏幕 ID 共享屏幕。 |
StartScreenCaptureByWindowId | 通过窗口 ID 共享窗口。 |
SetScreenCaptureContentHint | 设置屏幕共享内容类型。 |
UpdateScreenCaptureParameters | 更新屏幕共享的参数配置。 |
updateScreenCaptureRegion | 更新屏幕共享区域。 |
StopScreenCapture | 停止屏幕共享。 |
事件 | 描述 |
---|---|
OnScreenCaptureInfoUpdated | 屏幕共享信息更新回调。 |
音乐文件播放及混音
方法 | 描述 |
---|---|
StartAudioMixing [2/2] | 开始播放音乐文件。 |
StopAudioMixing | 停止播放音乐文件。 |
PauseAudioMixing | 暂停播放音乐文件。 |
ResumeAudioMixing | 恢复播放音乐文件。 |
AdjustAudioMixingVolume | 调节音乐文件的播放音量。 |
AdjustAudioMixingPlayoutVolume | 调节音乐文件在本地播放的音量。 |
AdjustAudioMixingPublishVolume | 调节音乐文件远端播放音量。 |
SetAudioMixingPitch | 调整本地播放的音乐文件的音调。 |
GetAudioMixingPlayoutVolume | 获取音乐文件的本地播放音量。 |
GetAudioMixingPublishVolume | 获取音乐文件的远端播放音量。 |
GetAudioMixingCurrentPosition | 获取音乐文件的播放进度。 |
SetAudioMixingPosition | 设置音乐文件的播放位置。 |
GetAudioTrackCount | 获取当前音乐文件的音轨索引。 |
SelectAudioTrack | 指定当前音乐文件的播放音轨。 |
setAudioMixingPlaybackSpeed | 设置当前音乐文件的播放速度。 |
SetAudioMixingDualMonoMode | 设置当前音乐文件的声道模式。 |
事件 | 描述 |
---|---|
OnAudioMixingStateChanged | 音乐文件的播放状态已改变回调。 |
OnRemoteAudioMixingBegin | 远端音乐文件播放已开始回调。 |
OnRemoteAudioMixingEnd | 远端音乐文件播放已结束回调。 |
音效文件播放管理
方法 | 描述 |
---|---|
GetEffectsVolume | 获取音效文件的播放音量。 |
SetEffectsVolume | 设置音效文件的播放音量。 |
SetVolumeOfEffect | 实时调整音效文件的播放音量。 |
PlayEffect [2/2] | 播放指定的本地或在线音效文件。 |
StopEffect | 停止播放指定音效文件。 |
StopAllEffects | 停止播放所有音效文件。 |
PreloadEffect | 将音效文件加载至内存。 |
UnloadEffect | 从内存释放某个预加载的音效文件。 |
PauseEffect | 暂停音效文件播放。 |
PauseAllEffects | 暂停所有音效文件播放。 |
ResumeEffect | 恢复播放指定音效文件。 |
ResumeAllEffects | 恢复播放所有音效文件。 |
GetEffectDuration | 获取指定音效文件总时长。 |
SetEffectPosition | 设置指定音效文件的播放位置。 |
GetEffectCurrentPosition | 获取指定音效文件的播放进度。 |
事件 | 描述 |
---|---|
OnAudioEffectFinished | 本地音效文件播放已结束回调。 |
音频文件信息
方法 | 描述 |
---|---|
GetAudioFileInfo | 获取指定音频文件信息。 |
事件 | 描述 |
---|---|
OnRequestAudioFileInfo | 音频文件信息回调。 |
人声效果
方法 | 描述 |
---|---|
SetLocalVoicePitch | 设置本地语音音调。 |
SetLocalVoiceEqualization | 设置本地语音音效均衡。 |
SetLocalVoiceReverb | 设置本地音效混响。 |
SetVoiceBeautifierPreset | 设置预设的美声效果。 |
SetVoiceBeautifierParameters | 设置预设美声效果的参数。 |
SetAudioEffectPreset | 设置 SDK 预设的人声音效。 |
SetAudioEffectParameters | 设置 SDK 预设人声音效的参数。 |
SetVoiceConversionPreset | 设置预设的变声效果。 |
听声辨位
方法 | 描述 |
---|---|
EnableSoundPositionIndication | 开启/关闭远端用户的语音立体声。 |
SetRemoteVoicePosition | 设置远端用户声音的 2D 位置,即水平面位置。 |
CDN 推流
该组方法仅适用于互动直播。
方法 | 描述 |
---|---|
StartRtmpStreamWithoutTranscoding | 开始非转码推流。 |
StartRtmpStreamWithTranscoding | 开始旁路推流并设置转码属性。 |
UpdateRtmpTranscoding | 更新旁路推流转码属性。 |
StopRtmpStream | 结束旁路推流。 |
事件 | 描述 |
---|---|
OnRtmpStreamingStateChanged | 旁路推流状态发生改变回调。 |
OnRtmpStreamingEvent | 旁路推流事件回调。 |
OnTranscodingUpdated | 旁路推流转码设置已被更新回调。 |
跨频道媒体流转发
方法 | 描述 |
---|---|
StartChannelMediaRelay | 开始跨频道媒体流转发。该方法可用于实现跨频道连麦等场景。 |
UpdateChannelMediaRelay | 更新媒体流转发的频道。 |
PauseAllChannelMediaRelay | 暂停向所有目标频道转发媒体流。 |
ResumeAllChannelMediaRelay | 恢复向所有目标频道转发媒体流。 |
StopChannelMediaRelay | 停止跨频道媒体流转发。一旦停止,主播会退出所有目标频道。 |
事件 | 描述 |
---|---|
OnChannelMediaRelayStateChanged | 跨频道媒体流转发状态发生改变回调。 |
OnChannelMediaRelayEvent | 跨频道媒体流转发事件回调。 |
音量提示
方法 | 描述 |
---|---|
EnableAudioVolumeIndication | 启用用户音量提示。 |
事件 | 描述 |
---|---|
OnAudioVolumeIndication | 用户音量提示回调。 |
OnActiveSpeaker | 监测到最活跃用户回调。 |
视频双流模式
方法 | 描述 |
---|---|
EnableDualStreamMode | 开关双流模式。 |
SetRemoteVideoStreamType | 设置订阅的视频流类型。 |
SetRemoteDefaultVideoStreamType | 设置默认订阅的视频流类型。 |
视频流回退
方法 | 描述 |
---|---|
SetLocalPublishFallbackOption | 设置弱网条件下发布的音视频流回退选项。 |
SetRemoteSubscribeFallbackOption | 设置弱网条件下订阅的音视频流的回退选项。 |
SetRemoteUserPriority | 设置远端用户媒体流的优先级。 |
事件 | 描述 |
---|---|
OnLocalPublishFallbackToAudioOnly | 本地发布流已回退为音频流回调。 |
OnRemoteSubscribeFallbackToAudioOnly | 远端订阅流已回退为音频流回调。 |
通话前网络测试
方法 | 描述 |
---|---|
StartEchoTest [2/3] | 开始语音通话回路测试。 |
StartEchoTest [3/3] | 开始音视频通话回路测试。 |
StopEchoTest | 停止语音通话回路测试。 |
EnableLastmileTest | 启用网络测试。 |
DisableLastmileTest | 关闭网络测试。 |
StartLastmileProbeTest | 开始通话前网络质量探测。 |
StopLastmileProbeTest | 停止通话前网络质量探测。 |
事件 | 描述 |
---|---|
OnLastmileQuality | 网络上下行 last mile 质量报告回调。 |
OnLastmileProbeResult | 通话前网络上下行 Last mile 质量探测报告回调。 |
视频自采集(仅 Push 模式)
方法 | 描述 |
---|---|
SetExternalVideoSource | 配置外部视频源。 |
PushVideoFrame | 推送外部原始视频帧到 SDK。 |
音频自采集(仅 Push 模式)
方法 | 描述 |
---|---|
SetExternalAudioSource | 设置外部音频采集参数。 |
SetExternalAudioSourceVolume | 设置指定位置的外部音频帧音量。 |
PushAudioFrame | 推送外部音频帧。 |
音频自渲染(仅 Pull 模式)
方法 | 描述 |
---|---|
SetExternalAudioSink | 设置外部音频渲染。 |
PullAudioFrame | 拉取远端音频数据。 |
原始音频数据
方法 | 描述 |
---|---|
RegisterAudioFrameObserver | 注册语音观测器对象。 |
UnRegisterAudioFrameObserver | 取消注册音频帧观测器。 |
SetRecordingAudioFrameParameters | 设置采集的原始音频数据格式。 |
SetPlaybackAudioFrameParameters | 设置播放的音频格式。 |
SetMixedAudioFrameParameters | 设置录制和播放声音混音后的数据格式。 |
事件 | 描述 |
---|---|
OnRecordAudioFrame | 获得采集的音频。 |
OnPlaybackAudioFrame | 获得播放的声音。 |
OnPlaybackAudioFrameBeforeMixing | 获得混音前的指定用户的声音。 |
OnMixedAudioFrame | 获取采集和播放语音混音后的数据。 |
IsMultipleChannelFrameWanted | 多频道场景下,设置是否获取多个频道的音频数据。 |
OnPlaybackAudioFrameBeforeMixingEx | 获取各频道混音前的音频播放数据。 |
原始视频数据
方法 | 描述 |
---|---|
RegisterVideoFrameObserver | 注册视频观测器对象。 |
UnRegisterVideoFrameObserver | 取消注册视频帧观测器。 |
事件 | 描述 |
---|---|
GetObservedFramePosition | 设置视频观测位置。 |
OnCaptureVideoFrame | 获取本地摄像头采集到的视频数据。 |
OnPreEncodeVideoFrame | 获取本地视频编码前的视频数据。 |
OnRenderVideoFrame | 获取远端发送的视频数据。 |
GetVideoFormatPreference | 请求视频数据格式。 |
getRotationApplied | 设置视频数据旋转。 |
getMirrorApplied | 设置视频数据镜像。 |
IsMultipleChannelFrameWanted | 多频道场景下,设置是否获取多个频道的视频数据。 |
OnRenderVideoFrameEx | 获取各频道的视频播放数据。 |
媒体附属信息
该组方法仅适用于互动直播。
方法 | 描述 |
---|---|
RegisterMediaMetadataObserver | 注册媒体 metadata 观测器用于接收或发送 metadata。 |
UnRegisterMediaMetadataObserver | 取消注册媒体 metadata 观测器。 |
SetMaxMetadataSize | 设置媒体附属信息的最大大小。 |
SendMetadata | 发送媒体附属信息。 |
事件 | 描述 |
---|---|
OnReadyToSendMetadata | 发送端已准备好发送 metadata。 |
OnMetadataReceived | 接收端已收到 metadata。 |
直播水印
该组方法仅适用于互动直播。
方法 | 描述 |
---|---|
AddVideoWatermark [2/2] | 添加本地视频水印。 |
ClearVideoWatermarks | 删除已添加的视频水印。 |
视频截图
方法 | 描述 |
---|---|
TakeSnapshot | 获取视频截图。 |
事件 | 描述 |
---|---|
OnSnapshotTaken | 视频截图结果回调。 |
视频截图上传
方法 | 描述 |
---|---|
EnableContentInspect | 开启/关闭视频截图上传 |
加密
方法 | 描述 |
---|---|
EnableEncryption | 开启或关闭内置加密。 |
音频采集
方法 | 描述 |
---|---|
StartAudioRecording [3/3] | 开始客户端录音。 |
StopAudioRecording | 停止客户端录音。 |
音视频录制
方法 | 描述 |
---|---|
StartRecording | 开启本地音视频流录制。 |
StopRecording | 停止本地音视频流录制。 |
事件 | 描述 |
---|---|
OnRecorderStateChanged | 录制状态发生改变回调。 |
OnRecorderInfoUpdated | 录制信息更新回调。 |
设备管理
方法 | 描述 |
---|---|
EnumeratePlaybackDevices | 获取系统中所有的播放设备列表。 |
EnumerateRecordingDevices | 获取系统中所有的音频采集设备列表。 |
SetPlaybackDevice | 指定播放设备。 |
SetRecordingDevice | 指定音频采集设备。 |
StartPlaybackDeviceTest | 启动音频播放设备测试。 |
StopPlaybackDeviceTest | 停止音频播放设备测试。 |
StartRecordingDeviceTest | 启动音频采集设备测试。 |
StopRecordingDeviceTest | 停止音频采集设备测试。 |
StartAudioDeviceLoopbackTest | 开始音频设备回路测试。 |
StopAudioDeviceLoopbackTest | 停止音频设备回路测试。 |
SetPlaybackDeviceVolume | 设置播放设备音量。 |
GetPlaybackDeviceVolume | 获取播放设备音量。 |
SetRecordingDeviceVolume | 设置音频采集设备音量。 |
GetRecordingDeviceVolume | 获取音频采集设备音量。 |
SetPlaybackDeviceMute | 设置播放设备静音。 |
GetPlaybackDeviceMute | 获取当前播放设备静音状态。 |
SetRecordingDeviceMute | 设置当前音频采集设备静音。 |
GetRecordingDeviceMute | 获取当前音频采集设备静音状态。 |
FollowSystemPlaybackDevice | 设置 SDK 使用的音频播放设备跟随系统默认的音频播放设备。 |
FollowSystemRecordingDevice | 设置 SDK 使用的音频播放设备跟随系统默认的音频播放设备。 |
EnumerateVideoDevices | 获取系统中所有的视频设备列表。 |
StartDeviceTest | 开启视频采集设备测试。 |
StopDeviceTest | 停止视频采集设备测试。 |
GetDevice | 获取当前使用的视频采集设备。 |
SetDevice | 通过设备 ID 指定视频采集设备。 |
事件 | 描述 |
---|---|
OnAudioDeviceStateChanged | 音频设备变化回调。 |
OnAudioDeviceVolumeChanged | 回放、音频采集设备或 App 的音量发生改变。 |
OnAudioDeviceTestVolumeIndication | 音频设备测试回调。 |
OnVideoDeviceStateChanged | 视频设备变化回调。 |
流消息
方法 | 描述 |
---|---|
CreateDataStream [2/2] | 创建数据流。 |
SendStreamMessage | 发送数据流。 |
事件 | 描述 |
---|---|
OnStreamMessage | 接收到对方数据流消息的回调。 |
OnStreamMessageError | 接收对方数据流消息发生错误的回调。 |
Wi-Fi 加速
方法 | 描述 |
---|---|
EnableWirelessAccelerate | 开启或关闭 Wi-Fi 加速功能 。 |
事件 | 描述 |
---|---|
OnWlAccStats | 报告 Wi-Fi 加速效果。 |
OnWlAccMessage | 报告 Wi-Fi 连接质量不佳的原因和改善 Wi-Fi 连接的操作建议。 |
其他音频控制
方法 | 描述 |
---|---|
EnableLoopbackRecording | 开启声卡采集。 |
其他视频控制
方法 | 描述 |
---|---|
SetCameraCapturerConfiguration | 设置摄像头采集配置。 |
其他方法
方法 | 描述 |
---|---|
SetAVSyncSource | 设置发流端音画同步。 |
SetCloudProxy | 设置声网云代理服务。 |
EnableDeepLearningDenoise | 开启或关闭 AI 降噪模式。 |
SendCustomReportMessage | 发送自定义上报消息。 |
GetCallId | 获取通话 ID。 |
Rate | 给通话评分。 |
Complain | 投诉通话质量。 |
GetVersion | 获取 SDK 版本。 |
GetErrorDescription | 获取警告或错误描述。 |
其他事件
事件 | 描述 |
---|---|
OnWarning | 发生警告回调。 |
OnError | 发生错误回调。 |
OnApiCallExecuted | API 方法已执行回调。 |
OnProxyConnected | 代理连接状态回调。 |