Agora Flutter SDK 基于 Android 和 iOS 平台的 Agora RTC SDK 封装,可在基于 Flutter 开发的 Android 和 iOS 移动端应用中快速实现实时音视频功能。

  • The RtcEngine 类包含应用程序调用的主要方法。
  • The RtcEngineEventHandler 类用于向应用程序发送回调通知。
  • The RtcChannel 类在指定频道中实现实时音视频功能。通过创建多个 RtcChannel 对象,用户可以同时加入多个频道。
  • The RtcChannelEventHandler 类监听和报告指定频道的事件和数据。

核心方法

方法 描述
create 创建 RtcEngine 实例
createWithConfig 创建 RtcEngine 实例(指定访问区域)
createWithContext 创建 RtcEngine 实例(指定一个或多个访问区域)
destroy 销毁 RtcEngine 实例
setChannelProfile 设置频道场景
setClientRole 设置直播场景下的用户角色
joinChannel 加入频道
switchChannel 快速切换直播频道
leaveChannel 离开频道
destroy 销毁 RtcChannel 实例
renewToken 更新 Token
getConnectionState 获取网络连接状态

核心事件

事件 描述
connectionStateChanged 网络连接状态已改变回调
joinChannelSuccess 加入频道回调
rejoinChannelSuccess 重新加入频道回调
leaveChannel 离开频道回调
clientRoleChanged 用户角色已切换回调
userJoined 远端用户加入当前频道回调
userOffline 远端用户离开当前频道回调
networkTypeChanged 本地网络类型发生改变回调
connectionLost 网络连接丢失回调
tokenPrivilegeWillExpire Token 服务即将过期回调
requestToken Token 已过期回调

音频管理

方法 描述
enableAudio 启用音频模块
disableAudio 关闭音频模块
setAudioProfile 设置音频编码配置
adjustRecordingSignalVolume 调节录音音量
adjustUserPlaybackSignalVolume 调节本地播放的指定远端用户音量
adjustPlaybackSignalVolume 调节本地播放的所有远端用户音量
enableLocalAudio 开关本地音频采集
muteLocalAudioStream 停止/恢复发送本地音频流
muteRemoteAudioStream 停止/恢复接收指定音频流
muteAllRemoteAudioStreams 停止/恢复接收所有音频流
setDefaultMuteAllRemoteAudioStreams 设置是否默认接收音频流

视频管理

方法 描述
enableVideo 启用视频模块
disableVideo 关闭视频模块
setVideoEncoderConfiguration 设置视频编码配置
startPreview 开启视频预览
stopPreview 停止视频预览
enableLocalVideo 开关本地视频采集
muteLocalVideoStream 停止/恢复发送本地视频流
muteRemoteVideoStream 停止/恢复接收指定视频流
muteAllRemoteVideoStreams 停止/恢复接收所有视频流
setDefaultMuteAllRemoteVideoStreams 设置是否默认接收视频流

本地媒体事件

事件 描述
localAudioStateChanged 本地音频状态改变回调
localVideoStateChanged 本地视频状态改变回调
firstLocalAudioFramePublished 已发布本地音频首帧回调
firstLocalVideoFramePublished 已发布本地视频首帧回调
firstLocalVideoFrame 已显示本地视频首帧回调。
audioPublishStateChanged 音频发布状态改变回调
videoPublishStateChanged 视频发布状态改变回调

远端媒体事件

事件 描述
remoteAudioStateChanged 远端用户音频状态已改变回调
remoteVideoStateChanged 远端用户视频状态已变化回调
firstRemoteVideoFrame 已显示远端视频首帧回调
audioSubscribeStateChanged 音频订阅状态改变回调
videoSubscribeStateChanged 视频订阅状态改变回调

数据统计事件

加入频道后,SDK 每隔 2 秒自动触发本组回调。

事件 描述
RtcStats 当前通话统计回调
networkQuality 网络上下行质量报告回调
localAudioStats 通话中本地音频流统计信息回调
localVideoStats 通话中本地视频流统计信息回调
remoteAudioStats 通话中远端音频流的统计信息回调
remoteVideoStats 通话中远端视频流统计信息回调

视频前处理及后处理

方法 描述
setBeautyEffectOptions 设置美颜效果选项
enableVirtualBackground 开启/关闭虚拟背景。(beta 功能)
Event Description
virtualBackgroundSourceEnabled 报告虚拟背景是否成功开启。(beta 功能)

