API 概览
声网通过全球部署的 SD-RTN™,提供可以灵活搭配的 API 组合,实现质量可靠的实时音视频通信。
初始化相关
| 方法/回调 | 描述 |
|---|---|
| GetAgoraRtcEngine | 创建 IRtcEngine 对象。 |
| Initialize | 初始化 IRtcEngine。 |
| Release | 销毁 IRtcEngine 对象。 |
频道相关
| 方法/回调 | 描述 |
|---|---|
| SetChannelProfile | 设置频道场景。 |
| JoinChannelWithOptions | 设置媒体选项并加入频道。 |
| JoinChannelEx | 加入频道。 |
| UpdateChannelMediaOptions | 加入频道后更新频道媒体选项。 |
| UpdateChannelMediaOptionsEx | 加入频道后更新频道媒体选项 。 |
| LeaveChannelWithOptions | 设置频道选项并离开频道。 |
| 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 | 启用用户音量提示。 |
| SetAudioProfileAndScenario | 设置音频编码属性和音频场景。 |
| SetAudioScenario | 设置音频场景。 |
| SetAudioSessionOperationRestriction | 设置 SDK 对 Audio Session 的操作权限。 |
| OnAudioVolumeIndication | 用户音量提示回调。 |
| OnActiveSpeaker | 监测到远端最活跃用户回调。 |
| OnLocalAudioStateChanged | 本地音频状态发生改变回调。 |
| OnFirstLocalAudioFramePublished | 已发布本地音频首帧回调。 |
| OnFirstRemoteAudioFrame | 已接收远端音频首帧回调。 |
| OnUserMuteAudio | 远端用户(通信场景)/主播(直播场景)停止或恢复发送音频流回调。 |
| OnRemoteAudioStateChanged | 远端音频流状态发生改变回调。 |
| OnLocalAudioStats | 通话中本地音频流的统计信息回调。 |
| OnRemoteAudioStats | 通话中远端音频流的统计信息回调。 |
音频采集
| 方法/回调 | 描述 |
|---|---|
| EnableLocalAudio | 开启或关闭本地音频采集。 |
| EnableLoopbackRecording | 开启声卡采集。 |
| EnableLoopbackRecordingEx | 开启声卡采集。 |
| AdjustRecordingSignalVolume | 调节音频采集信号音量。 |
| AdjustLoopbackSignalVolume | 调节声卡采集信号音量。 |
| MuteRecordingSignal | 是否将录音信号静音。 |
| EnableInEarMonitoring | 开启耳返功能。 |
| SetInEarMonitoringVolume | 设置耳返音量。 |
音频前处理和后处理
| 方法/回调 | 描述 |
|---|---|
| EnableVoiceAITuner | 开启或关闭 AI 调音器功能。 |
| SetAdvancedAudioOptions | 设置音频的高级选项。 |
| SetAINSMode | 设置是否开启 AI 降噪功能并设置降噪模式。 |
| SetLocalVoiceEqualization | 设置本地语音音效均衡。 |
| SetLocalVoicePitch | 设置本地语音音调。 |
| SetLocalVoiceReverb | 设置本地音效混响。 |
| SetVoiceBeautifierPreset | 设置预设的美声效果。 |
| SetVoiceBeautifierParameters | 设置预设美声效果的参数。 |
| SetAudioEffectPreset | 设置 SDK 预设的人声音效。 |
| SetAudioEffectParameters | 设置 SDK 预设人声音效的参数。 |
| SetVoiceConversionPreset | 设置预设的变声效果。 |
| SetLocalVoiceFormant | 设置共振峰比率以改变语音的音色。 |
| EnableSoundPositionIndication | 开启/关闭远端用户的语音立体声。 |
| SetRemoteVoicePosition | 设置远端用户声音的 2D 位置,即水平面位置。 |
| SetRemoteVoicePositionEx | 设置远端用户声音的 2D 位置,即水平面位置。 |
视频基础功能
| 方法/回调 | 描述 |
|---|---|
| EnableVideo | 启用视频模块。 |
| DisableVideo | 关闭视频模块。 |
| SetVideoScenario | 设置视频业务场景。 |
| SetVideoEncoderConfiguration | 设置视频编码属性。 |
| SetVideoEncoderConfigurationEx | 设置视频编码属性。 |
| StartPreview | 开启视频预览并指定预览的视频源。 |
| StopPreview | 停止视频预览。 |
| OnLocalVideoStateChanged | 本地视频状态发生改变回调。 |
| OnLocalVideoStats | 本地视频流统计信息回调。 |
| OnFirstLocalVideoFramePublished | 已发布本地视频首帧回调。 |
| OnVideoPublishStateChanged | 视频发布状态改变回调。 |
| OnVideoSizeChanged | 本地或远端视频大小和旋转信息发生改变回调。 |
| OnRemoteVideoStateChanged | 远端视频状态发生改变回调。 |
| OnRemoteVideoStats | 通话中远端视频流的统计信息回调。 |
| OnFirstLocalVideoFrame | 已显示本地视频首帧回调。 |
| OnFirstRemoteVideoFrame | 渲染器已接收首帧远端视频回调。 |
| OnFirstRemoteVideoDecoded | 已接收到远端视频并完成解码回调。 |
| OnUserMuteVideo | 远端用户取消或恢复发布视频流回调。 |
| OnUserEnableVideo | 远端用户开/关视频模块回调。 |
视频采集
| 方法/回调 | 描述 |
|---|---|
| EnableLocalVideo | 开关本地视频采集。 |
| StartCameraCapture | 开始通过摄像头采集视频。 |
| StopCameraCapture | 停止通过摄像头采集视频。 |
| SetCameraStabilizationMode | 设置摄像头防抖模式。(仅适用于 iOS) |
视频前处理和后处理
视频渲染
| 方法/回调 | 描述 |
|---|---|
| SetRenderMode | 设置播放器视图的渲染模式。 |
| SetLocalRenderMode | 更新本地视图显示模式。 |
| SetRemoteRenderMode | 更新远端视图显示模式。 |
| SetRemoteRenderModeEx | 设置远端视图显示模式。 |
| SetLocalRenderTargetFps | 设置本地视频渲染的最大帧率。 |
| SetRemoteRenderTargetFps | 设置视频在远端渲染的最大帧率。 |
| SetView | 设置播放器渲染视图。 |
| SetupLocalVideo | 初始化本地视图。 |
| SetupRemoteVideo | 初始化远端用户视图。 |
| SetupRemoteVideoEx | 初始化远端用户视图。 |
| EnableInstantMediaRendering | 开启音视频帧加速渲染。 |
| StartMediaRenderingTracing | 开启视频帧渲染数据打点。 |
| StartMediaRenderingTracingEx | 开启视频帧渲染数据打点。 |
| OnVideoRenderingTracingResult | 视频帧渲染事件回调。 |
音乐文件播放
| 方法/回调 | 描述 |
|---|---|
| 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 | 虚拟节拍器状态发生改变回调。 |
媒体播放器
更多有关媒体播放器的方法,详见内置媒体播放器。
| 方法/回调 | 描述 |
|---|---|
| GetAgoraMediaPlayer | 创建媒体播放器对象。 |
| IMediaPlayer | 提供媒体播放器功能的类,支持多实例。 |
| IMediaPlayerSourceObserver | 提供媒体播放器的回调。 |
音视频录制
| 方法/回调 | 描述 |
|---|---|
| StartAudioRecording | 开始客户端录音并进行录音配置。 |
| StopAudioRecording | 停止客户端录音。 |
跨频道媒体流转发
| 方法/回调 | 描述 |
|---|---|
| StartOrUpdateChannelMediaRelay | 开始或更新跨频道媒体流转发。 |
| StartOrUpdateChannelMediaRelayEx | 开始或更新跨频道媒体流转发。 |
| StopChannelMediaRelay | 停止跨频道媒体流转发。一旦停止,主播会退出所有目标频道。 |
| StopChannelMediaRelayEx | 停止跨频道媒体流转发。一旦停止,主播会退出所有目标频道。 |
| PauseAllChannelMediaRelay | 暂停向所有目标频道转发媒体流。 |
| PauseAllChannelMediaRelayEx | 暂停向所有目标频道转发媒体流。 |
| ResumeAllChannelMediaRelay | 恢复向所有目标频道转发媒体流。 |
| ResumeAllChannelMediaRelayEx | 恢复向所有目标频道转发媒体流。 |
| OnChannelMediaRelayStateChanged | 跨频道媒体流转发状态发生改变回调。 |
旁路推流
| 方法/回调 | 描述 |
|---|---|
| StartRtmpStreamWithoutTranscoding | 开始非转码推流。 |
| StartRtmpStreamWithoutTranscodingEx | 开始非转码推流。 |
| StartRtmpStreamWithTranscoding | 开始旁路推流并设置转码属性。 |
| StartRtmpStreamWithTranscodingEx | 开始旁路推流并设置转码属性。 |
| UpdateRtmpTranscoding | 更新旁路推流转码属性。 |
| UpdateRtmpTranscodingEx | 更新旁路推流转码属性。 |
| StopRtmpStream | 结束旁路推流。 |
| StopRtmpStreamEx | 结束旁路推流。 |
| OnRtmpStreamingEvent | 旁路推流事件回调。 |
| OnRtmpStreamingStateChanged | 旁路推流状态发生改变回调。 |
| OnTranscodingUpdated | 旁路推流转码设置已被更新回调。 |
数据流
| 方法/回调 | 描述 |
|---|---|
| CreateDataStream | 创建数据流。 |
| CreateDataStreamEx | 创建数据流。 |
| SendStreamMessage | 发送数据流。 |
| OnStreamMessage | 接收到对方数据流消息的回调。 |
| OnStreamMessageError | 接收对方数据流消息发生错误的回调。 |
音频路由
该组方法仅适用于 Android 和 iOS 平台。
| 方法/回调 | 描述 |
|---|---|
| SetDefaultAudioRouteToSpeakerphone | 设置默认的音频路由。 |
| SetEnableSpeakerphone | 开启或关闭扬声器播放。 |
| IsSpeakerphoneEnabled | 检查扬声器状态启用状态。 |
| OnAudioRoutingChanged | 音频路由已发生变化回调。 |
视频设备管理
| 方法/回调 | 描述 |
|---|---|
| EnableMultiCamera | 开启或关闭多路摄像头采集。(仅适用于 iOS) |
| SwitchCamera | 切换前置/后置摄像头。(仅适用于 Android 和 iOS) |
| SetCameraCapturerConfiguration | 设置摄像头采集配置。 |
| IsCameraZoomSupported | 检测设备是否支持摄像头缩放功能。(仅适用于 Android 和 iOS) |
| GetCameraMaxZoomFactor | 获取摄像头支持最大缩放比例。(仅适用于 Android 和 iOS) |
| SetCameraZoomFactor | 设置摄像头缩放比例。(仅适用于 Android 和 iOS) |
| IsCameraTorchSupported | 检测设备是否支持闪光灯常开。(仅适用于 Android 和 iOS) |
| SetCameraTorchOn | 设置是否打开闪光灯。(仅适用于 Android 和 iOS) |
| IsCameraFaceDetectSupported | 检查设备摄像头是否支持人脸检测。(仅适用于 Android 和 iOS) |
| IsCameraFocusSupported | 检测设备是否支持手动对焦功能。(仅适用于 Android 和 iOS) |
| IsCameraExposureSupported | 查询当前摄像头是否支持曝光调节。(仅适用于 Android 和 iOS) |
| SetCameraExposureFactor | 设置当前摄像头的曝光系数。(仅适用于 Android 和 iOS) |
| SetCameraFocusPositionInPreview | 设置手动对焦位置,并触发对焦。(仅适用于 Android 和 iOS) |
| IsCameraAutoFocusFaceModeSupported | 检测设备是否支持人脸对焦功能。(仅适用于 Android 和 iOS) |
| SetCameraAutoFocusFaceModeEnabled | 设置是否开启人脸对焦功能。(仅适用于 Android 和 iOS) |
| IsCameraExposurePositionSupported | 检测设备是否支持手动曝光功能。(仅适用于 Android 和 iOS) |
| IsCameraAutoExposureFaceModeSupported | 检测设备是否支持自动曝光功能。(仅适用于 iOS) |
| SetCameraExposurePosition | 设置手动曝光位置。(仅适用于 Android 和 iOS) |
| SetCameraAutoExposureFaceModeEnabled | 设置是否开启自动曝光功能。(仅适用于 iOS) |
| OnCameraFocusAreaChanged | 相机对焦区域已改变回调。(仅适用于 Android 和 iOS) |
| OnCameraExposureAreaChanged | 摄像头曝光区域已改变回调。(仅适用于 Android 和 iOS) |
| QueryCameraFocalLengthCapability | 查询摄像头支持的焦距能力。(仅适用于 Andorid 和 iOS) |
| QueryCodecCapability | 查询 SDK 支持的视频编解码能力。 |
| EnumerateVideoDevices | 获取系统中所有的视频设备列表。(仅适用于 Windows 和 macOS) |
| Release | 释放 IVideoDeviceManager 对象占用的所有资源。(仅适用于 Windows 和 macOS) |
| GetCapability | 获取视频采集设备在指定的视频格式下的详细视频帧信息。(仅适用于 Windows 和 macOS) |
| NumberOfCapabilities | 获取指定视频采集设备支持的视频格式数量。(仅适用于 Windows 和 macOS) |
| SetCameraDeviceOrientation | 设置采集视频的旋转角度。(仅适用于 Windows) |
| SetDevice | 指定设备。(仅适用于 Windows 和 macOS) |
| GetDevice | 获取某个被索引的视频采集设备的指定信息。(仅适用于 Windows 和 macOS) |
| GetCount | 获取系统中被索引的视频采集或播放设备的总数。 |
| Release | 释放 IVideoDeviceCollection 对象占用的所有资源。 |
| OnVideoDeviceStateChanged | 视频设备变化回调。(仅适用于 Windows 和 macOS) |
音频设备管理
| 方法/回调 | 描述 |
|---|---|
| StartPlaybackDeviceTest | 启动音频播放设备测试。 |
| StopPlaybackDeviceTest | 停止音频播放设备测试。 |
| StartRecordingDeviceTest | 启动音频采集设备测试。 |
| StopRecordingDeviceTest | 停止音频采集设备测试。 |
| EnumeratePlaybackDevices | 获取系统中所有的播放设备列表。(仅适用于 Windows 和 macOS) |
| EnumerateRecordingDevices | 获取系统中所有的音频采集设备列表。(仅适用于 Windows 和 macOS) |
| FollowSystemPlaybackDevice | 设置 SDK 使用的音频播放设备跟随系统默认的音频播放设备。(仅适用于 Windows 和 macOS) |
| FollowSystemRecordingDevice | 设置 SDK 使用的音频采集设备跟随系统默认的音频采集设备。(仅适用于 Windows 和 macOS) |
| SetPlaybackDevice | 指定播放设备。(仅适用于 Windows 和 macOS) |
| GetPlaybackDevice | 获取当前音频播放设备。(仅适用于 Windows 和 macOS) |
| GetPlaybackDeviceInfo | 获取音频播放设备信息及其类型。(仅适用于 macOS) |
| SetPlaybackDeviceVolume | 设置播放设备音量。(仅适用于 Windows) |
| SetRecordingDevice | 指定音频采集设备。(仅适用于 Windows 和 macOS) |
| GetRecordingDevice | 获取当前音频采集设备。(仅适用于 Windows 和 macOS) |
| GetRecordingDeviceInfo | 获取音频采集设备信息及其类型。(仅适用于 macOS) |
| SetRecordingDeviceVolume | 设置音频采集设备音量。(仅适用于 Windows 和 macOS) |
| GetRecordingDeviceVolume | 获取音频采集设备音量。(仅适用于 Windows) |
| SetPlaybackDeviceMute | 设置播放设备静音。(仅适用于 Windows) |
| GetPlaybackDeviceMute | 获取当前播放设备静音状态。(仅适用于 Windows) |
| SetRecordingDeviceMute | 设置当前音频采集设备静音。(仅适用于 Windows) |
| GetRecordingDeviceMute | 获取当前音频采集设备静音状态。(仅适用于 Windows) |
| StartAudioDeviceLoopbackTest | 开始音频设备回路测试。(仅适用于 Windows 和 macOS) |
| StopAudioDeviceLoopbackTest | 停止音频设备回路测试。(仅适用于 Windows 和 macOS) |
| Release | 释放 IAudioDeviceManager 对象占用的所有资源。(仅适用于 Windows) |
| SetDevice | 指定音频设备。(仅适用于 Windows 和 macOS) |
| GetDefaultDevice | 获取系统默认的音频设备。(仅适用于 Windows 和 macOS) |
| GetDevice | 获取指定 index 的音频设备信息。(仅适用于 Windows 和 macOS) |
| GetCount | 获取播放或音频采集设备数量。(仅适用于 Windows 和 macOS) |
| SetApplicationVolume | 设置 App 音量。(仅适用于 Windows 和 macOS) |
| GetApplicationVolume | 获取 App 的当前音量。(仅适用于 Windows 和 macOS) |
| SetApplicationMute | 设置是否将 App 静音。(仅适用于 Windows 和 macOS) |
| IsApplicationMute | 获取 App 当前的静音状态。(仅适用于 Windows 和 macOS) |
| Release | 释放 IAudioDeviceCollection 对象占用的所有资源。(仅适用于 Windows 和 macOS) |
| OnAudioDeviceStateChanged | 音频设备变化回调。(仅适用于 Windows 和 macOS) |
| OnAudioDeviceVolumeChanged | 音频设备或 App 的音量发生改变回调。(仅适用于 Windows 和 macOS) |
| GetAudioDeviceInfo | 获取音频设备信息。(仅适用于 Android) |
插件相关
| 方法/回调 | 描述 |
|---|---|
| LoadExtensionProvider | 加载插件。 |
| RegisterExtension | 注册插件。 |
| EnableExtension | 启用/禁用插件。 |
| GetExtensionProperty | 获取插件的详细信息。 |
| SetExtensionProperty | 设置插件的属性。 |
| SetExtensionProviderProperty | 设置插件服务商的属性。 |
| OnExtensionStartedWithContext | 插件已启用成功回调。 |
| OnExtensionStoppedWithContext | 插件已禁用回调。 |
| OnExtensionEventWithContext | 插件事件回调。 |
| OnExtensionErrorWithContext | 插件出错回调。 |