Agora Flutter SDK 基于 Android 和 iOS 平台的 Agora RTC SDK 封装,可在基于 Flutter 开发的 Android 和 iOS 移动端应用中快速实现实时音视频功能。
- RtcEngine 类包含应用程序调用的主要方法。
- RtcEngineEventHandler 类用于向应用程序发送回调通知。
- RtcChannel 类在指定频道中实现实时音视频功能。通过创建多个 RtcChannel 对象,用户可以同时加入多个频道。
- RtcChannelEventHandler 类监听和报告指定频道的事件和数据。
频道管理
方法 | 描述 |
---|---|
create | 创建 RtcEngine 实例 |
createWithAreaCode | 创建 RtcEngine 实例(指定访问区域) |
destroy | 销毁 RtcEngine 实例 |
setChannelProfile | 设置频道场景 |
setClientRole | 设置直播场景下的用户角色 |
joinChannel | 加入频道 |
switchChannel | 快速切换直播频道 |
leaveChannel | 离开频道 |
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 | 设置美颜效果选项 |
多频道管理
方法 | 描述 |
---|---|
create | 创建并获取一个 RtcChannel 对象。通过创建多个对象,用户可以同时加入多个频道。 |
RtcChannel | 提供在指定频道内实现实时音视频功能的方法。 |
RtcChannelEventHandler | 提供监听指定频道事件和数据的回调。 |
音乐文件播放及混音
方法 | 描述 |
---|---|
startAudioMixing | 开始播放音乐文件 |
stopAudioMixing | 停止播放音乐文件 |
pauseAudioMixing | 暂停播放音乐文件 |
resumeAudioMixing | 恢复播放音乐文件 |
adjustAudioMixingVolume | 调节音乐文件播放音量 |
adjustAudioMixingPlayoutVolume | 调节音乐文件的本地播放音量 |
adjustAudioMixingPublishVolume | 调节音乐文件的远端播放音量 |
setAudioMixingPitch | 调整本地播放的音乐文件的音调 |
getAudioMixingPlayoutVolume | 获取音乐文件的本地播放音量 |
getAudioMixingPublishVolume | 获取音乐文件的远端播放音量 |
getAudioMixingDuration | 获取音乐文件播放时长 |
getAudioMixingCurrentPosition | 获取音乐文件的播放进度 |
setAudioMixingPosition | 设置音乐文件的播放位置 |
事件 | 描述 |
---|---|
audioMixingStateChanged | 本地用户的音乐文件播放状态已改变回调 |
音效文件播放管理
方法 | 描述 |
---|---|
getEffectsVolume | 获取播放音效文件音量 |
etEffectsVolume | 设置播放音效文件音量 |
etVolumeOfEffect | 实时调整播放音效文件音量 |
playEffect | 播放指定音效文件 |
stopEffect | 停止播放指定音效文件 |
stopAllEffects | 停止播放所有音效文件 |
preloadEffect | 将音效文件加载至内存 |
unloadEffect | 从内存释放某个预加载的音效文件 |
pauseEffect | 暂停音效文件播放 |
pauseAllEffects | 暂停所有音效文件播放 |
resumeEffect | 恢复播放指定音效文件 |
resumeAllEffects | 恢复播放所有音效文件 |
事件 | 描述 |
---|---|
audioEffectFinished | 本地音效文件播放已结束回调 |
变声与混响
方法 | 描述 |
---|---|
setLocalVoiceChanger | 设置本地语音变声 |
setLocalVoiceReverbPreset | 设置预设的本地语音混响效果 |
setLocalVoicePitch | 设置本地语音音调 |
setLocalVoiceEqualization | 设置本地语音音效均衡 |
setLocalVoiceReverb | 设置本地音效混响 |
听声辩位
方法 | 描述 |
---|---|
enableSoundPositionIndication | 开启/关闭远端用户的语音立体声 |
setRemoteVoicePosition | 设置远端用户的语音位置 |
CDN 推流
该组方法仅适用于互动直播。
方法 | 描述 |
---|---|
setLiveTranscoding | 设置直播转码 |
addPublishStreamUrl | 增加旁路推流地址 |
removePublishStreamUrl | 删除旁路推流地址 |
事件 | 描述 |
---|---|
rtmpStreamingStateChanged | 旁路推流状态改变回调 |
transcodingUpdated | 旁路推流设置已被更新回调 |
rtmpStreamingEvent | RTMP 推流事件回调 |
跨频道媒体流转发
方法 | 描述 |
---|---|
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 | 停止客户端录音 |
直播输入在线媒体流
该组方法仅适用于互动直播。
方法 | 描述 |
---|---|
addInjectStreamUrl | 输入在线媒体流 |
removeInjectStreamUrl | 删除输入的在线媒体流 |
事件 | 描述 |
---|---|
streamInjectedStatus | 输入在线媒体流状态回调 |
摄像头控制
方法 | 描述 |
---|---|
switchCamera | 切换前置/后置摄像头 |
isCameraZoomSupported | 检测设备是否支持摄像头缩放功能 |
isCameraTorchSupported | 检测设备是否支持闪光灯常开 |
isCameraFocusSupported | 检测设备是否支持手动对焦功能 |
isCameraExposurePositionSupported | 检测设备是否支持手动曝光功能 |
isCameraAutoFocusFaceModeSupported | 检测设备是否支持人脸对焦功能 |
setCameraZoomFactor | 设置摄像头缩放比例 |
getCameraMaxZoomFactor | 获取摄像头支持最大缩放比例 |
setCameraFocusPositionInPreview | 设置手动对焦位置,并触发对焦 |
setCameraExposurePosition | 设置手动曝光位置 |
setCameraTorchOn | 设置是否打开闪光灯 |
setCameraAutoFocusFaceModeEnabled | 设置是否开启人脸对焦功能 |
事件 | 描述 |
---|---|
cameraFocusAreaChanged | 摄像头对焦区域已改变回调 |
cameraExposureAreaChanged | 摄像头曝光区域已改变回调 |
流消息
方法 | 描述 |
---|---|
createDataStream | 创建数据流 |
sendStreamMessage | 发送数据流 |
事件 | 描述 |
---|---|
streamMessage | 接收到对方数据流消息的回调 |
streamMessageError | 接收对方数据流消息发生错误的回调 |
其他视频控制
方法 | 描述 |
---|---|
setCameraCapturerConfiguration | 设置摄像头的采集偏好 |
其他方法
方法 | 描述 |
---|---|
getCallId | 获取通话 ID |
rate | 给通话评分 |
complain | 投诉通话质量 |
setLogFile | 设置日志文件 |
setLogFilter | 设置日志输出等级 |
setLogFileSize | 设置日志文件大小 |
其他事件
事件 | 描述 |
---|---|
warning | 发生警告回调 |
error | 发生错误回调 |
apiCallExecuted | API 方法已执行回调 |