多频道管理

方法 描述
create 创建并获取一个 RtcChannel 对象。通过创建多个对象,用户可以同时加入多个频道。
RtcChannel 提供在指定频道内实现实时音视频功能的方法。
RtcChannelEventHandler 提供监听指定频道事件和数据的回调。

音乐文件播放及混音

方法 描述
startAudioMixing 开始播放音乐文件
stopAudioMixing 停止播放音乐文件
pauseAudioMixing 暂停播放音乐文件
resumeAudioMixing 恢复播放音乐文件
adjustAudioMixingVolume 调节音乐文件播放音量
adjustAudioMixingPlayoutVolume 调节音乐文件的本地播放音量
adjustAudioMixingPublishVolume 调节音乐文件的远端播放音量
setAudioMixingPitch 调整本地播放的音乐文件的音调
getAudioMixingPlayoutVolume 获取音乐文件的本地播放音量
getAudioMixingPublishVolume 获取音乐文件的远端播放音量
getAudioMixingDuration 获取音乐文件播放时长
getAudioMixingCurrentPosition 获取音乐文件的播放进度
setAudioMixingPosition 设置音乐文件的播放位置
事件 描述
audioMixingStateChanged 本地用户的音乐文件播放状态已改变回调

音效文件播放管理

方法 描述
getEffectsVolume 获取播放音效文件音量
setEffectsVolume 设置播放音效文件音量
setVolumeOfEffect 实时调整播放音效文件音量
playEffect 播放指定音效文件
setEffectPosition 设置指定音效文件的播放位置
getEffectDuration 获取指定音效文件总时长
getEffectCurrentPosition 获取指定音效文件的播放进度
stopEffect 停止播放指定音效文件
stopAllEffects 停止播放所有音效文件
preloadEffect 将音效文件加载至内存
unloadEffect 从内存释放某个预加载的音效文件
pauseEffect 暂停音效文件播放
pauseAllEffects 暂停所有音效文件播放
resumeEffect 恢复播放指定音效文件
resumeAllEffects 恢复播放所有音效文件
事件 描述
audioEffectFinished 本地音效文件播放已结束回调

虚拟节拍器

方法 描述
startRhythmPlayer 开启虚拟节拍器
stopRhythmPlayer 关闭虚拟节拍器
configRhythmPlayer 配置虚拟节拍器

变声与混响

方法 描述
setAudioEffectPreset 设置 SDK 预设的人声音效
setVoiceBeautifierPreset 设置 SDK 预设的美声效果
setVoiceBeautifierParameters 设置 SDK 预设美声效果的参数
setAudioEffectParameters 设置 SDK 预设人声音效的参数
setLocalVoicePitch 设置本地语音音调
setLocalVoiceEqualization 设置本地语音音效均衡
setLocalVoiceReverb 设置本地音效混响
setVoiceConversionPreset 设置 SDK 预设的变声效果

听声辩位

方法 描述
enableSoundPositionIndication 开启/关闭远端用户的语音立体声
setRemoteVoicePosition 设置远端用户的语音位置

CDN 推流

该组方法仅适用于互动直播。

方法 描述
setLiveTranscoding 设置直播转码
addPublishStreamUrl 增加旁路推流地址
removePublishStreamUrl 删除旁路推流地址
事件 描述
rtmpStreamingStateChanged 旁路推流状态改变回调
transcodingUpdated 旁路推流设置已被更新回调
rtmpStreamingEvent RTMP/RTMPS 推流事件回调

跨频道媒体流转发

方法 描述
startChannelMediaRelay 开始跨频道媒体流转发
updateChannelMediaRelay 更新媒体流转发的频道
stopChannelMediaRelay 停止跨频道媒体流转发
事件 描述
channelMediaRelayStateChanged 跨频道媒体流转发状态发生改变回调
channelMediaRelayEvent 跨频道媒体流转发事件回调

音量提示

方法 描述
enableAudioVolumeIndication 启用说话者音量提示
事件 描述
audioVolumeIndication 提示频道内谁正在说话及说话者音量的回调
activeSpeaker 监测到活跃用户回调

人脸检测

