API 概览
声网通过全球部署的 SD-RTN™,提供可以灵活搭配的 API 组合,实现质量可靠的实时音视频通信。
频道管理
方法 | 描述 |
---|---|
sharedEngineWithAppId | 创建并初始化 AgoraRtcEngineKit。 |
sharedEngineWithConfig | 创建并初始化 AgoraRtcEngineKit。 |
destroy | 销毁 AgoraRtcEngineKit 对象。 |
setChannelProfile | 设置频道场景。 |
joinChannelByToken [1/4] | 加入频道。 |
joinChannelByToken [2/4] | 设置媒体选项并加入频道。 |
updateChannelWithMediaOptions | 加入频道后更新频道媒体选项。 |
leaveChannel [1/2] | 离开频道。 |
leaveChannel [2/2] | 离开频道。 |
renewToken | 更新 Token。 |
setClientRole [1/2] | 设置用户角色。 |
setClientRole [2/2] | 设置直播场景下的用户角色和级别。 |
getConnectionState | 获取当前网络连接状态。 |
频道事件
事件 | 描述 |
---|---|
didJoinChannel | 成功加入频道回调。 |
didRejoinChannel | 成功重新加入频道回调。 |
didClientRoleChanged | 直播场景下用户角色已切换回调。 |
didClientRoleChangeFailed | 直播场景下切换用户角色失败回调。 |
didLeaveChannelWithStats | 离开频道回调。 |
didJoinedOfUid | 远端用户(通信场景)/主播(直播场景)加入当前频道回调。 |
didOfflineOfUid | 远端用户(通信场景)/主播(直播场景)离开当前频道回调。 |
didAudioMuted | 远端用户(通信场景)/主播(直播场景)停止或恢复发送音频流回调。 |
networkTypeChangedToType | 本地网络类型发生改变回调。 |
uplinkNetworkInfoUpdate | 上行网络信息变化回调。 |
rtcEngineConnectionDidLost | 网络连接中断,且 SDK 无法在 10 秒内连接服务器回调。 |
connectionChangedToState | 网络连接状态已改变回调。 |
rtcEngineRequestToken | Token 已过期回调。 |
tokenPrivilegeWillExpire | Token 服务将在30s内过期回调。 |
音频管理
方法 | 描述 |
---|---|
enableAudio | 启用音频模块。 |
disableAudio | 关闭音频模块。 |
setAudioProfile [1/2] | 设置音频编码属性和音频场景。 |
setAudioScenario | 设置音频场景。 |
adjustRecordingSignalVolume | 调节音频采集信号音量。 |
adjustUserPlaybackSignalVolume | 调节本地播放的指定远端用户信号音量。 |
adjustPlaybackSignalVolume | 调节本地播放的所有远端用户信号音量。 |
adjustLoopbackSignalVolume | 调节声卡采集信号音量。 |
adjustCustomAudioPublishVolume | 调节自定义采集的外部音频源在远端播放的音量。 |
muteRecordingSignal | 是否将录音信号静音。 |
enableLocalAudio | 开关本地音频采集。 |
视频管理
方法 | 描述 |
---|---|
enableVideo | 启用视频模块。 |
disableVideo | 关闭视频模块。 |
setVideoEncoderConfiguration | 设置视频编码属性。 |
startPreview | 开启视频预览。 |
stopPreview | 停止视频预览。 |
setupLocalVideo | 初始化本地视图。 |
setupRemoteVideo | 初始化远端用户视图。 |
setLocalRenderMode [2/2] | 更新本地视图显示模式。 |
setRemoteRenderMode [2/2] | 更新远端视图显示模式。 |
enableLocalVideo | 开关本地视频采集。 |
muteLocalVideoStream | 取消或恢复发布本地视频流。 |
muteRemoteVideoStream | 取消或恢复订阅指定远端用户的视频流。 |
muteAllRemoteVideoStreams | 取消或恢复订阅所有远端用户的视频流。 |
视频截图
方法 | 描述 |
---|---|
takeSnapshot | 获取视频截图。 |
事件 | 描述 |
---|---|
snapshotTaken | 视频截图结果回调。 |
视频内容审核
方法 | 描述 |
---|---|
enableContentInspect | 开启/关闭视频内容审核。 |
事件 | 描述 |
---|---|
contentInspectResult | 视频内容审核结果回调。 |
音视频订阅及发布管理
方法 | 描述 |
---|---|
setSubscribeAudioBlacklist | 设置音频订阅黑名单。 |
setSubscribeAudioWhitelist | 设置音频订阅白名单。 |
setSubscribeVideoBlacklist | 设置视频订阅黑名单。 |
setSubscribeVideoWhitelist | 设置视频订阅白名单。 |
muteLocalAudioStream | 取消或恢复发布本地音频流。 |
muteRemoteAudioStream | 取消或恢复订阅指定远端用户的音频流。 |
muteAllRemoteAudioStreams | 取消或恢复订阅所有远端用户的音频流。 |
enableLocalVideo | 开关本地视频采集。 |
muteLocalVideoStream | 取消或恢复发布本地视频流。 |
muteRemoteVideoStream | 取消或恢复订阅指定远端用户的视频流。 |
muteAllRemoteVideoStreams | 取消或恢复订阅所有远端用户的视频流。 |
媒体播放器
方法 | 描述 |
---|---|
createMediaPlayerWithDelegate | 创建 AgoraRtcMediaPlayerProtocol 实例。 |
createMediaPlayerCacheManager | 创建 AgoraRtcMediaPlayerCacheManagerProtocol 实例。 |
AgoraRtcMediaPlayerProtocol | 提供媒体播放器功能的类,支持多实例。 |
AgoraRtcMediaPlayerCacheManagerProtocol | 该类提供管理媒体播放器中缓存媒体文件的方法。 |
AgoraRtcMediaPlayerDelegate | 提供媒体播放器的回调。 |
SDK 直接推流到 CDN
方法 | 描述 |
---|---|
startDirectCdnStreaming | 设置主播端开始直接向 CDN 推流。 |
stopDirectCdnStreaming | 设置主播端停止直接向 CDN 推流。 |
setDirectCdnStreamingAudioConfiguration | 设置主播端直接向 CDN 推流时的音频编码属性。 |
setDirectCdnStreamingVideoConfiguration | 设置主播端直接向 CDN 推流时的视频编码属性。 |
事件 | 描述 |
---|---|
onDirectCdnStreamingStateChanged | CDN 推流状态改变回调。 |
onDirectCdnStreamingStats | CDN 推流统计数据回调。 |
本地媒体事件
事件 | 描述 |
---|---|
localAudioStateChanged | 本地音频状态发生改变回调。 |
localVideoStateChangedOfState | 本地视频状态发生改变回调。 |
firstLocalAudioFramePublished | 已发布本地音频首帧回调。 |
firstLocalVideoFramePublishedWithElapsed | 已发布本地视频首帧回调。 |
didAudioPublishStateChange | 音频发布状态改变回调。 |
didVideoPublishStateChange | 视频发布状态改变回调。 |
远端媒体事件
事件 | 描述 |
---|---|
remoteAudioStateChangedOfUid | 远端音频流状态发生改变回调。 |
remoteVideoStateChangedOfUid | 远端视频状态发生改变回调。 |
firstRemoteVideoFrameOfUid | 渲染器已接收首帧远端视频回调。 |
firstRemoteVideoDecodedOfUid | 已接收到远端视频并完成解码回调。 |
didAudioSubscribeStateChange | 音频订阅状态发生改变回调。 |
didVideoSubscribeStateChange | 视频订阅状态发生改变回调。 |
didAudioMuted | 远端用户(通信场景)/主播(直播场景)停止或恢复发送音频流回调。 |
didVideoMuted | 远端用户取消或恢复发布视频流回调。 |
didVideoEnabled | 远端用户开/关视频模块回调。 |
didLocalVideoEnabled | 远端用户开/关本地视频采集回调。 |
数据统计事件
事件 | 描述 |
---|---|
reportRtcStats | 当前通话统计信息回调。 |
networkQuality | 通话中每个用户的网络上下行 last mile 质量报告回调。 |
localAudioStats | 通话中本地音频流的统计信息回调。 |
localVideoStats | 本地视频流统计信息回调。 |
remoteAudioStats | 通话中远端音频流的统计信息回调。 |
remoteVideoStats | 通话中远端视频流的统计信息回调。 |
视频前后处理
方法 | 描述 |
---|---|
setBeautyEffectOptions | 设置美颜效果选项。 |
enableVirtualBackground | 开启/关闭虚拟背景。 |
音乐文件播放及混音
方法 | 描述 |
---|---|
startAudioMixing [2/2] | 开始播放音乐文件。 |
stopAudioMixing | 停止播放音乐文件。 |
pauseAudioMixing | 暂停播放音乐文件。 |
resumeAudioMixing | 恢复播放音乐文件。 |
adjustAudioMixingVolume | 调节音乐文件的播放音量。 |
adjustAudioMixingPlayoutVolume | 调节音乐文件在本地播放的音量。 |
adjustAudioMixingPublishVolume | 调节音乐文件远端播放音量。 |
getAudioMixingPlayoutVolume | 获取音乐文件的本地播放音量。 |
getAudioMixingPublishVolume | 获取音乐文件的远端播放音量。 |
getAudioMixingDuration | 获取音乐文件总时长。 |
getAudioMixingCurrentPosition | 获取音乐文件的播放进度。 |
setAudioMixingPitch | 调整本地播放的音乐文件的音调。 |
setAudioMixingPosition | 设置音乐文件的播放位置。 |
setAudioMixingDualMonoMode | 设置当前音频文件的声道模式。 |
事件 | 描述 |
---|---|
audioMixingStateChanged | 音乐文件的播放状态已改变回调。 |
音效文件播放管理
方法 | 描述 |
---|---|
getEffectsVolume | 获取音效文件的播放音量。 |
setEffectsVolume | 设置音效文件的播放音量。 |
getVolumeOfEffect | 获取指定音效文件的播放音量。 |
setVolumeOfEffect | 实时调整音效文件的播放音量。 |
preloadEffect | 将音效文件加载至内存。 |
playEffect [3/3] | 播放指定的本地或在线音效文件。 |
pauseEffect | 暂停音效文件播放。 |
pauseAllEffects | 暂停所有音效文件播放。 |
resumeEffect | 恢复播放指定音效文件。 |
resumeAllEffects | 恢复播放所有音效文件。 |
stopEffect | 停止播放指定音效文件。 |
stopAllEffects | 停止播放所有音效文件。 |
unloadEffect | 从内存释放某个预加载的音效文件。 |
getEffectDuration | 获取指定音效文件总时长。 |
getEffectCurrentPosition | 获取指定音效文件的播放进度。 |
setEffectPosition | 设置指定音效文件的播放位置。 |
变声与混响
方法 | 描述 |
---|---|
setLocalVoiceEqualizationOfBandFrequency | 设置本地语音音效均衡。 |
setLocalVoicePitch | 设置本地语音音调。 |
setLocalVoiceReverbOfType | 设置本地音效混响。 |
setVoiceBeautifierPreset | 设置预设的美声效果。 |
setVoiceBeautifierParameters | 设置预设美声效果的参数。 |
setAudioEffectPreset | 设置 SDK 预设的人声音效。 |
setAudioEffectParameters | 设置 SDK 预设人声音效的参数。 |
setVoiceConversionPreset | 设置预设的变声效果。 |
通话前网络测试
方法 | 描述 |
---|---|
startEchoTestWithInterval | 开始语音通话回路测试。 |
stopEchoTest | 停止语音通话回路测试。 |
startLastmileProbeTest | 开始通话前网络质量探测。 |
stopLastmileProbeTest | 停止通话前网络质量探测。 |
事件 | 描述 |
---|---|
lastmileQuality | 网络上下行 last mile 质量报告回调。 |
lastmileProbeTestResult | 通话前网络上下行 Last mile 质量探测报告回调。 |
屏幕共享
方法 | 描述 |
---|---|
getScreenCaptureSourcesWithThumbSize | 获取可共享的屏幕和窗口对象列表。 |
startScreenCaptureByWindowId | 通过窗口 ID 共享窗口。 |
startScreenCaptureByDisplayId | 通过屏幕 ID 共享屏幕。 |
updateScreenCaptureParameters | 更新屏幕共享的参数配置。 |
stopScreenCapture | 停止屏幕共享。 |
updateScreenCaptureRegion | 更新屏幕共享区域。 |
setScreenCaptureScenario | 设置屏幕共享的场景。 |
视频双流
方法 | 描述 |
---|---|
enableDualStreamMode [1/3] | 开关双流模式。 |
enableDualStreamMode [2/3] | 开关双流模式。 |
enableDualStreamMode [3/3] | 开关双流模式。 |
setRemoteVideoStream | 设置订阅的视频流类型。 |
setRemoteDefaultVideoStreamType | 设置默认订阅的视频流类型。 |
直播水印
方法 | 描述 |
---|---|
addVideoWatermark [2/2] | 添加本地视频水印。 |
clearVideoWatermarks | 删除已添加的视频水印。 |
加密
方法 | 描述 |
---|---|
enableEncryption | 开启或关闭内置加密。 |
事件 | 描述 |
---|---|
didOccurEncryptionError | 内置加密出错回调。 |
听声辨位
方法 | 描述 |
---|---|
enableSoundPositionIndication | 开启/关闭远端用户的语音立体声。 |
setRemoteVoicePosition | 设置远端用户声音的 2D 位置,即水平面位置。 |
旁路推流
方法 | 描述 |
---|---|
startRtmpStreamWithoutTranscoding | 开始非转码推流。 |
startRtmpStreamWithTranscoding | 开始旁路推流并设置转码属性。 |
updateRtmpTranscoding | 更新旁路推流转码属性。 |
stopRtmpStream | 结束旁路推流。 |
事件 | 描述 |
---|---|
rtmpStreamingEventWithUrl | 旁路推流事件回调。 |
rtmpStreamingChangedToState | 旁路推流状态发生改变回调。 |
rtcEngineTranscodingUpdated | 旁路推流转码设置已被更新回调。 |
跨频道媒体流转发
方法 | 描述 |
---|---|
startChannelMediaRelay | 开始跨频道媒体流转发。该方法可用于实现跨频道连麦等场景。 |
updateChannelMediaRelay | 更新媒体流转发的频道。 |
stopChannelMediaRelay | 停止跨频道媒体流转发。一旦停止,主播会退出所有目标频道。 |
pauseAllChannelMediaRelay | 暂停向所有目标频道转发媒体流。 |
resumeAllChannelMediaRelay | 恢复向所有目标频道转发媒体流。 |
事件 | 描述 |
---|---|
channelMediaRelayStateDidChange | 跨频道媒体流转发状态发生改变回调。 |
didReceiveChannelMediaRelayEvent | 跨频道媒体流转发事件回调。 |
自定义音频采集
方法 | 描述 |
---|---|
setExternalAudioSource [2/2] | 设置外部音频采集参数。 |
pushExternalAudioFrameSampleBuffer | 推送外部 CMSampleBuffer 音频帧。 |
pushExternalAudioFrameNSData | 推送外部音频数据。 |
原始音频数据
方法 | 描述 |
---|---|
setRecordingAudioFrameParametersWithSampleRate | 设置采集的原始音频数据格式。 |
setPlaybackAudioFrameParametersWithSampleRate | 设置播放的音频格式。 |
setMixedAudioFrameParametersWithSampleRate | 设置 onMixedAudioFrame 报告的音频数据格式。 |
setPlaybackAudioFrameBeforeMixingParametersWithSampleRate | 设置 onPlaybackAudioFrameBeforeMixing 报告的音频数据格式。 |
事件 | 描述 |
---|---|
onRecordAudioFrame | 获得采集的音频。 |
onPlaybackAudioFrame | 获得播放的声音。 |
onPlaybackAudioFrameBeforeMixing | 获得混音前的指定用户的声音。 |
onMixedAudioFrame | 获取采集和播放音频混音后的数据。 |
getRecordAudioParams | 设置 onRecordAudioFrame 回调数据的格式。 |
getPlaybackAudioParams | 设置 onPlaybackAudioFrame 回调数据的格式。 |
getMixedAudioParams | 设置 onMixedAudioFrame 回调数据的格式。 |
音频编码数据
方法 | 描述 |
---|---|
registerAudioEncodedFrameObserver | 注册音频编码数据观测器。 |
事件 | 描述 |
---|---|
onRecordEncodedAudioFrame | 获取本地用户的音频编码数据。 |
onPlaybackEncodedAudioFrame | 获取所有远端用户的音频编码数据。 |
onMixedEncodedAudioFrame | 获取本地和所有远端用户混音后的音频编码数据。 |
音频频谱
方法 | 描述 |
---|---|
registerAudioSpectrumDelegate | 注册音频频谱观测器。 |
enableAudioSpectrumMonitor | 开启音频频谱监测。 |
disableAudioSpectrumMonitor | 关闭音频频谱监测。 |
unregisterAudioSpectrumDelegate | 取消注册音频频谱观测器。 |
事件 | 描述 |
---|---|
onLocalAudioSpectrum | 获取本地音频频谱。 |
onRemoteAudioSpectrum | 获取远端音频频谱。 |
自定义视频采集
方法 | 描述 |
---|---|
createCustomVideoTrack | 创建一个自定义的视频轨道。 |
destroyCustomVideoTrack | 销毁指定的视频轨道。 |
外部视频数据
方法 | 描述 |
---|---|
setExternalVideoSource | 设置外部视频源。 |
pushExternalVideoFrame | 推送外部原始视频帧到 SDK。 |
原始视频数据
方法 | 描述 |
---|---|
setVideoFrameDelegate | 注册视频观测器对象。 |
事件 | 描述 |
---|---|
onCaptureVideoFrame | 获取本地摄像头采集到的视频数据。 |
onPreEncodeVideoFrame | 获取本地视频编码前的视频数据。 |
onPreEncodeScreenVideoFrame | 获取屏幕采集后、编码前的视频数据。 |
onScreenCaptureVideoFrame | 获取从屏幕采集到的视频数据。 |
onRenderVideoFrame | 获取远端发送的视频数据。 |
onMediaPlayerVideoFrame | 获取媒体播放器中的视频数据。 |
getObservedFramePosition | 设置视频观测位置。 |
getVideoFrameProcessMode | 设置视频处理模式。 |
getMirrorApplied | 设置视频数据镜像。 |
getRotationApplied | 设置视频数据旋转。 |
getVideoFormatPreference | 设置 SDK 输出的原始视频数据格式。 |
视频编码数据
方法 | 描述 |
---|---|
registerVideoEncodedFrameObserver | 为编码后的视频图像注册视频帧接收观测器。 |
插件
方法 | 描述 |
---|---|
enableExtensionWithVendor | 启用/禁用插件。 |
setExtensionPropertyWithVendor | 设置插件的属性。 |
setExtensionProviderPropertyWithVendor | 设置插件服务商的属性。 |
getExtensionProperty [1/2] | 获取插件的详细信息。 |
事件 | 描述 |
---|---|
onEvent | 插件事件回调。 |
onExtensionStarted | 插件启用回调。 |
onExtensionStopped | 插件禁用回调。 |
onExtensionError | 插件出错回调。 |
媒体附属信息
方法 | 描述 |
---|---|
setMediaMetadataDelegate | 注册媒体 metadata 观测器用于接收或发送 metadata。 |
setMediaMetadataDataSource | 设置 metadata 的 Data source。 |
事件 | 描述 |
---|---|
metadataMaxSize | 请求最大的 metadata 大小。 |
readyToSendMetadataAtTimestamp | 发送端已准备好发送 metadata。 |
receiveMetadata | 接收端已收到 metadata。 |
录音
方法 | 描述 |
---|---|
startAudioRecording [2/2] | 开始客户端录音。 |
stopAudioRecording | 停止客户端录音。 |
本地音视频录制
方法 | 描述 |
---|---|
sharedMediaRecorderWithRtcEngine | 创建 AgoraMediaRecorder 实例。 |
setMediaRecorderDelegate | 注册 AgoraMediaRecorderDelegate 对象。 |
startRecording | 开启本地音视频流录制。 |
stopRecording | 停止本地音视频流录制。 |
enableMainQueueDispatch | 设置是否分发回调至主队列。 |
destroy | 释放 AgoraMediaRecorder 对象。 |
事件 | 描述 |
---|---|
stateDidChanged | 录制状态发生改变回调。 |
informationDidUpdated | informationDidUpdated |
多频道
方法 | 描述 |
---|---|
joinChannelExByToken | 使用连接 ID 加入频道。 |
leaveChannelEx | 离开频道。 |
音量提示
方法 | 描述 |
---|---|
enableAudioVolumeIndication | 启用用户音量提示。 |
事件 | 描述 |
---|---|
reportAudioVolumeIndicationOfSpeakers | 用户音量提示回调。 |
activeSpeaker | 监测到远端最活跃用户回调。 |
数据流
方法 | 描述 |
---|---|
createDataStream [2/2] | 创建数据流。 |
sendStreamMessage | 发送数据流。 |
事件 | 描述 |
---|---|
receiveStreamMessageFromUid | 接收到对方数据流消息的回调。 |
didOccurStreamMessageErrorFromUid | 接收对方数据流消息发生错误的回调。 |
设备管理
方法 | 描述 |
---|---|
enumerateDevices | 获取系统中所有的音视频设备。 |
followSystemPlaybackDevice | 设置 SDK 使用的音频播放设备跟随系统默认的音频播放设备。 |
followSystemRecordingDevice | 设置 SDK 使用的音频采集设备跟随系统默认的音频采集设备。 |
getDeviceInfo | 获取当前设备名称。 |
getDefaultAudioDevice | 获取系统默认的音频设备。 |
getDeviceVolume | 获取当前设备的音量。 |
monitorDeviceChange | 监测设备变化。 |
setDevice | 指定设备。 |
setDeviceVolume | 设置设备音量。 |
startAudioDeviceLoopbackTest | 开始音频设备回路测试。 |
startPlaybackDeviceTest | 启动音频播放设备测试。 |
startRecordingDeviceTest | 启动音频采集设备测试。 |
stopAudioDeviceLoopbackTest | 停止音频设备回路测试。 |
stopPlaybackDeviceTest | 停止音频播放设备测试。 |
stopRecordingDeviceTest | 停止音频采集设备测试。 |
事件 | 描述 |
---|---|
stateChanged | 设备状态改变回调。 |
其他音频控制
方法 | 描述 |
---|---|
enableLoopbackRecording | 开启声卡采集。 |
其他方法
方法 | 描述 |
---|---|
setAVSyncSource | 设置发流端音画同步。 |
setCloudProxy | 设置 Agora 云代理服务。 |
setLocalAccessPoint | 配置与声网私有媒体服务器 Native 接入模块的连接。 |
sendCustomReportMessageEx | 自定义数据上报和分析服务。 |
getCallId | 获取通话 ID。 |
rate | 给通话评分。 |
complain | 投诉通话质量。 |
getSdkVersion | 获取 SDK 版本。 |
enableVideoImageSource | 设置是否开启垫片推流功能。 |
其他事件
事件 | 描述 |
---|---|
didApiCallExecute | API 方法已执行回调。 |