输入在线媒体流。
该方法适用于 Native SDK v2.4.1 及之后的版本。
该方法通过在服务端拉取一路视频流并发送到频道中,将正在播出的视频输入到正在进行的直播中。 可主要应用于赛事直播、多人看视频互动等直播场景。
调用该方法后,SDK 会在本地触发 streamInjectStatus
回调,报告导入在线媒体流的状态。
成功导入媒体流后,该音视频流会出现在频道中,频道内所有用户都会收到 userJoined
回调,其中 uid
为 666。
添加到直播中的媒体流 URL 地址,支持 RTMP, HLS, HTTP-FLV 协议。
外部导入的媒体流的配置。
2
: 输入的 URL 为空。请重新调用该方法,并确认输入的媒体流的 URL 是有效的。7
: 引擎没有初始化。请确认调用该方法前已创建 AgoraRtcEngine
对象并完成初始化。4
: 频道非直播场景。请调用 setChannelProfile 并将频道设置为直播场景再调用该方法。3
: 用户没有加入频道。增加旁路推流地址。
调用该方法后,SDK 会在本地触发 streamPublished 回调,报告增加旁路推流地址的状态。
CDN 推流地址,格式为 RTMP。该字符长度不能超过 1024 字节,且不支持中文等特殊字符。
设置是否转码:
true
,需先调用 setLiveTranscoding 方法。ERR_INVALID_ARGUMENT (2)
: RTMP 流地址为空或者字符长度为 0。ERR_NOT_INITIALIZED (7)
: 使用该功能之前没有初始化 AgoraRtcChannel
。将指定用户的视频流添加为高帧率流。添加为高帧率流后,你可以调用 setVideoRenderHighFPS 方法对视频流进行控制。
用户 ID
待添加的水印图片的本地路径。本方法支持从本地绝对/相对路径添加水印图片。
待添加的水印图片的设置选项,详见 WatermarkOptions
调节音乐文件的本地播放音量。
音乐文件的本地播放音量,取值范围为 [0, 100],默认值为 100,表示原始文件音量
调节音乐文件的远端播放音量。
音乐文件的远端播放音量,取值范围为 [0, 100],默认值为 100,表示原始文件音量
调节音乐文件的播放音量。
音乐文件播放音量,取值范围为 [0, 100],默认值为 100,表示原始文件音量
调节播放人声的音量。
播放人声的信号音量。为避免回声并提升通话质量,Agora 建议将取值 为 [0,100]。如设值需超过 100,请联系技术支持。
调节录音音量。
录音信号音量,为避免回声并提升通话质量,Agora 建议取值为 [0,100]。如果设值需超过 100,请联系技术支持。
远端用户 ID。
播放音量,取值范围为 [0,100]:
投诉通话质量。
通话 getCallId 方法获取的通话 ID
给通话的描述。可选参数,长度应小于 800 字节
创建并获取一个 AgoraRtcChannel
对象。
你可以多次调用该方法,创建多个 AgoraRtcChannel
对象,再调用各 AgoraRtcChannel
对象
中的 joinChannel 方法,实现同时加入多个频道。
加入多个频道后,你可以同时订阅各个频道的音、视频流;但是同一时间只能在一个频道发布一路音、视频流。
能标识频道的频道名,长度在 64 字节以内的字符。以下为支持的字符集 范围(共 89 个字符):
channelName
设为空字符 "",SDK 会返回 ERR_REFUSED(5)
创建数据流。
该方法用于创建数据流。AgoraRtcEngine
生命周期内,每个用户最多只能创建 5 个数据流。
true
:接收方 5 秒内会收到发送方所发送的数据,否则会收到 streamMessageError
回调并获得相应报错信息false
:接收方不保证收到,就算数据丢失也不会报错true
:接收方 5 秒内会按照发送方发送的顺序收到数据包false
:接收方不保证按照发送方发送的顺序收到数据包销毁渲染器对象。
存储渲染器 Map 的关键标识,如 uid
、videoSource
或 local
destroyRenderer
方法的错误回调
关闭音频模块。
关闭网络测试。
关闭视频模块。
该方法可以在加入频道前或者通话中调用:
成功掉调用该方法后,远端会触发 userEnableVideo(fasle)
回调。
若想再次开启视频模块,请调用 enableVideo 方法。
启用音频模块(默认为开启状态)。
启用说话者音量提示。
该方法允许 SDK 定期向 App 反馈当前谁在说话以及说话者的音量。启用该方法后,无论频道内是否有人说话,
都会在说话声音音量提示回调 groupAudioVolumeIndication
回调中按设置的间隔时间返回音量提示。
指定音量提示的时间间隔:
groupAudioVolumeIndication
回调。平滑系数,指定音量提示的灵敏度。取值范围为 [0, 10]。建议值为 3,数字越大,波动越灵敏;数字越小,波动越平滑
true
: 开启本地人声检测功能。开启后,groupAudioVolumeIndication
回调的 vad
参数会报告是否在本地检测到人声。false
:(默认)关闭本地人声检测功能。除引擎自动进行本地人声检测的场景外,groupAudioVolumeIndication
回调的 vad
参数不会报告是否在本地检测到人声。开/关视频双流模式。
该方法设置单流(默认)或者双流模式。发送端开启双流模式后,接收端可以选择接收大流还是小流。
其中,大流指高分辨率、高码率的视频流,小流指低分辨率、低码率的视频流。
指定双流或者单流模式:
开启或关闭内置加密。
是否开启内置加密:
配置内置加密模式和密钥。
启用网络测试。
该方法启用网络连接质量测试,用于检测用户网络接入质量。默认该功能为关闭状态。
该方法主要用于以下两种场景:
开/关本地音频采集。
当 App 加入频道时,它的语音功能默认是开启的。该方法可以关闭或重新开启本地语音功能,即停止或重新开始本地音频采集。
该方法不影响接收或播放远端音频流,enableLocalAudio(false)
适用于只听不发的用户场景。语音功能关闭或重新开启后,会收到回调 microphoneEnabled
。
开/关本地视频采集。
该方法禁用或重新启用本地视频采集,不影响接收远端视频。
调用 enableVideo 后,本地视频即默认开启。你可以调用 enableLocalVideo(false) 关闭本地视频采集。关闭后如果想要重新开启,则可调用 enableLocalVideo(true)。
成功禁用或启用本地视频采集后,远端会触发 userEnableLocalVideo 回调。
开启声卡采集。
启用声卡采集功能后,声卡播放的声音会被合到本地音频流中,从而可以发送到远端。
是否开启声卡采集:
声卡的设备名。
"soundflower"
作为参数传入,SDK 会找到对应的虚拟声卡设备,并开始采集。Note: macOS 系统默认声卡
不支持采集功能,如需开启此功能需要 App 自己启用一个虚拟声卡,并将该虚拟声卡的名字
作为 deviceName
传入 SDK。 Agora 测试并推荐 soundflower 作为虚拟声卡。开启/关闭远端用户的语音立体声。
如果想调用 setRemoteVoicePosition 实现听声辨位的功能,请确保在调用 joinChannel 方法前调用该方法。
是否开启远端用户语音立体声:
启用视频模块。
该方法可以在加入频道前或者通话中调用。
成功调用该方法后,远端会触发 userEnableVideo(true)
回调。
若想关闭视频模式,请调用 disableVideo 方法。
是否打开与 Agora Web SDK 的互通:
获取音乐文件的播放进度。
获取音乐文件的时长。
获取音乐文件的本地播放音量。
该方法获取混音的音乐文件本地播放音量,方便排查音量相关问题。
调节音乐文件远端播放音量。
该方法调节混音音乐文件在远端的播放音量大小。
获取当前音频播放设备的静音状态。
true
:当前音频播放设备静音false
:当前音频播放设备不静音获取音频播放设备列表。
音频播放设备的 Array
获取音频播放设备的音量
播放设备音量(分贝)。取值范围 [0,255]
获取当前音频录制设备的静音状态。
true
:当前音频录制设备静音false
:当前音频录制设备不静音获取音频录制设备
音频录制设备的 Array
获取录制设备的音量。
录音设备音量(分贝)。取值范围 [0,255]
获取通话 ID。
客户端在每次 joinChannel 后会生成一个对应的 CallId
,标识该客户端的此次通话。
有些方法如 rate, complain 需要在通话结束后调用,向 SDK 提交反馈,这些方法必须指定 CallId
参数。
使用这些反馈方法,需要在通话过程中调用 getCallId
方法获取 CallId
,在通话结束后在反馈方法中作为参数传入。
通话 ID
获取当前网络连接状态。
connect 网络连接状态
获取当前的音频播放设备。
音频播放设备对象
获取当前的音频录制设备。
音频录制设备对象
获取当前的视频设备。
视频设备对象
获取播放音效文件音量。
获取指定错误码的详细错误信息。
错误码
errorCode 描述
获取播放设备信息。
设备 ID
设备名称
获取录制设备信息。
设备 ID
设备名
获取屏幕信息。
该方法获取所有的系统(macOS 或 Windows)屏幕 ID,以及相关信息。你可以使用获取到的屏幕 ID 进行屏幕共享。
系统屏幕 ID 和相关信息列表。Windows 和 macOS 系统中返回的屏幕 ID(displayId)不同。 你无需关注返回对象的具体内容,直接使用它进行屏幕共享即可。
获取系统窗口信息。
该方法获取所有系统(macOS 或 Windows)窗口 ID,以及相关信息。你可以使用获取到的窗口 ID 进行屏幕共享。
系统窗口 ID 和相关信息列表
通过 UID 获取用户信息。
远端用户加入频道后, SDK 会获取到该远端用户的 UID 和 User Account,然后缓存一个包含了远端用户 UID 和 User Account 的 Mapping 表,
并在本地触发 userInfoUpdated
回调。你收到这个回调后,可以调用该方法,通过传入 UID 获取包含了指定用户 User Account 的 UserInfo
对象。
用户 UID
errCode
方法调用失败,返回错误码userInfo
方法调用成功,返回包含了指定用户 User Account 的 UserInfo
对象通过 User Account 获取用户信息。
远端用户加入频道后,SDK 会获取到该远端用户的 UID 和 User Account,然后缓存一个包含了远端用户 UID 和 User Account 的 Mapping 表,
并在本地触发 userInfoUpdated
回调。你收到这个回调后,可以调用该方法,通过传入 User Account 获取包含了指定用户 UID 的 UserInfo
对象。
用户 User Account
errCode
方法调用失败,返回错误码userInfo
方法调用成功,获取包含了指定用户 UID 的 UserInfo
对象获取当前 SDK 的版本和 Build 信息。
当前 SDK 的版本
初始化渲染器对象。
存储渲染器 Map 的关键标识,如 uid
、videosource
或 local
渲染视频的 Dom
初始化一个 AgoraRtcEngine
实例。
Agora 为 App 开发者签发的 App ID,每个项目都应该有一个独一无二的 App ID
服务器的访问区域。该功能为高级设置,适用于有访问安全限制的场景。支持的区域详见 AREA_CODE 指定访问区域后,Agora SDK 会连接指定区域内的 Agora 服务器。注解:仅支持指定单个访问区域。
101
: App ID 无效,请检查你的 App ID加入频道。
该方法让用户加入通话频道,在同一个频道内的用户可以互相通话,多个用户加入同一个频道,可以群聊。使用不同 App ID 的 App 是不能互通的。如果已在通话中,用户必须调用 leaveChannel 退出当前通话,才能进入下一个频道。
成功调用该方加入频道后,本地会触发 joinedChannel
回调;通信场景下的用户和直播场景下的主播加入频道后,远端会触发 userJoined
回调。
在网络状况不理想的情况下,客户端可能会与 Agora 的服务器失去连接;SDK 会自动尝试重连,重连成功后,本地会触发 rejoinedChannel
回调。
在 App 服务器端生成的用于鉴权的 Token:
(必填)标识通话频道的字符,长度在 64 个字节以内的字符串。以下为支持的字符集范围(共 89 个字符):
(非必选项) 开发者需加入的任何附加信息。一般可设置为空字符串,或频道相关信息。该信息不会传递给频道内的其他用户
用户 ID,32 位无符号整数。
2
,3
,5
使用 User Account 加入频道。
该方法允许本地用户使用 User Account 加入频道。成功加入频道后,会触发以下回调:
localUserRegistered
和 userInfoUpdated
userJoined
和 userInfoUpdated
回调在 App 服务器端生成的用于鉴权的 Token:
标识频道的频道名,最大不超过 64 字节。以下为支持的字符集范围(共 89 个字符):
用户 User Account。该参数为必须,最大不超过 255 字节,不可为 NULL。请确保加入频道的 User Account 的唯一性。
2
,3
,5
离开频道。
离开频道,即机挂断或退出通话。
该方法会把回话相关的所有资源都释放掉。该方法是异步操作,调用返回时并没有真正退出频道。
真正退出频道后,本地会触发 leaveChannel
回调;通信场景下的用户和直播场景下的主播离开频道后,远端会触发 removeStream
回调。
停止/恢复接收所有音频流。
停止/恢复接收所有视频流。
停止/恢复发送本地音频流。
成功调用该方法后,远端会触发 userMuteAudio
回调。
停止/恢复发送本地视频流。
成功调用该方法后,远端会触发 userMuteVideo
回调。
true
:停止发送本地视频流false
:发动本地视频流(默认)停止/恢复接收指定音频流。
如果之前有调用过 muteAllRemoteAudioStreams(true) 停止订阅所有远端
音频,在调用 muteRemoteAudioStreams
之前请确保你已调用 muteAllRemoteAudioStreams(false)。
muteAllRemoteAudioStreams
是全局控制,muteRemoteAudioStream
是精细控制。
指定的用户 ID
true
:停止接收指定用户的音频流false
:继续接收指定用户的音频流停止/恢复接收指定视频流。
如果之前有调用过 muteAllRemoteVideoStreams(true) 停止订阅所有远端
视频,在调用 muteRemoteVideoStreams
之前请确保你已调用 muteAllRemoteVideoStreams(false)。
muteAllRemoteVideoStreams
是全局控制,muteRemoteVideoStream
是精细控制。
指定用户的 ID
API 方法已执行回调。
SDK 执行的 API
当该方法调用失败时 SDK 返回的错误码
发生警告回调。
警告码
详细的警告信息
发生错误回调。
错误码
详细的错误信息
成功加入频道。
频道名
用户 ID
从调用 joinChannel 开始到发生此事件过去的时间(毫秒)
重新加入频道回调。
有时候由于网络原因,客户端可能会和服务器失去连接,SDK 会进行自动重连,自动重连成功后触发此回调方法。
频道名
用户 ID
从调用 joinChannel 开始到发生此事件过去的时间(毫秒)
提示频道内谁在说话以及说话者音量的回调。
该回调提示频道内瞬时音量较高的几个用户的用户 ID 及他们的音量。默认禁用。可以通过 enableAudioVolumeIndication 方法开启;开启后,无论频道内是否有人说话,都会按方法中设置的时间间隔返回提示音量。
音量较高的说话者的信息,包含:
uid
:用户 IDvolume
:本地用户:该用户的说话音量;远端用户:说话者各自混音后的音量vad
:本地用户:报告本地用户人声状态;远端用户:0音量较高的用户人数:
混音后总音量(分贝)。取值范围 [0,255]:
用户离开频道。
调用 leaveChannel 离开频道后,SDK 触发该回调。
通话相关统计信息。
通话信息详情
通话中本地视频流的统计信息回调。
本地视频流统计信息
通话中本地音频流的统计信息回调。
本地音频流统计信息
通话中远端视频流的统计信息回调。
远端视频流统计信息
通话中远端音频流的统计信息回调。
远端音频流统计信息
远端视频流传输的统计信息
远端音频流传输的统计信息
音频设备状态已改变回调。
设备 ID
设备类型,详见 MediaDeviceType
设备状态
1
:设备正在使用2
:设备被禁用4
:没有此设备8
:设备被拔出本地用户的音乐文件播放状态改变。
状态码
710
:音乐文件正常播放711
:音乐文件暂停播放713
:音乐文件停止播放714
:音乐文件报错。SDK 会在 err
中返回具体的报错原因错误码
701
:音乐文件打开出错702
:音乐文件打开太频繁703
:音乐文件播放异常中断远端音乐文件播放已开始回调。
当远端有用户调用 startAudioMixing 播放本地音乐文件,SDK 会触发该回调。
远端音乐文件播放已结束回调。
本地音效文件播放已结束回调。
当播放音效结束后,会触发该回调。
指定音效的 ID。每个音效均有唯一的 ID。
该回调没有实现。
视频设备变化回调。
该回调提示系统视频设备状态发生改变,比如被拔出或移除。如果设备已使用外接摄像头采集,外接摄像头被拔开后,视频会中断。
设备 ID
设备类型,详见 MediaDeviceType
设备状态
1
:设备正在使用2
:设备被禁用4
:没有此设备8
:设备被拔出通话中每个用户的网络上下行 last mile 质量报告回调。
该回调描述每个用户在通话中的 last mile 网络状态,其中 last mile 是指设备到 Agora 边缘服务器的网络状态。
该回调每 2 秒触发一次。如果远端有多个用户,该回调每 2 秒会被触发多次。
用户 ID。表示该回调报告的是持有该 ID 的用户的网络质量。 当 uid 为 0 时,返回的是本地用户的网络质量
该用户的上行网络质量,基于上行发送码率、上行丢包率、平均往返时延和网络 抖动计算。
该用户的下行网络质量,基于下行网络的丢包率、平均往返延时和网络抖动计算。
通话前网络上下行 last mile 质量报告回调。
该回调描述本地用户在加入频道前的 last mile 网络探测的结果,其中 last mile 是指设备到 Agora 边缘服务器的网络状态。
在调用 enableLastmileTest 之后,该回调函数每 2 秒触发一次。如果远端有多个用户/主播,该回调每 2 秒会被触发多次。
网络上下行质量,基于上下行网络的丢包率和抖动计算,探测结果主要反映上行网络的状态。
通话前网络质量探测报告回调。
在调用 startLastmileProbeTest 之后,SDK 会在约 30 秒内返回该回调。
上下行 Last mile 质量探测结果。
已显示本地视频首帧回调。
本地视频首帧显示在本地视图上时,SDK 会触发此回调。
本地渲染视频的宽 (px)
本地渲染视频的高 (px)
从本地调用 joinChannel 到发生此事件过去的时间(毫秒)
用户 ID,指定是哪个用户的视频流
从本地调用 joinChannel 到发生此事件过去的时间(毫秒)
本地或远端视频大小和旋转信息发生改变回调。
图像尺寸和旋转信息发生变化的用户的用户 ID(本地用户的 uid
为 0
)
视频流的宽度(px)
视频流的高度(px)
旋转信息 [0, 360]
用户 ID,指定是哪个用户的视频流
视频流宽(px)
视频流高(px)
从本地调用 joinChannel 到发生此事件过去的时间(毫秒)
远端用户(通信场景)/主播(直播场景)加入当前频道回调。
该回调在如下情况下会被触发:
新加入频道的远端用户/主播 ID
从本地调用 joinChannel 到发生此事件过去的时间(毫秒)
远端用户离开当前频道回调。
用户离开频道有两个原因:
离线用户或主播的用户 ID。
离线原因
0
:用户主动离开。1
:因过长时间收不到对方数据包,超时掉线。注意:由于 SDK 使用的是不可靠通道,也有可能对方主动离开本方没收到对方离开消息而误判为超时掉线。2
:用户身份从主播切换为观众。远端用户(通信场景)/主播(直播场景)离开当前频道回调。
用户离开频道有两个原因,即正常离开和超时掉线:
主播 ID
离线原因
远端用户 ID
该用户是否暂停发送音频流
true
:该用户已暂停发送音频流false
:该用户已重新发送音频流远端用户暂停/重新发送视频流回调。
该回调是由远端用户调用 muteLocalVideoStream 方法关闭或开启音频发送触发的。
远端用户 ID
该用户是否暂停发送视频流
true
:该用户已暂停发送视频流false
:该用户已重新发送视频流用户 ID
该用户是否开启或关闭视频模块:
true
:该用户已启用视频模块。启用后,该用户可以进行视频通话或直播。false
:该用户已关闭视频模块。关闭后,该用户只能进行语音通话或直播,不能显示、发送自己的视频,也不能接收、显示别人的视频。用户 ID
该用户是否开启或关闭本地视频采集:
true
:该用户已启用本地视频采集。启用后,其他用户可以接收到该用户的视频流。false
:该用户已关闭视频采集。关闭后,该用户仍然可以接收其他用户的视频流,但其他用户接收不到该用户的视频流。网络连接中断,且 SDK 无法在 10 秒内连接服务器回调。
接收到对方数据流消息的回调。
该回调表示本地用户收到了远端用户调用 sendStreamMessage 方法发送的流消息。
用户 ID
数据流 ID
接收到的流消息
流消息数据长度
接收对方数据流小时发生错误回调。
该回调表示本地用户未收到远端用户调用 sendStreamMessage 方法发送的流消息。
用户 ID
数据流 ID
丢失的消息数量
数据流中断后,后面缓存的消息数量
媒体引擎成功启动的回调。
Token 已过期回调。
调用 joinChannel 时如果指定了 Token,由于 Token 具有一定的时效,在通话过程中 SDK 可能由于网络原因和服务器失去连接,重连时可能需要新的 Token。
该回调通知 App 需要生成新的 Token,并需调用 renewToken 为 SDK 指定新的 Token。
已发送本地音频首帧回调。
从本地用户调用 joinChannel 方法直至该回调被触发的延迟(毫秒)。
发送音频帧的远端用户的 ID
从调用 joinChannel 方法直至该回调被触发的延迟(毫秒)
用户 ID,指定是哪个用户的音频流
从本地用户调用 joinChannel 方法加入频道直至该回调触发的延迟,单位为毫秒
检测到活跃用户回调。
如果用户开启了 enableAudioVolumeIndication 功能,则当音量检测模块监测到频道内有新的活跃用户说话时,会通过本回调返回该用户的 uid
。
当前时间段内声音最大的用户的 uid
(本地用户 uid
为 0
)
用户角色已切换回调。
回调由本地用户在加入频道后调用 setClientRole 改变用户角色触发的。
切换前的角色
切换后的角色
回放、录音设备、或 App 的音量发生改变。
设备类型
当前音量(分贝)。取值范围 [0, 255]
音频设备是否为静音状态
true
:音频设备已静音false
:音频设备未被静音屏幕共享对象成功加入频道回调。
该对象的用户 ID
屏幕共享对象 Token 已过期回调。
屏幕共享对象离开频道回调。
远端用户视频流状态发生改变回调。
发生视频流状态改变的远端用户的用户 ID。
远端视频流状态
远端视频流状态改变的具体原因
从本地用户调用 joinChannel 方法到发生本事件经历的时间,单位为 ms。
相机对焦区域已改变回调。
发生改变的对焦区域相对于左上角的 x 坐标。
发生改变的对焦区域相对于左上角的 y 坐标。
发生改变的对焦区域的宽度 (px)。
发生改变的对焦区域的高度 (px)。
摄像头曝光区域已改变回调。
发生改变的曝光区域相对于左上角的 x 坐标。
发生改变的曝光区域相对于左上角的 y 坐标。
发生改变的曝光区域的宽度 (px)。
发生改变的曝光区域的高度 (px)。
Token 服务即将过期回调。
在调用 joinChannel 时如果指定了 Token,由于 Token 具有一定的时效,在通话过程中如果 Token 即将失效,SDK 会提前 30 秒触发该回调,提醒 App 更新 Token。当收到该回调时,用户需要重新在服务端生成新的 Token,然后调用 renewToken 将新生成的 Token 传给 SDK。
即将服务失效的 Token
新增的推流地址。
详细的错误信息
0
:推流成功1
:推流失败2
:参数错误。如果你在调用 addPublishStreamUrl 前没有调用 setLiveTranscoding 配置 LiveTranscoding
,SDK 会返回该错误10
:推流超时未成功19
:推流地址已经在推流130
:推流已加密不能推流停止旁路推流的结果回调。
该回调返回 removePublishStreamUrl 方法的调用结果。用于通知主播是否停止推流成功。
主播停止推流的 RTMP 地址。
RTMP 推流状态发生改变回调。
该回调返回本地用户调用 addPublishStreamUrl 或 removePublishStreamUrl 方法的结果。
RTMP 推流状态发生改变时,SDK 会触发该回调,并在回调中明确状态发生改变的 URL 地址及 当前推流状态。该回调方便推流用户了解当前的推流状态;推流出错时,你可以通过返回的错误码 了解出错的原因,方便排查问题。
推流状态发生改变的 URL 地址
推流状态:
0
: 推流未开始或已结束。成功调用 removePublishStreamUrl 后会返回该状态。1
: 正在连接 Agora 推流服务器和 RTMP 服务器。调用 addPublishStreamUrl
后会返回该状态。2
: 推流正在进行。成功推流后,会返回该状态。3
: 正在恢复推流。当 CDN 出现异常,或推流短暂中断时,SDK 会自动尝试恢复推流,并返回该状态。2
。4
。如果觉得 60 秒太长,也可以主动调用
addPublishStreamUrl,再调用 removePublishStreamUrl 尝试重连。4
: 推流失败。失败后,你可以通过返回的错误码排查错误原因,也可以再次调用
addPublishStreamUrl 重新尝试推流。推流错误码:
0
: 推流成功。1
: 参数无效。请检查输入参数是否正确。2
: 推流已加密,不能推流。3
: 推流超时未成功。可调用 addPublishStreamUrl 重新推流。4
: 推流服务器出现错误。请调用 addPublishStreamUrl 重新推流。5
: RTMP 服务器出现错误。6
: 推流请求过于频繁。7
: 单个主播的推流地址数目达到上线 10。请删掉一些不用的推流地址再增加推流地址。8
: 主播操作不属于自己的流。例如更新其他主播的流参数、停止其他主播的流。请检查 App 逻辑。9
: 服务器未找到这个流。10
: 推流地址格式有错误。请检查推流地址格式是否正确。旁路推流设置被更新回调。该
回调用于通知主播 CDN 转码已成功更新。
setLiveTranscoding 方法中的转码合图参数(LiveTranscoding
)更新时,transcodingUpdated
回调会被触发并向主播报告更新信息。
导入在线媒体流状态回调。
该回调表明向直播导入的外部视频流的状态。
导入进直播的外部视频源的 URL 地址。
用户 ID。
导入的外部视频源状态
0
:外部视频流导入成功1
:外部视频流已存在2
:外部视频流导入未经授权3
:导入外部视频流超时4
:外部视频流导入失败5
:外部视频流停止导入失败6
:未找到要停止导入的外部视频流7
:要停止导入的外部视频流未经授权8
:停止导入外部视频流超时9
:停止导入外部视频流失败10
:导入的外部视频流被中断本地发布流已回退为音频流回调。
如果你调用了设置本地推流回退选项 setLocalPublishFallbackOption 并将 option
设置为 2
时,当上行网络环境不理想、本地发布的媒体流回退为音频流时,或当上行网络改善、媒体流恢复为音视频流时,会触发该回调。
如果本地推流已回退为音频流,远端的 App 上会收到 userMuteVideo
的回调事件。
本地推流已回退或恢复:
true
:由于网络环境不理想,本地发布的媒体流已回退为音频流false
:由于网络环境改善,发布的音频流已恢复为音视频流远端订阅流已回退为音频流回调。
如果你调用了设置远端订阅流回退选项 setRemoteSubscribeFallbackOption 并将 option
设置为 2
时, 当下行网络环境不理想、仅接收远端音频流时,或当下行网络改善、恢复订阅音视频流时,会触发该回调。
远端订阅流因弱网环境不能同时满足音视频而回退为小流时,你可以使用 remoteVideoStats
回调来监控远端视频大小流的切换。
远端用户的 ID
远端订阅流已回退或恢复:
true
:由于网络环境不理想,远端订阅流已回退为音频流false
:由于网络环境改善,订阅的音频流已恢复为音视频流是否开启麦克风:
true
:麦克风已启用false
:麦克风已禁用网络连接状态已改变回调。
该回调在网络连接状态发生改变的时候触发,并告知用户当前的网络连接状态,和引起网络状态改变的原因。
当前的网络连接状态
引起当前网络连接状态发生改变的原因
本地用户成功注册 User Account 回调。
本地用户成功调用 registerLocalUserAccount 方法注册用户 User Account,或调用 joinChannelWithUserAccount 加入频道后,SDK 会触发该回调,并告知本地用户的 UID 和 User Account。包含如下参数:
本地用户的 UID
本地用户的 User account
远端用户信息已更新回调。
远端用户加入频道后, SDK 会获取到该远端用户的 UID 和 User Account,然后缓存一个包含了远端用户 UID 和 User Account 的 Mapping 表,并在本地触发该回调。
远端用户的 ID
标识用户信息的 UserInfo
对象,包含用户 UID 和 User account
本地视频状态发生改变回调。
本地视频的状态发生改变时,SDK 会触发该回调返回当前的本地视频状态;当状态码为 3
时,
你可以在错误码查看返回的错误信息。 该接口在本地视频出现故障时,方便你了解当前视频的状态
以及出现故障的原因。
当前的本地视频状态码:
0
:本地视频默认初始状态1
:本地视频采集设备启动成功。调用 startScreenCaptureByWindow 方法共享窗口且共享窗口为最大化时,也会报告该状态。2
:本地视频首帧编码成功3
:本地视频启动失败本地视频错误码:
0
:本地视频状态正常1
:出错原因不明确2
:没有权限启动本地视频采集设备3
:本地视频采集设备正在使用中4
:本地视频采集失败,建议检查采集设备是否正常工作5
:本地视频编码失败11
:调用 startScreenCaptureByWindow 方法共享窗口时,共享窗口处于最小化的状态。12
:该错误码表示通过窗口 ID 共享的窗口已关闭,或通过窗口 ID 共享的全屏窗口已退出全屏。
退出全屏模式后,远端用户将无法看到共享的窗口。为避免远端用户看到黑屏,Agora 建议你立即结束本次共享。
报告该错误码的常见场景:本地音频状态发生改变回调。
本地音频的状态发生改变时(包括本地麦克风录制状态和音频编码状态),SDK 会触发该回调报告 当前的本地音频状态。在本地音频出现故障时,该回调可以帮助你了解当前音频的状态以及出现故障 的原因,方便你排查问题。
当前的本地音频状态:
0
本地音频默认初始状态。1
本地音频录制设备启动成功。2
本地音频首帧编码成功。3
本地音频启动失败。本地音频错误码:
0
本地音频状态正常。1
本地音频出错原因不明确。2
没有权限启动本地音频录制设备。3
本地音频录制设备已经在使用中。4
本地音频录制失败,建议你检查录制设备是否正常工作。5
本地音频编码失败。远端音频流状态发生改变回调。
远端用户/主播音频状态发生改变时,SDK 会触发该回调向本地用户报告当前的远端音频流状态。
发生音频状态改变的远端用户 ID。
远端音频流状态码
远端音频流状态改变的原因码
从本地用户调用 joinChannel 方法到发生本事件经历的时间, 单位为 ms。
跨频道媒体流转发状态发生改变回调。
当跨频道媒体流转发状态发生改变时,SDK 会触发该回调,并报告当前的转发状态以及相关的 错误信息。
跨频道媒体流转发状态码
跨频道媒体流转发出错的错误码
跨频道媒体流转发事件回调。
该回调报告跨频道媒体流转发过程中发生的事件。
跨频道媒体流转发事件码
媒体附属信息接收成功回调。
发送方调用 sendMetadata 方法发送媒体附属信息后,当接收方接收到该媒体附属信息 时,SDK 触发本回调向接收方报告媒体附属信息。
媒体附属信息。
媒体附属信息发送成功回调。
发送方调用 sendMetadata 方法成功发送媒体附属信息后,SDK 触发本回调向发送方 报告媒体附属信息。
媒体附属信息。
已发布本地音频首帧回调。
从调用 joinChannel 方法到触发该回调的时间间隔(毫秒)。
已发布本地视频首帧回调。
从调用 joinChannel 方法到触发该回调的时间间隔(毫秒)。
RTMP/RTMPS 推流事件回调。
RTMP/RTMPS 推流 URL。
RTMP/RTMPS 推流事件码。
音频发布状态改变回调。
频道名。
之前的发布状态。
当前的发布状态。
两次状态变化时间间隔(毫秒)。
视频发布状态改变回调。
AgoraRtcEngine