方法 描述
enableFaceDetection 开启/关闭本地人脸检测
事件 描述
facePositionChanged 报告本地人脸检测结果

语音播放路由

方法 描述
setDefaultAudioRoutetoSpeakerphone 设置默认的音频播放路由
setEnableSpeakerphone 启用/关闭扬声器播放
isSpeakerphoneEnabled 查询扬声器启用状态
事件 描述
audioRouteChanged 语音路由已改变回调

耳返控制

方法 描述
enableInEarMonitoring 开启耳返功能
setInEarMonitoringVolume 设置耳返音量

视频双流模式

方法 描述
enableDualStreamMode 开关视频双流模式
setRemoteVideoStreamType 设置订阅的视频流类型
setRemoteDefaultVideoStreamType 设置默认订阅的视频流类型

音视频回退

方法 描述
setLocalPublishFallbackOption 设置弱网条件下发布的音视频流回退选项
setRemoteSubscribeFallbackOption 设置弱网条件下订阅的音视频流回退选项
setRemoteUserPriority 设置用户媒体流优先级
事件 描述
localPublishFallbackToAudioOnly 本地发布流已回退为音频流或恢复为音视频流回调
remoteSubscribeFallbackToAudioOnly 远端订阅流已回退为音频流或恢复为音视频流回调

通话前网络测试

方法 描述
startEchoTest 开始语音通话回路测试
stopEchoTest 停止语音通话回路测试
enableLastmileTest 启用网络测试
disableLastmileTest 关闭网络测试
startLastmileProbeTest 开始通话前网络质量探测
stopLastmileProbeTest 停止通话前网络质量探测
事件 描述
lastmileQuality 本地网络质量报告回调
lastmileProbeResult 本地网络上下行 Last mile 质量报告回调

媒体附属信息

该组方法仅适用于互动直播。

方法 描述
registerMediaMetadataObserver 注册媒体 Metadata 观测器
setMaxMetadataSize 设置 Metadata 的最大数据大小
sendMetadata 发送 Metadata
unregisterMediaMetadataObserver 注销媒体 Metadata 观测器

直播水印

该组方法仅适用于互动直播。

方法 描述
addVideoWatermark 添加本地视频水印
clearVideoWatermarks 删除已添加的视频水印

加密

方法 描述
enableEncryption 开启/关闭内置加密

音频录制

方法 描述
startAudioRecording 开始客户端录音
stopAudioRecording 停止客户端录音

摄像头控制

方法 描述
switchCamera 切换前置/后置摄像头
isCameraZoomSupported 检测设备是否支持摄像头缩放功能
isCameraTorchSupported 检测设备是否支持闪光灯常开
isCameraFocusSupported 检测设备是否支持手动对焦功能
isCameraExposurePositionSupported 检测设备是否支持手动曝光功能
isCameraAutoFocusFaceModeSupported 检测设备是否支持人脸对焦功能
setCameraZoomFactor 设置摄像头缩放比例
getCameraMaxZoomFactor 获取摄像头支持最大缩放比例
setCameraFocusPositionInPreview 设置手动对焦位置,并触发对焦
setCameraExposurePosition 设置手动曝光位置
setCameraTorchOn 设置是否打开闪光灯
setCameraAutoFocusFaceModeEnabled 设置是否开启人脸对焦功能
事件 描述
cameraFocusAreaChanged 摄像头对焦区域已改变回调
cameraExposureAreaChanged 摄像头曝光区域已改变回调

流消息

方法 描述
createDataStreamWithConfig 创建数据流
sendStreamMessage 发送数据流
事件 描述
streamMessage 接收到对方数据流消息的回调
streamMessageError 接收对方数据流消息发生错误的回调

其他视频控制

方法 描述
setCameraCapturerConfiguration 设置摄像头的采集偏好

其他方法

方法 描述
setCloudProxy 设置 Agora 云代理服务
enableDeepLearningDenoise 开启或关闭 AI 降噪模式
getCallId 获取通话 ID
rate 给通话评分
complain 投诉通话质量
getSdkVersion 查询 SDK 版本号
getErrorDescription 获取警告或错误描述

其他事件

事件 描述
warning 发生警告回调
error 发生错误回调
apiCallExecuted API 方法已执行回调

Libraries

agora_rtc_engine
agora_rtc_engine_web
rtc_channel
rtc_local_view
rtc_remote_view