API 概览
声网通过全球部署的 SD-RTN™,提供可以灵活搭配的 API 组合,实现质量可靠的实时音视频通信。
初始化相关
方法/回调 | 描述 |
---|---|
sharedEngineWithAppId:delegate: | 创建并初始化 AgoraRtcEngineKit。 |
sharedEngineWithConfig:delegate: | 创建并初始化 AgoraRtcEngineKit。 |
destroy | 销毁 AgoraRtcEngineKit 对象。 |
频道相关
发布和订阅
音频基础功能
方法/回调 | 描述 |
---|---|
adjustUserPlaybackSignalVolume:volume: | 调节本地播放的指定远端用户信号音量。 |
adjustUserPlaybackSignalVolumeEx:volume:connection: | 调节本地播放的指定远端用户信号音量。 |
adjustPlaybackSignalVolume: | 调节本地播放的所有远端用户信号音量。 |
enableAudio | 启用音频模块。 |
disableAudio | 关闭音频模块。 |
enableAudioVolumeIndication:smooth:reportVad: | 启用用户音量提示。 |
enableAudioVolumeIndicationEx:smooth:reportVad:connection: | 启用用户音量提示。 |
setAudioProfile: | 设置音频编码属性。 |
setAudioScenario: | 设置音频场景。 |
rtcEngine:reportAudioVolumeIndicationOfSpeakers:totalVolume: | 用户音量提示回调。 |
rtcEngine:activeSpeaker: | 监测到远端最活跃用户回调。 |
rtcEngine:localAudioStateChanged:reason: | 本地音频状态发生改变回调。 |
rtcEngine:firstLocalAudioFramePublished: | 已发布本地音频首帧回调。 |
rtcEngine:firstRemoteAudioFrameOfUid:elapsed: | 已接收远端音频首帧回调。 |
rtcEngine:didAudioMuted:byUid: | 远端用户(通信场景)/主播(直播场景)停止或恢复发送音频流回调。 |
rtcEngine:remoteAudioStateChangedOfUid:state:reason:elapsed: | 远端音频流状态发生改变回调。 |
rtcEngine:localAudioStats: | 通话中本地音频流的统计信息回调。 |
rtcEngine:remoteAudioStats: | 通话中远端音频流的统计信息回调。 |
音频采集
方法/回调 | 描述 |
---|---|
enableLocalAudio: | 开启或关闭本地音频采集。 |
enableLoopbackRecording:deviceName: | 开启声卡采集。 |
enableLoopbackRecordingEx:deviceName:connection: | 开启声卡采集。 |
adjustRecordingSignalVolume: | 调节音频采集信号音量。 |
adjustLoopbackSignalVolume: | 调节声卡采集信号音量。 |
muteRecordingSignal: | 是否将录音信号静音。 |
enableInEarMonitoring: | 开启耳返功能。 |
enableInEarMonitoring:includeAudioFilters: | 开启耳返功能。 |
setInEarMonitoringVolume: | 设置耳返音量。 |
音频前处理和后处理
原始音频数据
已编码音频数据
方法/回调 | 描述 |
---|---|
setAudioEncodedFrameDelegate:config: | 注册音频编码数据观测器。 |
onRecordEncodedAudioFrame:info: | 获取本地用户的音频编码数据。 |
onPlaybackEncodedAudioFrame:info: | 获取所有远端用户的音频编码数据。 |
onMixedEncodedAudioFrame:info: | 获取本地和所有远端用户混音后的音频编码数据。 |
自定义音频采集和渲染
方法/回调 | 描述 |
---|---|
createCustomAudioTrack:config: | 创建一个自定义音频采集轨道。 |
destroyCustomAudioTrack: | 销毁指定的音频轨道。 |
enableExternalAudioSink:sampleRate:channels: | 设置外部音频渲染。 |
pullPlaybackAudioFrameRawData:lengthInByte: | 拉取远端音频数据。 |
pushExternalAudioFrameSampleBuffer:sampleRate:channels:trackId: | 将外部 CMSampleBuffer 音频帧通过自定义音频轨道推送到频道中。 |
pushExternalAudioFrameRawData:samples:sampleRate:channels:trackId:timestamp: | 推送外部音频数据。 |
pullPlaybackAudioFrameSampleBufferByLengthInByte: | 拉取 SampleBuffer 格式的远端音频数据。 |
adjustCustomAudioPlayoutVolume:volume: | 调节自定义音频采集轨道在本地播放的音量。 |
adjustCustomAudioPublishVolume:volume: | 调节自定义音频采集轨道在远端播放的音量。 |
enableCustomAudioLocalPlayback:enabled: | 设置是否在本地播放外部音频源。 |
音频频谱
方法/回调 | 描述 |
---|---|
registerAudioSpectrumDelegate: | 注册音频频谱观测器。 |
enableAudioSpectrumMonitor: | 开启音频频谱监测。 |
disableAudioSpectrumMonitor | 关闭音频频谱监测。 |
unregisterAudioSpectrumDelegate: | 取消注册音频频谱观测器。 |
onLocalAudioSpectrum: | 获取本地音频频谱。 |
onRemoteAudioSpectrum: | 获取远端音频频谱。 |
视频基础功能
视频采集
方法/回调 | 描述 |
---|---|
enableLocalVideo: | 开关本地视频采集。 |
startCameraCapture:config: | 开始通过摄像头采集视频。 |
stopCameraCapture: | 停止通过摄像头采集视频。 |
视频前处理和后处理
视频编码功能
方法/回调 | 描述 |
---|---|
setRemoteVideoStream:type: | 设置订阅的视频流类型。 |
setRemoteVideoStreamEx:type:connection: | 设置订阅的视频流类型。 |
setRemoteDefaultVideoStreamType: | 设置默认订阅的视频流类型。 |
setDualStreamMode: | 在发送端设置双流模式。 |
setDualStreamMode:streamConfig: | 在发送端设置双流模式并设置视频小流。 |
setDualStreamModeEx:streamConfig:connection: | 在发送端设置双流模式。 |
startLocalVideoTranscoder: | 开启本地合图。 |
stopLocalVideoTranscoder | 停止本地合图。 |
updateLocalTranscoderConfiguration: | 更新本地合图配置。 |
rtcEngine:didLocalVideoTranscoderErrorWithStream:errorCode: | 本地合图发生错误回调。 |
视频渲染
方法/回调 | 描述 |
---|---|
setRenderMode: | 设置播放器视图的渲染模式。 |
setLocalRenderMode:mirror: | 更新本地视图显示模式。 |
setRemoteRenderMode:mode:mirror: | 更新远端视图显示模式。 |
setRemoteRenderModeEx:mode:mirror:connection: | 设置远端视图显示模式。 |
setView: | 设置播放器渲染视图。 |
setupLocalVideo: | 初始化本地视图。 |
setupRemoteVideo: | 初始化远端用户视图。 |
setupRemoteVideoEx:connection: | 初始化远端用户视图。 |
enableInstantMediaRendering | 开启音视频帧加速渲染。 |
startMediaRenderingTracing | 开启视频帧渲染数据打点。 |
startMediaRenderingTracingEx: | 开启视频帧渲染数据打点。 |
rtcEngine:videoRenderingTracingResultOfUid:currentEvent:tracingInfo: | 视频帧渲染事件回调。 |
原始视频数据
方法/回调 | 描述 |
---|---|
setVideoFrameDelegate: | 注册原始视频观测器对象。 |
onCaptureVideoFrame:sourceType: | 获取本地设备采集到的视频数据。 |
AgoraRtcMediaPlayer:didReceiveVideoFrame: | 已获取视频帧回调。 |
onPreEncodeVideoFrame:sourceType: | 获取本地视频编码前的视频数据。 |
onRenderVideoFrame:uid:channelId: | 获取远端发送的视频数据。 |
getObservedFramePosition | 设置视频观测位置。 |
getVideoFrameProcessMode | 设置视频处理模式。 |
getMirrorApplied | 设置视频数据镜像。 |
getRotationApplied | 设置视频数据旋转。 |
getVideoFormatPreference | 设置 SDK 输出的原始视频数据格式。 |
已编码视频数据
方法/回调 | 描述 |
---|---|
setEncodedVideoFrameDelegate: | 为编码后的视频图像注册视频帧接收观测器。 |
onEncodedVideoFrameReceived:length:info: | 报告接收端已收到远端发送的待解码视频帧。 |
自定义视频采集和渲染
方法/回调 | 描述 |
---|---|
createCustomVideoTrack | 创建一个自定义的视频轨道。 |
destroyCustomVideoTrack: | 销毁指定的视频轨道。 |
setExternalVideoSource:useTexture:sourceType: | 设置外部视频源。 |
pushExternalVideoFrame:videoTrackId: | 将外部原始视频帧通过自定义视频轨道发布到频道中。 |
pushExternalVideoFrame: | 推送外部原始视频帧到 SDK。 |
音乐文件播放
方法/回调 | 描述 |
---|---|
startAudioMixing:loopback:cycle: | 开始播放音乐文件。 |
startAudioMixing:loopback:cycle:startPos: | 开始播放音乐文件。 |
stopAudioMixing | 停止播放音乐文件。 |
pauseAudioMixing | 暂停播放音乐文件。 |
resumeAudioMixing | 恢复播放音乐文件。 |
adjustAudioMixingVolume: | 调节音乐文件的播放音量。 |
adjustAudioMixingPlayoutVolume: | 调节音乐文件在本地播放的音量。 |
adjustAudioMixingPublishVolume: | 调节音乐文件远端播放音量。 |
getAudioMixingPlayoutVolume | 获取音乐文件的本地播放音量。 |
getAudioMixingPublishVolume | 获取音乐文件的远端播放音量。 |
setAudioMixingPlaybackSpeed: | 设置当前音乐文件的播放速度。 |
getAudioMixingDuration | 获取音乐文件总时长。 |
getAudioMixingCurrentPosition | 获取音乐文件的播放进度。 |
setAudioMixingPitch: | 调整本地播放的音乐文件的音调。 |
setAudioMixingPosition: | 设置音乐文件的播放位置。 |
setAudioMixingDualMonoMode: | 设置当前音频文件的声道模式。 |
getAudioTrackCount | 获取当前音乐文件的音轨索引。 |
selectAudioTrack: | 指定当前音乐文件的播放音轨。 |
selectMultiAudioTrack:publishTrackIndex: | 选择本地播放和发送至远端的音轨。 |
rtcEngine:audioMixingStateChanged:reasonCode: | 音乐文件的播放状态已改变回调。 |
rtcEngine:audioMixingPositionChanged: | 音乐文件播放进度回调。 |
音效文件播放
方法/回调 | 描述 |
---|---|
getEffectsVolume | 获取音效文件的播放音量。 |
setEffectsVolume: | 设置音效文件的播放音量。 |
getVolumeOfEffect: | 获取指定音效文件的播放音量。 |
setVolumeOfEffect:withVolume: | 设置指定音效文件的播放音量。 |
preloadEffect:filePath: | 将音效文件加载至内存。 |
playEffect:filePath:loopCount:pitch:pan:gain: | 播放指定的本地或在线音效文件。 |
playEffect:filePath:loopCount:pitch:pan:gain:publish: | 播放指定的本地或在线音效文件。 |
playEffect:filePath:loopCount:pitch:pan:gain:publish:startPos: | 播放指定的本地或在线音效文件。 |
pauseEffect: | 暂停音效文件播放。 |
pauseAllEffects | 暂停所有音效文件播放。 |
resumeEffect: | 恢复播放指定音效文件。 |
resumeAllEffects | 恢复播放所有音效文件。 |
stopEffect: | 停止播放指定音效文件。 |
stopAllEffects | 停止播放所有音效文件。 |
unloadEffect: | 从内存释放某个预加载的音效文件。 |
getEffectDuration: | 获取指定音效文件总时长。 |
getEffectCurrentPosition: | 获取指定音效文件的播放进度。 |
setEffectPosition:pos: | 设置指定音效文件的播放位置。 |
rtcEngineDidAudioEffectFinish:soundId: | 本地音效文件播放已结束回调。 |
虚拟节拍器
方法/回调 | 描述 |
---|---|
startRhythmPlayer:sound2:config: | 开启虚拟节拍器。 |
stopRhythmPlayer | 关闭虚拟节拍器。 |
configRhythmPlayer: | 配置虚拟节拍器。 |
rtcEngine:didRhythmPlayerStateChanged:reason: | 虚拟节拍器状态发生改变回调。 |
媒体播放器
更多有关媒体播放器的方法,详见内置媒体播放器。
方法/回调 | 描述 |
---|---|
createMediaPlayerWithDelegate: | 创建媒体播放器实例。 |
createMediaPlayerCacheManager | 创建 AgoraRtcMediaPlayerCacheManagerProtocol 实例。 |
AgoraRtcMediaPlayerProtocol | 提供媒体播放器功能的类,支持多实例。 |
AgoraRtcMediaPlayerCacheManagerProtocol | 该类提供管理媒体播放器中缓存媒体文件的方法。 |
AgoraRtcMediaPlayerDelegate | 提供媒体播放器的回调。 |
媒体播放器缓存
方法/回调 | 描述 |
---|---|
enableAutoRemoveCache: | 设置是否开启自动清除缓存文件功能。 |
removeAllCaches | 删除媒体播放器中所有已缓存的媒体文件。 |
removeCacheByUri: | 删除指定的已缓存媒体文件。 |
removeOldCache | 删除媒体播放器中近期最少使用的一个缓存媒体文件。 |
setCacheDir: | 设置待缓存的媒体文件的储存路径。 |
setMaxCacheFileCount: | 设置缓存媒体文件数量的上限。 |
setMaxCacheFileSize: | 设置缓存媒体文件的总缓存大小的上限。 |
sharedInstance | 获取 AgoraRtcMediaPlayerCacheManagerProtocol 实例。 |
cacheDir | 获取缓存文件的储存路径。 |
cacheFileCount | 获取当前已缓存的媒体文件的总数量。 |
maxCacheFileCount | 获取所设置的缓存文件数量上限。 |
maxCacheFileSize | 获取所设置的缓存文件总缓存的上限。 |
AgoraRtcMediaPlayer:cacheStats: | 报告当前缓存中的媒体资源的相关信息。 |
音视频录制
方法/回调 | 描述 |
---|---|
createMediaRecorder: | 创建音视频录制对象。 |
setMediaRecorderDelegate: | 注册 AgoraMediaRecorderDelegate 观测器。 |
startRecording: | 开启音视频流录制。 |
stopRecording | 停止音视频流录制。 |
startAudioRecording:quality: | 开始客户端录音。 |
startAudioRecordingWithConfig: | 开始客户端录音并进行录音配置。 |
stopAudioRecording | 停止客户端录音。 |
enableMainQueueDispatch: | 设置是否分发回调至主队列。 |
destroyMediaRecorder: | 销毁音视频录制对象。 |
mediaRecorder:stateDidChanged:uid:state:reason: | 录制状态发生改变回调。 |
mediaRecorder:informationDidUpdated:uid:info: | 录制信息更新回调。 |
跨频道媒体流转发
方法/回调 | 描述 |
---|---|
startOrUpdateChannelMediaRelay: | 开始或更新跨频道媒体流转发。 |
startOrUpdateChannelMediaRelayEx:connection: | 开始或更新跨频道媒体流转发。 |
stopChannelMediaRelay | 停止跨频道媒体流转发。一旦停止,主播会退出所有目标频道。 |
stopChannelMediaRelayEx: | 停止跨频道媒体流转发。一旦停止,主播会退出所有目标频道。 |
pauseAllChannelMediaRelay | 暂停向所有目标频道转发媒体流。 |
pauseAllChannelMediaRelayEx: | 暂停向所有目标频道转发媒体流。 |
resumeAllChannelMediaRelay | 恢复向所有目标频道转发媒体流。 |
resumeAllChannelMediaRelayEx: | 恢复向所有目标频道转发媒体流。 |
rtcEngine:channelMediaRelayStateDidChange:error: | 跨频道媒体流转发状态发生改变回调。 |
旁路推流
方法/回调 | 描述 |
---|---|
startRtmpStreamWithoutTranscoding: | 开始非转码推流。 |
startRtmpStreamWithoutTranscodingEx:connection: | 开始非转码推流。 |
startRtmpStreamWithTranscoding:transcoding: | 开始旁路推流并设置转码属性。 |
startRtmpStreamWithTranscodingEx:transcoding:connection: | 开始旁路推流并设置转码属性。 |
updateRtmpTranscoding: | 更新旁路推流转码属性。 |
updateRtmpTranscodingEx:connection: | 更新旁路推流转码属性。 |
stopRtmpStream: | 结束旁路推流。 |
stopRtmpStreamEx:connection: | 结束旁路推流。 |
rtcEngine:rtmpStreamingEventWithUrl:eventCode: | 旁路推流事件回调。 |
rtcEngine:rtmpStreamingChangedToState:state:reason: | 旁路推流状态发生改变回调。 |
rtcEngineTranscodingUpdated: | 旁路推流转码设置已被更新回调。 |
直推 CDN
方法/回调 | 描述 |
---|---|
startDirectCdnStreaming:publishUrl:mediaOptions: | 设置主播端开始直接向 CDN 推流。 |
stopDirectCdnStreaming | 设置主播端停止直接向 CDN 推流。 |
setDirectCdnStreamingAudioConfiguration: | 设置主播端直接向 CDN 推流时的音频编码属性。 |
setDirectCdnStreamingVideoConfiguration: | 设置主播端直接向 CDN 推流时的视频编码属性。 |
onDirectCdnStreamingStateChanged:reason:message: | CDN 推流状态改变回调。 |
onDirectCdnStreamingStats: | CDN 推流统计数据回调。 |
数据流
方法/回调 | 描述 |
---|---|
createDataStream:reliable:ordered: | 创建数据流。 |
createDataStream:config: | 创建数据流。 |
createDataStreamEx:config:connection: | 创建数据流。 |
sendStreamMessage:data: | 发送数据流。 |
rtcEngine:receiveStreamMessageFromUid:streamId:data: | 接收到对方数据流消息的回调。 |
rtcEngine:didOccurStreamMessageErrorFromUid:streamId:error:missed:cached: | 接收对方数据流消息发生错误的回调。 |
Metadata (SEI)
方法/回调 | 描述 |
---|---|
setMediaMetadataDelegate:withType: | 注册媒体 metadata 观测器用于接收或发送 metadata。 |
setMediaMetadataDataSource:withType: | 设置 metadata 的 Data source。 |
metadataMaxSize | 请求最大的 metadata 大小。 |
readyToSendMetadataAtTimestamp:sourceType: | 发送端已准备好发送 metadata。 |
AgoraRtcMediaPlayer:didReceiveData:length: | 报告已获取媒体附属信息。 |
didMetadataReceived: | 接收端已收到 metadata。 |
通用设备管理
方法/回调 | 描述 |
---|---|
enumerateDevices: | 获取系统中所有的音视频设备。 |
getDeviceInfo: | 获取当前设备名称。 |
getDeviceVolume: | 获取当前设备的音量。 |
setDeviceVolume:volume: | 设置设备音量。 |
monitorDeviceChange: | 监测设备变化。 |
setCameraCapturerConfiguration | 设置摄像头采集配置。 |
rtcEngine:device:type:stateChanged: | 设备状态改变回调。 |
followSystemPlaybackDevice: | 设置 SDK 使用的音频播放设备跟随系统默认的音频播放设备。 |
followSystemRecordingDevice: | 设置 SDK 使用的音频采集设备跟随系统默认的音频采集设备。 |
startPlaybackDeviceTest: | 启动音频播放设备测试。 |
stopPlaybackDeviceTest | 停止音频播放设备测试。 |
startRecordingDeviceTest: | 启动音频采集设备测试。 |
stopRecordingDeviceTest | 停止音频采集设备测试。 |
startAudioDeviceLoopbackTest: | 开始音频设备回路测试。 |
stopAudioDeviceLoopbackTest | 停止音频设备回路测试。 |
getDefaultAudioDevice: | 获取系统默认的音频设备。 |
queryCodecCapability | 查询 SDK 支持的视频编解码能力。 |
setDevice:deviceId: | 指定设备。 |
插件相关
方法/回调 | 描述 |
---|---|
registerExtensionWithVendor:extension:sourceType: | 注册插件。 |
enableExtensionWithVendor:extension:enabled:sourceType: | 启用/禁用插件。 |
getExtensionPropertyWithVendor:extension:key: | 获取插件的详细信息。 |
getExtensionPropertyWithVendor:extension:key:sourceType: | 获取插件的详细信息。 |
setExtensionPropertyWithVendor:extension:key:value: | 设置插件的属性。 |
setExtensionProviderPropertyWithVendor:key:value: | 设置插件服务商的属性。 |
onExtensionStartedWithContext: | 插件已启用成功回调。 |
onExtensionStoppedWithContext: | 插件已禁用回调。 |
onEventWithContext:key:value: | 插件事件回调。 |
onExtensionErrorWithContext:error:message: | 插件出错回调。 |