函数 | |
delegate void | OnJoinChannelSuccessHandler (string channelName, uint uid, int elapsed) |
delegate void | OnLeaveChannelHandler (RtcStats stats) |
delegate void | OnReJoinChannelSuccessHandler (string channelName, uint uid, int elapsed) |
delegate void | OnConnectionLostHandler () |
delegate void | OnConnectionInterruptedHandler () |
delegate void | OnRequestTokenHandler () |
delegate void | OnUserJoinedHandler (uint uid, int elapsed) |
delegate void | OnUserOfflineHandler (uint uid, USER_OFFLINE_REASON reason) |
delegate void | OnVolumeIndicationHandler (AudioVolumeInfo[] speakers, int speakerNumber, int totalVolume) |
delegate void | OnLocalVoicePitchInHzHandler (int pitchInHz) |
delegate void | OnUserMutedAudioHandler (uint uid, bool muted) |
delegate void | OnSDKWarningHandler (int warn, string msg) |
delegate void | OnSDKErrorHandler (int error, string msg) |
delegate void | OnRtcStatsHandler (RtcStats stats) |
delegate void | OnAudioMixingFinishedHandler () |
delegate void | OnAudioRouteChangedHandler (AUDIO_ROUTE route) |
delegate void | OnFirstRemoteVideoDecodedHandler (uint uid, int width, int height, int elapsed) |
delegate void | OnVideoSizeChangedHandler (uint uid, int width, int height, int rotation) |
delegate void | OnClientRoleChangedHandler (CLIENT_ROLE_TYPE oldRole, CLIENT_ROLE_TYPE newRole) |
delegate void | OnUserMuteVideoHandler (uint uid, bool muted) |
delegate void | OnMicrophoneEnabledHandler (bool isEnabled) |
delegate void | OnApiExecutedHandler (int err, string api, string result) |
delegate void | OnLastmileQualityHandler (int quality) |
delegate void | OnFirstLocalAudioFrameHandler (int elapsed) |
delegate void | OnFirstRemoteAudioFrameHandler (uint userId, int elapsed) |
delegate void | OnAudioQualityHandler (uint userId, int quality, ushort delay, ushort lost) |
delegate void | OnStreamUnpublishedHandler (string url) |
delegate void | OnStreamPublishedHandler (string url, int error) |
delegate void | OnStreamMessageErrorHandler (uint userId, int streamId, int code, int missed, int cached) |
delegate void | OnStreamMessageHandler (uint userId, int streamId, string data, int length) |
delegate void | OnConnectionBannedHandler () |
delegate void | OnConnectionStateChangedHandler (CONNECTION_STATE_TYPE state, CONNECTION_CHANGED_REASON_TYPE reason) |
delegate void | OnTokenPrivilegeWillExpireHandler (string token) |
delegate void | OnActiveSpeakerHandler (uint uid) |
delegate void | OnVideoStoppedHandler () |
delegate void | OnFirstLocalVideoFrameHandler (int width, int height, int elapsed) |
delegate void | OnFirstRemoteVideoFrameHandler (uint uid, int width, int height, int elapsed) |
delegate void | OnUserEnableVideoHandler (uint uid, bool enabled) |
delegate void | OnUserEnableLocalVideoHandler (uint uid, bool enabled) |
delegate void | OnRemoteVideoStateChangedHandler (uint uid, REMOTE_VIDEO_STATE state, REMOTE_VIDEO_STATE_REASON reason, int elapsed) |
delegate void | OnLocalPublishFallbackToAudioOnlyHandler (bool isFallbackOrRecover) |
delegate void | OnRemoteSubscribeFallbackToAudioOnlyHandler (uint uid, bool isFallbackOrRecover) |
delegate void | OnNetworkQualityHandler (uint uid, int txQuality, int rxQuality) |
delegate void | OnLocalVideoStatsHandler (LocalVideoStats localVideoStats) |
delegate void | OnRemoteVideoStatsHandler (RemoteVideoStats remoteVideoStats) |
delegate void | OnRemoteAudioStatsHandler (RemoteAudioStats remoteAudioStats) |
delegate void | OnAudioDeviceStateChangedHandler (string deviceId, int deviceType, int deviceState) |
delegate void | OnCameraReadyHandler () |
delegate void | OnCameraFocusAreaChangedHandler (int x, int y, int width, int height) |
delegate void | OnCameraExposureAreaChangedHandler (int x, int y, int width, int height) |
delegate void | OnRemoteAudioMixingBeginHandler () |
delegate void | OnRemoteAudioMixingEndHandler () |
delegate void | OnAudioEffectFinishedHandler (int soundId) |
delegate void | OnVideoDeviceStateChangedHandler (string deviceId, int deviceType, int deviceState) |
delegate void | OnRemoteVideoTransportStatsHandler (uint uid, ushort delay, ushort lost, ushort rxKBitRate) |
delegate void | OnRemoteAudioTransportStatsHandler (uint uid, ushort delay, ushort lost, ushort rxKBitRate) |
delegate void | OnTranscodingUpdatedHandler () |
delegate void | OnAudioDeviceVolumeChangedHandler (MEDIA_DEVICE_TYPE deviceType, int volume, bool muted) |
delegate void | OnMediaEngineStartCallSuccessHandler () |
delegate void | OnMediaEngineLoadSuccessHandler () |
delegate void | OnAudioMixingStateChangedHandler (AUDIO_MIXING_STATE_TYPE state, AUDIO_MIXING_REASON_TYPE reason) |
delegate void | OnFirstRemoteAudioDecodedHandler (uint uid, int elapsed) |
delegate void | OnLocalVideoStateChangedHandler (LOCAL_VIDEO_STREAM_STATE localVideoState, LOCAL_VIDEO_STREAM_ERROR error) |
delegate void | OnRtmpStreamingStateChangedHandler (string url, RTMP_STREAM_PUBLISH_STATE state, RTMP_STREAM_PUBLISH_ERROR errCode) |
delegate void | OnNetworkTypeChangedHandler (NETWORK_TYPE type) |
delegate void | OnLastmileProbeResultHandler (LastmileProbeResult result) |
delegate void | OnLocalUserRegisteredHandler (uint uid, string userAccount) |
delegate void | OnUserInfoUpdatedHandler (uint uid, UserInfo userInfo) |
delegate void | OnLocalAudioStateChangedHandler (LOCAL_AUDIO_STREAM_STATE state, LOCAL_AUDIO_STREAM_ERROR error) |
delegate void | OnRemoteAudioStateChangedHandler (uint uid, REMOTE_AUDIO_STATE state, REMOTE_AUDIO_STATE_REASON reason, int elapsed) |
delegate void | OnLocalAudioStatsHandler (LocalAudioStats localAudioStats) |
delegate void | OnChannelMediaRelayStateChangedHandler (CHANNEL_MEDIA_RELAY_STATE state, CHANNEL_MEDIA_RELAY_ERROR code) |
delegate void | OnChannelMediaRelayEventHandler (CHANNEL_MEDIA_RELAY_EVENT events) |
delegate void | OnFacePositionChangedHandler (int imageWidth, int imageHeight, Rectangle vecRectangle, int vecDistance, int numFaces) |
delegate void | OnRtmpStreamingEventHandler (string url, RTMP_STREAMING_EVENT eventCode) |
delegate void | OnAudioPublishStateChangedHandler (string channel, STREAM_PUBLISH_STATE oldState, STREAM_PUBLISH_STATE newState, int elapseSinceLastState) |
delegate void | OnVideoPublishStateChangedHandler (string channel, STREAM_PUBLISH_STATE oldState, STREAM_PUBLISH_STATE newState, int elapseSinceLastState) |
delegate void | OnAudioSubscribeStateChangedHandler (string channel, uint uid, STREAM_SUBSCRIBE_STATE oldState, STREAM_SUBSCRIBE_STATE newState, int elapseSinceLastState) |
delegate void | OnVideoSubscribeStateChangedHandler (string channel, uint uid, STREAM_SUBSCRIBE_STATE oldState, STREAM_SUBSCRIBE_STATE newState, int elapseSinceLastState) |
delegate void | OnFirstLocalAudioFramePublishedHandler (int elapsed) |
delegate void | OnFirstLocalVideoFramePublishedHandler (int elapsed) |
delegate void | OnUserSuperResolutionEnabledHandler (uint uid, bool enabled, SUPER_RESOLUTION_STATE_REASON reason) |
delegate void | OnVirtualBackgroundSourceEnabledHandler (bool enabled, VIRTUAL_BACKGROUND_SOURCE_STATE_REASON reason) |
delegate void | OnRequestAudioFileInfoHandler (AudioFileInfo info, AUDIO_FILE_INFO_ERROR error) |
delegate void | OnSnapshotTakenHandler (string channel, uint uid, string filePath, int width, int height, int errCode) |
delegate void | OnClientRoleChangeFailedHandler (CLIENT_ROLE_CHANGE_FAILED_REASON reason, CLIENT_ROLE_TYPE currentRole) |
delegate void | OnAudioDeviceTestVolumeIndicationHandler (AudioDeviceTestVolumeType volumeType, int volume) |
delegate void | OnProxyConnectedHandler (string channel, uint uid, PROXY_TYPE proxyType, string localProxyIp, int elapsed) |
delegate void | OnWlAccMessageHandler (WLACC_MESSAGE_REASON reason, WLACC_SUGGEST_ACTION action, string wlAccMsg) |
delegate void | OnWlAccStatsHandler (WlAccStats currentStats, WlAccStats averageStats) |
delegate void | OnScreenCaptureInfoUpdatedHandler (ScreenCaptureInfo info) |
delegate void | ChannelOnWarningHandler (string channelId, int warn, string message) |
delegate void | ChannelOnErrorHandler (string channelId, int err, string message) |
delegate void | ChannelOnJoinChannelSuccessHandler (string channelId, uint uid, int elapsed) |
delegate void | ChannelOnReJoinChannelSuccessHandler (string channelId, uint uid, int elapsed) |
delegate void | ChannelOnLeaveChannelHandler (string channelId, RtcStats rtcStats) |
delegate void | ChannelOnClientRoleChangedHandler (string channelId, CLIENT_ROLE_TYPE oldRole, CLIENT_ROLE_TYPE newRole) |
delegate void | ChannelOnUserJoinedHandler (string channelId, uint uid, int elapsed) |
delegate void | ChannelOnUserOffLineHandler (string channelId, uint uid, USER_OFFLINE_REASON reason) |
delegate void | ChannelOnConnectionLostHandler (string channelId) |
delegate void | ChannelOnRequestTokenHandler (string channelId) |
delegate void | ChannelOnTokenPrivilegeWillExpireHandler (string channelId, string token) |
delegate void | ChannelOnRtcStatsHandler (string channelId, RtcStats rtcStats) |
delegate void | ChannelOnNetworkQualityHandler (string channelId, uint uid, int txQuality, int rxQuality) |
delegate void | ChannelOnRemoteVideoStatsHandler (string channelId, RemoteVideoStats remoteVideoStats) |
delegate void | ChannelOnRemoteAudioStatsHandler (string channelId, RemoteAudioStats remoteAudioStats) |
delegate void | ChannelOnRemoteAudioStateChangedHandler (string channelId, uint uid, REMOTE_AUDIO_STATE state, REMOTE_AUDIO_STATE_REASON reason, int elapsed) |
delegate void | ChannelOnActiveSpeakerHandler (string channelId, uint uid) |
delegate void | ChannelOnVideoSizeChangedHandler (string channelId, uint uid, int width, int height, int rotation) |
delegate void | ChannelOnRemoteVideoStateChangedHandler (string channelId, uint uid, REMOTE_VIDEO_STATE state, REMOTE_VIDEO_STATE_REASON reason, int elapsed) |
delegate void | ChannelOnStreamMessageHandler (string channelId, uint uid, int streamId, string data, int length) |
delegate void | ChannelOnStreamMessageErrorHandler (string channelId, uint uid, int streamId, int code, int missed, int cached) |
delegate void | ChannelOnMediaRelayStateChangedHandler (string channelId, CHANNEL_MEDIA_RELAY_STATE state, CHANNEL_MEDIA_RELAY_ERROR code) |
delegate void | ChannelOnMediaRelayEventHandler (string channelId, CHANNEL_MEDIA_RELAY_EVENT events) |
delegate void | ChannelOnRtmpStreamingStateChangedHandler (string channelId, string url, RTMP_STREAM_PUBLISH_STATE state, RTMP_STREAM_PUBLISH_ERROR errCode) |
delegate void | ChannelOnTranscodingUpdatedHandler (string channelId) |
delegate void | ChannelOnRemoteSubscribeFallbackToAudioOnlyHandler (string channelId, uint uid, bool isFallbackOrRecover) |
delegate void | ChannelOnConnectionStateChangedHandler (string channelId, CONNECTION_STATE_TYPE state, CONNECTION_CHANGED_REASON_TYPE reason) |
delegate void | ChannelOnLocalPublishFallbackToAudioOnlyHandler (string channelId, bool isFallbackOrRecover) |
delegate void | ChannelOnRtmpStreamingEventHandler (string channelId, string url, RTMP_STREAMING_EVENT eventCode) |
delegate void | ChannelOnAudioPublishStateChangedHandler (string channelId, STREAM_PUBLISH_STATE oldState, STREAM_PUBLISH_STATE newState, int elapseSinceLastState) |
delegate void | ChannelOnVideoPublishStateChangedHandler (string channelId, STREAM_PUBLISH_STATE oldState, STREAM_PUBLISH_STATE newState, int elapseSinceLastState) |
delegate void | ChannelOnAudioSubscribeStateChangedHandler (string channelId, uint uid, STREAM_SUBSCRIBE_STATE oldState, STREAM_SUBSCRIBE_STATE newState, int elapseSinceLastState) |
delegate void | ChannelOnVideoSubscribeStateChangedHandler (string channelId, uint uid, STREAM_SUBSCRIBE_STATE oldState, STREAM_SUBSCRIBE_STATE newState, int elapseSinceLastState) |
delegate void | ChannelOnUserSuperResolutionEnabledHandler (string channelId, uint uid, bool enabled, SUPER_RESOLUTION_STATE_REASON reason) |
delegate void | ChannelOnClientRoleChangeFailedHandler (string channelId, CLIENT_ROLE_CHANGE_FAILED_REASON reason, CLIENT_ROLE_TYPE currentRole) |
delegate void | ChannelOnFirstRemoteVideoFrameHandler (string channelId, uint uid, int width, int height, int elapsed) |
delegate void | ChannelOnChannelProxyConnectedHandler (string channelId, uint uid, PROXY_TYPE proxyType, string localProxyIp, int elapsed) |
|
strong |
|
strong |
错误码。更多错误码描述见 Error Code。
枚举值 | |
---|---|
ERROR_NOT_INIT_ENGINE | -7: SDK 尚未初始化,就调用其 API。请确认在调用 API 之前已创建 IRtcEngine 对象并完成初始化。 |
ERROR_OK | 0: 没有错误。 |
ERROR_INVALID_ARGUMENT | -2: API 调用了无效的参数。例如指定的频道名含有非法字符。 |
ERROR_NO_DEVICE_PLUGIN | -100: 未插入设备。 |
|
strong |
|
strong |
远端视频流状态。
|
strong |
音乐文件播放状态改变的原因。在 OnAudioMixingStateChangedHandler 回调中报告。
|
strong |
|
strong |
|
strong |
频道场景。
枚举值 | |
---|---|
CHANNEL_PROFILE_COMMUNICATION | 0: 通信场景 (默认)。该场景下,频道内所有用户都可以发布和接收音、视频流。适用于语音通话、视频群聊等应用场景。 |
CHANNEL_PROFILE_LIVE_BROADCASTING | 1: 直播场景。该场景有主播和观众两种用户角色,可以通过 SetClientRole 设置。主播可以发布和接收音视频流,观众直接接收流。适用于语聊房、视频直播、互动大班课等应用场景。 |
CHANNEL_PROFILE_GAME | 2: 游戏语音场景。频道内任何用户可自由发言。该模式下默认使用低功耗低码率的编解码器。 @note 声网不推荐使用该场景。 |
|
strong |
|
strong |
录音音质。 在 StartAudioRecording 中设置。
|
strong |
当前的音频路由。在 OnAudioRouteChangedHandler 回调中报告。
|
strong |
网络连接状态。
枚举值 | |
---|---|
CONNECTION_STATE_DISCONNECTED | 1: 网络连接断开。
|
CONNECTION_STATE_CONNECTING | 2: 建立网络连接中。
|
CONNECTION_STATE_CONNECTED | 3: 网络已连接。 该状态表示用户已经加入频道,可以在频道内发布或订阅媒体流。如果因网络断开或切换而导致 SDK 与频道的连接中断,SDK 会自动重连,此时应用程序会收到:
|
CONNECTION_STATE_RECONNECTING | 4: 重新建立网络连接中。该状态表示 SDK 之前曾加入过频道,但因网络等原因连接中断了,此时 SDK 会自动尝试重新接入频道。
|
CONNECTION_STATE_FAILED | 5: 网络连接失败。 该状态表示 SDK 已不再尝试重新加入频道,用户必须要调用 LeaveChannel 离开频道。如果用户还想重新加入频道,则需要再次调用 JoinChannelByKey。 如果 SDK 因服务器端使用 RESTful API 禁止加入频道,则应用程序会收到 OnConnectionBannedHandler 回调(已废弃)和 OnConnectionStateChangedHandler 回调。 |
|
strong |
引起网络连接状态发生改变的原因。
枚举值 | |
---|---|
CONNECTION_CHANGED_CONNECTING | 0: 建立网络连接中。 |
CONNECTION_CHANGED_JOIN_SUCCESS | 1: 成功加入频道。 |
CONNECTION_CHANGED_INTERRUPTED | 2: 网络连接中断。 |
CONNECTION_CHANGED_BANNED_BY_SERVER | 3: 网络连接被服务器禁止。可能服务端踢人场景时会报这个错。 |
CONNECTION_CHANGED_JOIN_FAILED | 4: 加入频道失败。SDK 在尝试加入频道 20 分钟后还是没能加入频道,会返回该状态,并停止尝试重连。 |
CONNECTION_CHANGED_LEAVE_CHANNEL | 5: 离开频道。 |
CONNECTION_CHANGED_INVALID_APP_ID | 6: 不是有效的 APP ID。请更换有效的 APP ID 重新加入频道。 |
CONNECTION_CHANGED_INVALID_CHANNEL_NAME | 7: 不是有效的频道名。请更换有效的频道名重新加入频道。 |
CONNECTION_CHANGED_INVALID_TOKEN | 8: 生成的 Token 无效。一般有以下原因:
|
CONNECTION_CHANGED_TOKEN_EXPIRED | 9: 当前使用的 Token 过期,不再有效,需要重新在你的服务端申请生成 Token。 |
CONNECTION_CHANGED_REJECTED_BY_SERVER | 10: 此用户被服务器禁止。一般有以下原因:
|
CONNECTION_CHANGED_SETTING_PROXY_SERVER | 11: 由于设置了代理服务器,SDK 尝试重连。 |
CONNECTION_CHANGED_RENEW_TOKEN | 12: 更新 Token 引起网络连接状态改变。 |
CONNECTION_CHANGED_CLIENT_IP_ADDRESS_CHANGED | 13: 客户端 IP 地址变更,可能是由于网络类型,或网络运营商的 IP 或端口发生改变引起。 |
CONNECTION_CHANGED_KEEP_ALIVE_TIMEOUT | 14: SDK 和服务器连接保活超时,进入自动重连状态 |
CONNECTION_CHANGED_SAME_UID_LOGIN | 19:使用相同的 UID 从不同的设备加入同一频道。
|
CONNECTION_CHANGED_TOO_MANY_BROADCASTERS | 20:频道内主播人数已达上限。
|
|
strong |
音视频流回退处理选项。
枚举值 | |
---|---|
STREAM_FALLBACK_OPTION_DISABLED | 0: 上行/下行网络较弱时,不对音视频流作回退处理,但不能保证音视频流的质量。 |
STREAM_FALLBACK_OPTION_VIDEO_STREAM_LOW | 1: 在下行网络条件较差时只接收视频小流(低分辨率、低码率视频流)。该选项只对 SetRemoteSubscribeFallbackOption 有效,对 SetLocalPublishFallbackOption 方法无效。 |
STREAM_FALLBACK_OPTION_AUDIO_ONLY | 2: 上行/下行网络较弱时,先尝试只接收视频小流(低分辨率、低码率视频流);如果网络环境无法显示视频,则再回退到只接收远端订阅的音频流。 |
|
strong |
|
strong |
远端视频流状态切换原因。
|
strong |
本地视频状态。
枚举值 | |
---|---|
LOCAL_VIDEO_STREAM_STATE_STOPPED | 0: 本地视频默认初始状态。 |
LOCAL_VIDEO_STREAM_STATE_CAPTURING | 1: 本地视频采集设备启动成功。调用 StartScreenCaptureByWindowId 方法共享窗口且共享窗口为最大化时,也会报告该状态。 |
LOCAL_VIDEO_STREAM_STATE_ENCODING | 2: 本地视频首帧编码成功。 |
LOCAL_VIDEO_STREAM_STATE_FAILED | 3: 本地视频启动失败。 |
|
strong |
本地视频出错原因。
枚举值 | |
---|---|
LOCAL_VIDEO_STREAM_ERROR_OK | 0: 本地视频状态正常。 |
LOCAL_VIDEO_STREAM_ERROR_FAILURE | 1: 出错原因不明确。 |
LOCAL_VIDEO_STREAM_ERROR_DEVICE_NO_PERMISSION | 2: 没有权限启动本地视频采集设备。 |
LOCAL_VIDEO_STREAM_ERROR_DEVICE_BUSY | 3: 本地视频采集设备正在使用中。 |
LOCAL_VIDEO_STREAM_ERROR_CAPTURE_FAILURE | 4: 本地视频采集失败,建议检查采集设备是否正常工作。 |
LOCAL_VIDEO_STREAM_ERROR_ENCODE_FAILURE | 5: 本地视频编码失败。 |
LOCAL_VIDEO_STREAM_ERROR_CAPTURE_INBACKGROUND | 6: 仅适用于 iOS)应用处于后台。请提示用户应用处于后台时,无法正常进行视频采集。 |
LOCAL_VIDEO_STREAM_ERROR_CAPTURE_MULTIPLE_FOREGROUND_APPS | 7: (仅支持 iOS)应用窗口处于侧拉、分屏、画中画模式。请提示用户应用窗口在侧拉、分屏、画中画模式时,无法正常进行视频采集。 |
LOCAL_VIDEO_STREAM_ERROR_DEVICE_NOT_FOUND | 8: 找不到本地视频采集设备。
|
LOCAL_VIDEO_STREAM_ERROR_DEVICE_DISCONNECTED | 9: 本地视频设备已断开连接。 |
LOCAL_VIDEO_STREAM_ERROR_DEVICE_INVALID_ID | 10: (仅 macOS 和 Windows)SDK 无法在视频设备列表中找到该视频设备。请检查视频设备 ID 是否有效。
|
LOCAL_VIDEO_STREAM_ERROR_SCREEN_CAPTURE_WINDOW_MINIMIZED | 11: 调用 StartScreenCaptureByWindowId 方法共享窗口时,共享窗口处于最小化的状态。 |
LOCAL_VIDEO_STREAM_ERROR_SCREEN_CAPTURE_WINDOW_CLOSED | 12: 该错误码表示通过窗口 ID 共享的窗口已关闭,或通过窗口 ID 共享的全屏窗口已退出全屏。 退出全屏模式后,远端用户将无法看到共享的窗口。为避免远端用户看到黑屏,声网建议你立即结束本次共享。 报告该错误码的常见场景:
|
LOCAL_VIDEO_STREAM_ERROR_SCREEN_CAPTURE_WINDOW_OCCLUDED | 13: (仅 Windows)待共享的窗口被其他窗口遮挡住,被遮挡住的部分在共享时会被 SDK 涂黑。
|
LOCAL_VIDEO_STREAM_ERROR_SCREEN_CAPTURE_WINDOW_NOT_SUPPORTED | 20: (仅 Windows)SDK 不支持共享该类型的窗口。
|
|
strong |
录音内容。在 StartAudioRecording 中设置。
枚举值 | |
---|---|
AUDIO_RECORDING_POSITION_MIXED_RECORDING_AND_PLAYBACK | 0:(默认)录制本地和所有远端用户混音后的音频。 |
AUDIO_RECORDING_POSITION_RECORDING | 1: 仅录制本地用户的音频。 |
AUDIO_RECORDING_POSITION_MIXED_PLAYBACK | 2: 仅录制所有远端用户的音频。 |
|
strong |
|
strong |
指定 OnRecordAudioFrameHandler 和 OnPlaybackAudioFrameHandler 回调的使用模式。
枚举值 | |
---|---|
RAW_AUDIO_FRAME_OP_MODE_READ_ONLY | 0: 只读模式,用户仅从 AudioFrame 获取原始数据,不作任何修改。例如: 若用户通过 Unity SDK 采集数据,自己进行 RTMP 推流,则可以选择该模式。 |
RAW_AUDIO_FRAME_OP_MODE_WRITE_ONLY | 1: 只写模式,用户替换 AudioFrame 中的数据以供 SDK 编码传输。例如: 若用户自行采集数据,可选择该模式。 |
RAW_AUDIO_FRAME_OP_MODE_READ_WRITE | 2: 读写模式, 用户从 AudioFrame 获取并修改数据、修改,并返回给 SDK 进行编码传输。例如: 若用户自己有音效处理模块,且想要根据实际需要对数据进行前处理(例如变声),则可以选择该模式。 |
|
strong |
音频属性。
设置采样率,码率,编码模式和声道数。
|
strong |
设置音频应用场景。
|
strong |
|
strong |
|
strong |
音乐文件播放状态。在 OnAudioMixingStateChangedHandler 回调中报告。
|
strong |
混音音乐文件错误码。
枚举值 | |
---|---|
AUDIO_MIXING_ERROR_CAN_NOT_OPEN | 701: 音乐文件打开出错。 |
AUDIO_MIXING_ERROR_TOO_FREQUENT_CALL | 702: 音乐文件打开太频繁。 |
AUDIO_MIXING_ERROR_INTERRUPTED_EOF | 703: 音乐文件播放中断。 |
AUDIO_MIXING_ERROR_OK | 0: 音乐文件状态正常。 |
|
strong |
推流状态。
枚举值 | |
---|---|
RTMP_STREAM_PUBLISH_STATE_IDLE | 0: 推流未开始或已结束。成功调用 RemovePublishStreamUrl 方法删除推流地址后,也会返回该状态。 |
RTMP_STREAM_PUBLISH_STATE_CONNECTING | 1: 正在连接声网推流服务器和 RTMP 服务器。调用 AddPublishStreamUrl 方法后,会返回该状态。 |
RTMP_STREAM_PUBLISH_STATE_RUNNING | 2: 推流正在进行。成功推流后,会返回该状态。 |
RTMP_STREAM_PUBLISH_STATE_RECOVERING | 3: 正在恢复推流。当 CDN 出现异常,或推流短暂中断时,SDK 会自动尝试恢复推流,并返回该状态。
|
RTMP_STREAM_PUBLISH_STATE_FAILURE | 4: 推流失败。失败后,你可以通过返回的错误码排查错误原因,也可以再次调用 AddPublishStreamUrl 重新尝试推流。 |
RTMP_STREAM_PUBLISH_STATE_DISCONNECTING | 5: SDK 正在与声网推流服务器和 CDN 服务器断开连接。 当你调用
|
|
strong |
推流错误信息。
枚举值 | |
---|---|
RTMP_STREAM_PUBLISH_ERROR_OK | 0: 推流成功 |
RTMP_STREAM_PUBLISH_ERROR_INVALID_ARGUMENT | 1: 参数无效。请检查输入参数是否正确。例如如果你在调用 AddPublishStreamUrl 前没有调用 SetLiveTranscoding 设置转码参数,SDK 会返回该错误。 |
RTMP_STREAM_PUBLISH_ERROR_ENCRYPTED_STREAM_NOT_ALLOWED | 2: 推流已加密,不能推流 |
RTMP_STREAM_PUBLISH_ERROR_CONNECTION_TIMEOUT | 3: 推流超时未成功。可调用 AddPublishStreamUrl 重新推流。 |
RTMP_STREAM_PUBLISH_ERROR_INTERNAL_SERVER_ERROR | 4: 推流服务器出现错误。请调用 AddPublishStreamUrl 重新推流。 |
RTMP_STREAM_PUBLISH_ERROR_RTMP_SERVER_ERROR | 5: RTMP 服务器出现错误。 |
RTMP_STREAM_PUBLISH_ERROR_TOO_OFTEN | 6: 推流请求过于频繁。 |
RTMP_STREAM_PUBLISH_ERROR_REACH_LIMIT | 7: 单个主播的推流地址数目达到上线 10。请删掉一些不用的推流地址再增加推流地址。 |
RTMP_STREAM_PUBLISH_ERROR_NOT_AUTHORIZED | 8: 主播操作不属于自己的流。例如更新其他主播的流参数、停止其他主播的流。请检查 app 逻辑。 |
RTMP_STREAM_PUBLISH_ERROR_STREAM_NOT_FOUND | 9: 服务器未找到这个流。 |
RTMP_STREAM_PUBLISH_ERROR_FORMAT_NOT_SUPPORTED | 10: 推流地址格式有错误。请检查推流地址格式是否正确。 |
RTMP_STREAM_PUBLISH_ERROR_NOT_BROADCASTER | 11: 用户角色不是主播,该用户无法使用推流功能。请检查你的应用代码逻辑。
|
RTMP_STREAM_PUBLISH_ERROR_TRANSCODING_NO_MIX_STREAM | 13: 非转码推流情况下,调用了 UpdateRtmpTranscoding 或 SetLiveTranscoding 方法更新转码属性。请检查你的应用代码逻辑。
|
RTMP_STREAM_PUBLISH_ERROR_NET_DOWN | 14: 主播的网络出错。
|
RTMP_STREAM_PUBLISH_ERROR_INVALID_APPID | 15: 你的 App ID 没有使用声网推流服务的权限。请参考前提条件开启推流服务。
|
RTMP_STREAM_UNPUBLISH_ERROR_OK | 100: 推流已正常结束。当你调用 RemovePublishStreamUrl 结束推流后,SDK 会返回该值。
|
|
strong |
网络连接类型。
|
strong |
预设的美声效果。
|
strong |
预设的音效。
语音音效均衡波段的中心频率。
|
strong |
|
strong |
各混响音效 Key 所对应的值。
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
视频编码的方向模式。
|
strong |
带宽受限时的视频编码降级偏好。
枚举值 | |
---|---|
MAINTAIN_QUALITY | 0:(默认)带宽受限时,视频编码时优先降低视频帧率,维持视频质量不变。该降级偏好适用于画质优先的场景。
|
MAINTAIN_FRAMERATE | 1: 带宽受限时,视频编码时优先降低视频质量,维持视频帧率不变。该降级偏好适用于流畅性优先且允许画质降低的场景。 |
MAINTAIN_BALANCED | 2: 带宽受限时,视频编码时同时降低视频帧率和视频质量。
|
|
strong |
|
strong |
|
strong |
|
strong |
枚举值 | |
---|---|
AUDIO_PLAYOUT_SOURCE | 0: 音频播放设备。 |
AUDIO_RECORDING_SOURCE | 1: 音频采集设备。 |
|
strong |
|
strong |
|
strong |
摄像头采集配置。
枚举值 | |
---|---|
CAPTURER_OUTPUT_PREFERENCE_AUTO | 0: (默认)自动调整采集参数。SDK 根据实际的采集设备性能及网络情况,选择合适的摄像头输出参数,在设备性能及视频预览质量之间,维持平衡。 |
CAPTURER_OUTPUT_PREFERENCE_PERFORMANCE | 1: 优先保证设备性能。SDK 根据用户在 SetVideoEncoderConfiguration 中设置编码器的分辨率和帧率,选择最接近的摄像头输出参数,从而保证设备性能。在这种情况下,预览质量接近于编码器的输出质量。 |
CAPTURER_OUTPUT_PREFERENCE_PREVIEW | 2: 中设置编码器的分辨率和帧率,选择最接近的摄像头输出参数,从而保证设备性能。在这种情况下,预览质量接近于编码器的输出质量。 |
CAPTURER_OUTPUT_PREFERENCE_MANUAL | 3: 允许用户设置本地摄像头采集的视频宽高。
|
|
strong |
网络质量。
|
strong |
设备状态。
|
strong |
|
strong |
|
strong |
本地音频出错原因。
|
strong |
远端音频流状态。
|
strong |
远端音频流状态改变的具体原因。
音频会话控制权限。
|
strong |
跨频道媒体流转发事件码。
|
strong |
跨频道媒体流转发状态码。
枚举值 | |
---|---|
RELAY_STATE_IDLE | 0: 初始状态。在成功调用 StopChannelMediaRelay 停止 跨频道媒体流转发后,OnChannelMediaRelayStateChangedHandler 会回调该状态。 |
RELAY_STATE_CONNECTING | 1: SDK 尝试跨频道。 |
RELAY_STATE_RUNNING | 2: 源频道主播成功加入目标频道。 |
RELAY_STATE_FAILURE | 3: 发生异常,详见 |
|
strong |
|
strong |
跨频道媒体流转发出错的错误码。
枚举值 | |
---|---|
RELAY_OK | 0: 一切正常。 |
RELAY_ERROR_SERVER_ERROR_RESPONSE | 1: 服务器回应出错。 |
RELAY_ERROR_SERVER_NO_RESPONSE | 2: 服务器无回应。你可以调用 LeaveChannel 方法离开频道。 |
RELAY_ERROR_NO_RESOURCE_AVAILABLE | 3: SDK 无法获取服务,可能是因为服务器资源有限导致。 |
RELAY_ERROR_FAILED_JOIN_SRC | 4: 发起跨频道转发媒体流请求失败。 |
RELAY_ERROR_FAILED_JOIN_DEST | 5: 接受跨频道转发媒体流请求失败。 |
RELAY_ERROR_FAILED_PACKET_RECEIVED_FROM_SRC | 6: 服务器接收跨频道转发媒体流失败。 |
RELAY_ERROR_FAILED_PACKET_SENT_TO_DEST | 7: 服务器发送跨频道转发媒体流失败。 |
RELAY_ERROR_SERVER_CONNECTION_LOST | 8: SDK 因网络质量不佳与服务器断开。你可以调用 LeaveChannel 方法离开当前频道。 |
RELAY_ERROR_INTERNAL_ERROR | 9: 服务器内部出错。 |
RELAY_ERROR_SRC_TOKEN_EXPIRED | 10: 源频道的 Token 已过期。 |
RELAY_ERROR_DEST_TOKEN_EXPIRED | 11: 目标频道的 Token 已过期。 |
|
strong |
|
strong |
设置视频显示模式。
枚举值 | |
---|---|
RENDER_MODE_HIDDEN | 1: 视频尺寸等比缩放。优先保证视窗被填满。因视频尺寸与显示视窗尺寸不一致而多出的视频将被截掉。 |
RENDER_MODE_FIT | 2: 视频尺寸等比缩放。优先保证视频内容全部显示。因视频尺寸与显示视窗尺寸不一致造成的视窗未被填满的区域填充黑色。 |
RENDER_MODE_ADAPTIVE |
|
|
strong |
内置加密模式。声网推荐使用 AES_128_GCM2
或 AES_256_GCM2
加密模式。 这两种模式支持使用盐,安全性更高。
|
strong |
RTMP/RTMPS 推流时发生的事件。
|
strong |
发布状态。
枚举值 | |
---|---|
PUB_STATE_IDLE | 0: 加入频道后的初始发布状态。 |
PUB_STATE_NO_PUBLISHED | 1: 发布失败。可能是因为:
|
PUB_STATE_PUBLISHING | 2: 正在发布。 |
PUB_STATE_PUBLISHED | 3: 发布成功。 |
|
strong |
订阅状态。
枚举值 | |
---|---|
SUB_STATE_IDLE | 0: 加入频道后的初始订阅状态。 |
SUB_STATE_NO_SUBSCRIBED | 1: 订阅失败。可能是因为:
|
SUB_STATE_SUBSCRIBING | 2: 正在订阅。 |
SUB_STATE_SUBSCRIBED | 3: 收到了远端流,订阅成功。 |
|
strong |
|
strong |
预设的美声效果选项。
枚举值 | |
---|---|
VOICE_BEAUTIFIER_OFF | 原声,即关闭美声效果。 |
CHAT_BEAUTIFIER_MAGNETIC | 磁性(男)。
|
CHAT_BEAUTIFIER_FRESH | 清新(女)。
|
CHAT_BEAUTIFIER_VITALITY | 活力(女)。
|
SINGING_BEAUTIFIER |
歌唱美声。
|
TIMBRE_TRANSFORMATION_VIGOROUS | 浑厚。 |
TIMBRE_TRANSFORMATION_DEEP | 低沉。 |
TIMBRE_TRANSFORMATION_MELLOW | 圆润。 |
TIMBRE_TRANSFORMATION_FALSETTO | 假音。 |
TIMBRE_TRANSFORMATION_FULL | 饱满。 |
TIMBRE_TRANSFORMATION_CLEAR | 清澈。 |
TIMBRE_TRANSFORMATION_RESOUNDING | 高亢。 |
TIMBRE_TRANSFORMATION_RINGING | 嘹亮。 |
|
strong |
预设的音效选项。
枚举值 | |
---|---|
AUDIO_EFFECT_OFF | 原声,即关闭人声音效。 |
ROOM_ACOUSTICS_KTV | KTV。
|
ROOM_ACOUSTICS_VOCAL_CONCERT | 演唱会。
|
ROOM_ACOUSTICS_STUDIO | 录音棚。
|
ROOM_ACOUSTICS_PHONOGRAPH | 留声机。
|
ROOM_ACOUSTICS_VIRTUAL_STEREO | 虚拟立体声,即 SDK 将单声道的音频渲染出双声道的音效。
|
ROOM_ACOUSTICS_SPACIAL | 空旷。
|
ROOM_ACOUSTICS_ETHEREAL | 空灵。
|
ROOM_ACOUSTICS_3D_VOICE | 3D 人声,即 SDK 将音频渲染出在用户周围环绕的效果,环绕周期为 10 秒。设置该音效后,你还可以 调用 SetAudioEffectParameters 修改环绕周期。
|
VOICE_CHANGER_EFFECT_UNCLE | 大叔。
|
VOICE_CHANGER_EFFECT_OLDMAN | 老年男性。
|
VOICE_CHANGER_EFFECT_BOY | 男孩。
|
VOICE_CHANGER_EFFECT_SISTER | 少女。
|
VOICE_CHANGER_EFFECT_GIRL | 女孩。
|
VOICE_CHANGER_EFFECT_PIGKING | 猪八戒。
|
VOICE_CHANGER_EFFECT_HULK | 绿巨人。
|
STYLE_TRANSFORMATION_RNB | R&B。
|
STYLE_TRANSFORMATION_POPULAR | 流行。
|
PITCH_CORRECTION | 电音,即 SDK 以主音音高为 C 的自然大调为基础修正音频的实际音高。设置该音效后,你还可以 调用 SetAudioEffectParameters 调整修音的基础调式和主音音高。
|
|
strong |
超级分辨率算法未成功开启的原因
|
strong |
|
strong |
云代理类型。
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
虚拟背景开启失败的原因。
枚举值 | |
---|---|
VIRTUAL_BACKGROUND_SOURCE_STATE_REASON_SUCCESS | 0: 虚拟背景已成功开启。 |
VIRTUAL_BACKGROUND_SOURCE_STATE_REASON_IMAGE_NOT_EXIST | 1: 自定义的背景图不存在。请检查 VirtualBackgroundSource 中 |
VIRTUAL_BACKGROUND_SOURCE_STATE_REASON_COLOR_FORMAT_NOT_SUPPORTED | 2: 自定义的背景图颜色格式出错。请检查 VirtualBackgroundSource 中 |
VIRTUAL_BACKGROUND_SOURCE_STATE_REASON_DEVICE_NOT_SUPPORTED | 3: 设备不支持使用虚拟背景。 |
VIRTUAL_BACKGROUND_SOURCE_STATE_REASON_INSUFFICIENT_PERFORMANCE | 4: 开启或运行虚拟背景功能时,SDK 检测到用户设备性能不足。收到该原因码后,声网建议用户关闭虚拟背景功能。 |
|
strong |
声道模式。在 SetAudioMixingDualMonoMode 中设置。
|
strong |
音频文件信息的获取状态。在 OnRequestAudioFileInfoHandler 中报告。
枚举值 | |
---|---|
AUDIO_FILE_INFO_ERROR_OK | 0: 获取成功。 |
AUDIO_FILE_INFO_ERROR_FAILURE | 1: 获取失败。 |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
当前的录制状态。
枚举值 | |
---|---|
RECORDER_STATE_ERROR | 音视频流录制出错,错误原因详见 RecorderErrorCode 中的提示。 |
RECORDER_STATE_START | 音视频流录制开始。 |
RECORDER_STATE_STOP | 音视频流录制停止。 |
|
strong |
|
strong |
SDK 与本地代理的连接模式。
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
视频降噪等级
切换用户角色失败的原因。
|
strong |
|
strong |
改善 Wi-Fi 连接质量的操作建议。
|
strong |
|
strong |
屏幕共享的场景。
|
strong |
|
strong |
|
strong |
delegate void agora_gaming_rtc.OnJoinChannelSuccessHandler | ( | string | channelName, |
uint | uid, | ||
int | elapsed | ||
) |
加入频道回调。
该回调方法表示该客户端成功加入了指定的频道。
频道名基于 JoinChannelByKey 中指定的 channelName
分配。
如果调用 JoinChannelByKey
时并没有指定 uid
。服务器会自动分配一个。
channelName | 频道名。 |
uid | 用户 ID。如果 JoinChannelByKey 中指定了 uid,则此处返回该 ID;否则使用声网服务器自动分配的 ID。 |
elapsed | 从 JoinChannelByKey 开始到发生此事件过去的时间(毫秒)。 |
delegate void agora_gaming_rtc.OnLeaveChannelHandler | ( | RtcStats | stats | ) |
离开频道回调。
app 调用 LeaveChannel 方法时,SDK 提示 app 离开频道成功。在该回调方法中,app 可以得到此次通话的总通话时长、SDK 收发数据的流量等信息。App 通过该回调获取通话时长以及 SDK 接收到或发送的数据统计信息。
stats | 通话的统计数据: RtcStats 。 |
delegate void agora_gaming_rtc.OnReJoinChannelSuccessHandler | ( | string | channelName, |
uint | uid, | ||
int | elapsed | ||
) |
重新加入频道回调。
有时候由于网络原因,客户端可能会和服务器失去连接,SDK 会进行自动重连,自动重连成功后触发此回调方法。
channelName | 频道名。 |
uid | 用户 ID。 |
elapsed | 从开始重连到重连成功的时间(毫秒)。 |
delegate void agora_gaming_rtc.OnConnectionLostHandler | ( | ) |
网络连接丢失回调。
SDK 在调用 JoinChannelByKey 后无论是否加入成功,只要 10 秒和服务器无法连接就会触发该回调。
与 OnConnectionInterruptedHandler 的区别是:
OnConnectionInterruptedHandler
回调一定是发生在加入频道成功后,且 SDK 刚失去和服务器连接超过 4 秒时触发。OnConnectionLostHandler
回调是无论之前加入频道是否成功,只要 10 秒内和服务器无法建立连接都会触发。如果 SDK 在断开连接后,20 分钟内还是没能重新加入频道,SDK 会停止尝试重连。
delegate void agora_gaming_rtc.OnConnectionInterruptedHandler | ( | ) |
网络连接中断回调。
SDK 在和服务器建立连接后,失去了网络连接超过 4 秒,会触发该回调。在触发事件后,SDK 会主动重连服务器,所以该事件可以用于 UI 提示。
与 OnConnectionLostHandler 回调的区别是:
OnConnectionInterruptedHandler
回调一定是发生在加入频道成功后,且 SDK 刚失去和服务器连接超过 4 秒时触发。OnConnectionLostHandler
回调是无论之前加入频道是否成功,只要 10 秒内和服务器无法建立连接都会触发。如果 SDK 在断开连接后,20 分钟内还是没能重新加入频道,SDK 会停止尝试重连。
delegate void agora_gaming_rtc.OnRequestTokenHandler | ( | ) |
Token 已过期回调。
在调用 JoinChannelByKey , 时如果指定了 Token,由于 Token 具有一定的时效,在通话过程中 SDK 可能由于网络原因和服务器失去连接,重连时可能需要新的 Token。
该回调通知 app 需要生成新的 Token,并调用 RenewToken 更新 Token。
delegate void agora_gaming_rtc.OnUserJoinedHandler | ( | uint | uid, |
int | elapsed | ||
) |
远端用户(通信场景)/主播(直播场景)加入当前频道回调。
该回调在如下情况下会被触发:
uid
。uid
。uid | 新加入频道的远端用户/主播 ID。 |
elapsed | 从本地用户调用 JoinChannelByKey 到该回调触发的延迟(毫秒)。 |
delegate void agora_gaming_rtc.OnUserOfflineHandler | ( | uint | uid, |
USER_OFFLINE_REASON | reason | ||
) |
远端用户(通信场景)/主播(直播场景)离开当前频道回调。
提示有远端用户/主播离开了频道(或掉线)。用户离开频道有两个原因,即正常离开和超时掉线:
uid | 离线用户或主播的用户 ID。 |
reason | 离线原因: USER_OFFLINE_REASON 。 |
delegate void agora_gaming_rtc.OnVolumeIndicationHandler | ( | AudioVolumeInfo[] | speakers, |
int | speakerNumber, | ||
int | totalVolume | ||
) |
用户音量提示回调。
该回调默认禁用,你可以通过 EnableAudioVolumeIndication 开启;开启后,只要频道内有发流用户,SDK 会在加入频道后按 EnableAudioVolumeIndication
中设置的时间间隔触发 OnVolumeIndicationHandler
回调。每次会触发两个 OnVolumeIndicationHandler
回调,一个报告本地发流用户的音量相关信息,另一个报告瞬时音量最高的远端用户(最多 3 位)的音量相关信息。
speakers | 用户音量信息,详见 AudioVolumeInfo 数组。如果 speakers 为空,则表示远端用户不发流或没有远端用户。 |
speakerNumber | 用户数量。
|
totalVolume | 混音后的总音量,取值范围为 [0,255]。
|
如果用户调用了 StartAudioMixing,则 totalVolume
为音乐文件和用户声音的总音量。
delegate void agora_gaming_rtc.OnLocalVoicePitchInHzHandler | ( | int | pitchInHz | ) |
报告本地用户的语音音调。
EnableLocalVoicePitchCallback
后,SDK 会按 EnableLocalVoicePitchCallback
中设置的时间间隔触发该回调,报告本地用户的语音音调。 EnableLocalAudio(false)
,SDK 会停止发送 OnLocalVoicePitchInHzHandler
回调。 pitchInHz | 本地用户的语音音调,单位为 Hz。 |
delegate void agora_gaming_rtc.OnUserMutedAudioHandler | ( | uint | uid, |
bool | muted | ||
) |
远端用户静音回调。
提示有远端用户已将其音频流静音(或取消静音)。该回调是由远端用户调用 MuteLocalAudioStream 方法关闭或开启音频发送触发的。
uid | 用户 ID。 |
muted | 该用户是否静音:
|
delegate void agora_gaming_rtc.OnSDKWarningHandler | ( | int | warn, |
string | msg | ||
) |
发生警告回调。
该回调方法表示 SDK 运行时出现了(网络或媒体相关的)警告。通常情况下,SDK 上报的警告信息 app 可以忽略,SDK 会自动恢复。比如和服务器失去连接时,SDK 可能会上报 WARN_OPEN_CHANNEL_TIMEOUT(106)
警告,同时自动尝试重连。
warn | 警告代码:Warning Code。 |
msg | 警告描述。 |
delegate void agora_gaming_rtc.OnSDKErrorHandler | ( | int | error, |
string | msg | ||
) |
发生错误回调。
该回调方法表示 SDK 运行时出现了(网络或媒体相关的)错误。通常情况下,SDK 上报的错误意味着 SDK 无法自动恢复,需要 app 干预或提示用户。 比如启动通话失败时,SDK 会上报 ERR_START_CALL(1002)
错误。App 可以提示用户启动通话失败,并调用 LeaveChannel 退出频道。
error | 错误代码:Error Code。 |
msg | 错误描述。 |
delegate void agora_gaming_rtc.OnRtcStatsHandler | ( | RtcStats | stats | ) |
当前通话统计回调。SDK 定期向 app 报告当前通话的统计信息,每两秒触发一次。
stats | RTC 引擎统计数据: RtcStats 。 |
delegate void agora_gaming_rtc.OnAudioMixingFinishedHandler | ( | ) |
本地音乐文件播放已结束回调。
当调用 StartAudioMixing 播放本地音乐文件结束后,会触发该回调。如果调用 StartAudioMixing
失败,会在 OnSDKErrorHandler 回调里,返回错误码 WARN_AUDIO_MIXING_OPEN_ERROR(701)
。
delegate void agora_gaming_rtc.OnAudioRouteChangedHandler | ( | AUDIO_ROUTE | route | ) |
delegate void agora_gaming_rtc.OnFirstRemoteVideoDecodedHandler | ( | uint | uid, |
int | width, | ||
int | height, | ||
int | elapsed | ||
) |
已接收到远端视频并完成解码回调。
引擎收到第一帧远端视频流并解码成功时,触发此调用。 app 可在此回调中设置该用户的 view。有两种情况:
uid | 用户 ID,指定是哪个用户的视频流。 |
width | 视频流宽(px)。 |
height | 视频流高(px)。 |
elapsed | 从本地调用 JoinChannelByKey 开始到该回调触发的延迟(毫秒)。 |
delegate void agora_gaming_rtc.OnVideoSizeChangedHandler | ( | uint | uid, |
int | width, | ||
int | height, | ||
int | rotation | ||
) |
本地或远端视频大小和旋转信息发生改变回调。
uid | 图像尺寸和旋转信息发生变化的用户的用户 ID(本地用户的 uid 为 0)。 |
width | 视频流的宽度(像素)。 |
height | 视频流的高度(像素)。 |
rotation | 旋转信息 [0,360) 。 |
delegate void agora_gaming_rtc.OnClientRoleChangedHandler | ( | CLIENT_ROLE_TYPE | oldRole, |
CLIENT_ROLE_TYPE | newRole | ||
) |
直播场景下用户角色切换成功回调。
直播场景下,本地用户加入频道后调用 SetClientRole
成功改变用户角色时,例如主播切换为观众,或观众切换为主播,SDK 会触发该回调,报告切换前和切换后的角色。 *
oldRole | 切换前的角色: CLIENT_ROLE_TYPE 。 |
newRole | 切换后的角色: CLIENT_ROLE_TYPE 。 |
delegate void agora_gaming_rtc.OnUserMuteVideoHandler | ( | uint | uid, |
bool | muted | ||
) |
远端用户暂停/恢复发送视频流回调。
你也可以使用 OnRemoteVideoStateChangedHandler 回调的:
该回调是由远端用户调用 MuteLocalVideoStream 方法关闭或开启视频发送触发的。
uid | 远端用户 ID。 |
muted | 该用户是否暂停发送其视频流:
|
delegate void agora_gaming_rtc.OnMicrophoneEnabledHandler | ( | bool | isEnabled | ) |
麦克风状态已改变回调。
该回调由本地用户调用 EnableLocalAudio 方法开启或关闭本地音频采集触发的。
isEnabled |
|
delegate void agora_gaming_rtc.OnApiExecutedHandler | ( | int | err, |
string | api, | ||
string | result | ||
) |
API 方法已执行回调。
err | 当该方法调用失败时 SDK 返回的错误码。如果方法调用失败,会返回错误码 Error Code。如果该方法调用成功,SDK 将返回 0。 |
api | SDK 执行的 API。 |
result | SDK 调用 API 的调用结果。 |
delegate void agora_gaming_rtc.OnLastmileQualityHandler | ( | int | quality | ) |
通话前网络上下行 last mile 质量报告回调。
该回调描述本地用户在加入频道前的 last mile 网络探测的结果,其中 last mile 是指设备到声网边缘服务器的网络状态。在调用 EnableLastmileTest 之后,该回调函数每 2 秒触发一次。如果远端有多个用户/主播,该回调每 2 秒会被触发多次。
quality | 网络上下行质量,基于上下行网络的丢包率和抖动计算,探测结果主要反映上行网络的状态。详见: QUALITY_TYPE 。 |
delegate void agora_gaming_rtc.OnFirstLocalAudioFrameHandler | ( | int | elapsed | ) |
已发送本地音频首帧回调。
elapsed | 从调用 JoinChannelByKey 方法直至该回调被触发的时间。 |
delegate void agora_gaming_rtc.OnFirstRemoteAudioFrameHandler | ( | uint | userId, |
int | elapsed | ||
) |
已接收远端音频首帧回调。
userId | 发送音频帧的远端用户的用户 ID。 |
elapsed | 从调用 JoinChannelByKey 方法直至该回调被触发的时间。 |
delegate void agora_gaming_rtc.OnAudioQualityHandler | ( | uint | userId, |
int | quality, | ||
ushort | delay, | ||
ushort | lost | ||
) |
远端声音质量回调。
该回调描述远端用户在通话中的音频质量,针对每个远端用户/主播每 2 秒触发一次。如果远端同时存在多个用户/主播,该回调每 2 秒会被触发多次。
userId | 用户 ID,指定是谁发的音频流。 |
quality | 语音质量,详见: QUALITY_TYPE 。 |
delay | 音频包从发送端到接收端的延迟(毫秒)。包括声音采样前处理、网络传输、网络抖动缓冲引起的延迟。 |
lost | 音频包从发送端到接收端的丢包率 (%)。 |
delegate void agora_gaming_rtc.OnStreamUnpublishedHandler | ( | string | url | ) |
旁路推流已停止回调。
回调用于通知主播停止推流成功。
url | 被删除的 RTMP/RTMPS 推流地址。 |
delegate void agora_gaming_rtc.OnStreamPublishedHandler | ( | string | url, |
int | error | ||
) |
旁路推流已开启回调。该回调用于通知主播推流状态。
url | 主播推流的 URL 地址 。 |
error | Error code: Error Code。
|
delegate void agora_gaming_rtc.OnStreamMessageErrorHandler | ( | uint | userId, |
int | streamId, | ||
int | code, | ||
int | missed, | ||
int | cached | ||
) |
接收对方数据流消息发生错误的回调。
该回调表示本地用户未收到远端用户调用 SendStreamMessage 方法发送的流消息。
userId | 发送消息的用户 ID。 |
streamId | Stream ID。 |
code | 错误码: Error Code。 |
missed | 丢失的消息数量。 |
cached | 数据流中断时,后面缓存的消息数量。 |
delegate void agora_gaming_rtc.OnStreamMessageHandler | ( | uint | userId, |
int | streamId, | ||
string | data, | ||
int | length | ||
) |
接收到对方数据流消息的回调。
该回调表示本地用户收到了远端用户调用 SendStreamMessage 方法发送的流消息。
userId | 发送消息的用户 ID。 |
streamId | 数据流 ID。 |
data | 接收到的数据流。 |
length | 数据流长度。 |
delegate void agora_gaming_rtc.OnConnectionBannedHandler | ( | ) |
delegate void agora_gaming_rtc.OnConnectionStateChangedHandler | ( | CONNECTION_STATE_TYPE | state, |
CONNECTION_CHANGED_REASON_TYPE | reason | ||
) |
网络连接状态已改变回调。该回调在网络连接状态发生改变的时候触发,并告知用户当前的网络连接状态和引起网络状态改变的原因。
state | 详见: CONNECTION_STATE_TYPE 。 |
reason | 详见: CONNECTION_CHANGED_REASON_TYPE 。 |
delegate void agora_gaming_rtc.OnTokenPrivilegeWillExpireHandler | ( | string | token | ) |
Token 服务即将过期回调。
在调用 JoinChannelByKey 时如果指定了 Token,由于 Token 具有一定的时效,在通话过程中如果 Token 即将失效,SDK 会提前 30 秒触发该回调,提醒 app 更新 Token。 当收到该回调时,用户需要重新在服务端生成新的 Token,然后调用 RenewToken 将新生成的 Token 传给 SDK。
token | 即将服务失效的 Token。 |
delegate void agora_gaming_rtc.OnActiveSpeakerHandler | ( | uint | uid | ) |
监测到最活跃用户回调。
成功调用 EnableAudioVolumeIndication 后,SDK 会持续监测音量 最大的远端用户,并统计该用户被判断为音量最大者的次数。当前时间段内,该次数累积最多的远端用户为最活跃的用户。
当频道内用户数量大于或等于 2 且有活跃用户时,SDK 会触发该回调并报告最活跃用户的 uid
。
OnActiveSpeakerHandler
回调。uid
。uid | 远端最活跃用户的 ID。 |
delegate void agora_gaming_rtc.OnVideoStoppedHandler | ( | ) |
视频功能已停止回调。
提示视频功能已停止。 app 如需在停止视频后对 view 做其他处理(比如显示其他画面),可以在这个回调中进行。
delegate void agora_gaming_rtc.OnFirstLocalVideoFrameHandler | ( | int | width, |
int | height, | ||
int | elapsed | ||
) |
已显示本地视频首帧回调。本地视频首帧显示在本地视图上时,SDK 会触发此回调。
width | 本地渲染视频的宽 (px) 。 |
height | 本地渲染视频的高 (px)。 |
elapsed | 从调用 JoinChannelByKey 到发生此事件过去的时间(毫秒)。如果在 JoinChannelByKey 前调用了 StartPreview ,则是从 StartPreview 到发生此事件过去的时间。 |
delegate void agora_gaming_rtc.OnFirstRemoteVideoFrameHandler | ( | uint | uid, |
int | width, | ||
int | height, | ||
int | elapsed | ||
) |
已显示首帧远端视频回调。
第一帧远端视频显示在视图上时,触发此调用。 app 可在此调用中获知出图时间(elapsed)。
uid | 用户 ID,指定是哪个用户的视频流。 |
width | 视频流宽(px)。 |
height | 视频流高(px)。 |
elapsed | 从本地调用 JoinChannelByKey 到发生此事件过去的时间(毫秒)。 |
delegate void agora_gaming_rtc.OnUserEnableVideoHandler | ( | uint | uid, |
bool | enabled | ||
) |
远端用户开关本地视频采集回调。
提示有远端用户开关了本地视频采集。关闭视频功能是指该用户只能进行语音通话,不能显示、发送自己的视频,也不能接收、显示别人的视频。
该回调是由远端用户调用 EnableVideo 或 DisableVideo 方法开启或关闭视频模块触发的。
uid | 用户 ID,提示是哪个用户的视频流。 |
enabled |
|
delegate void agora_gaming_rtc.OnUserEnableLocalVideoHandler | ( | uint | uid, |
bool | enabled | ||
) |
其他用户启用/关闭本地视频。
提示有其他用户启用/关闭了本地视频功能。关闭视频功能是指该用户只能进行语音通话,不能显示、发送自己的视频,也不能接收、显示别人的视频。
该回调是由远端用户调用 EnableLocalVideo 方法开启或关闭视频采集触发的。
uid | 用户 ID,提示是哪个用户的视频流。 |
enabled |
|
delegate void agora_gaming_rtc.OnRemoteVideoStateChangedHandler | ( | uint | uid, |
REMOTE_VIDEO_STATE | state, | ||
REMOTE_VIDEO_STATE_REASON | reason, | ||
int | elapsed | ||
) |
远端视频状态发生改变回调。
uid | 发生视频状态改变的远端用户 ID。 |
state | 远端视频流状态。详见 REMOTE_VIDEO_STATE 。 |
reason | 远端视频流状态改变的具体原因。详见 REMOTE_VIDEO_STATE_REASON 。 |
elapsed | 从本地用户调用 JoinChannelByKey 方法到发生本事件经历的时间,单位为 ms。 |
delegate void agora_gaming_rtc.OnLocalPublishFallbackToAudioOnlyHandler | ( | bool | isFallbackOrRecover | ) |
本地发布流已回退为音频流回调。
如果你调用了 SetLocalPublishFallbackOption 接口并将 option
设置为 STREAM_FALLBACK_OPTION_AUDIO_ONLY(2) ,当上行网络环境不理想、本地发布的媒体流回退为音频流时,或当上行网络改善、媒体流恢复为音视频流时,会触发该回调。
isFallbackOrRecover |
|
delegate void agora_gaming_rtc.OnRemoteSubscribeFallbackToAudioOnlyHandler | ( | uint | uid, |
bool | isFallbackOrRecover | ||
) |
远端订阅流已回退为音频流回调。
如果你调用了 SetRemoteSubscribeFallbackOption 接口并将 option
设置为 STREAM_FALLBACK_OPTION_AUDIO_ONLY(2),当下行网络环境不理想、仅接收远端音频流时,或当下行网络改善、恢复订阅音视频流时,会触发该回调。
uid | 远端用户的用户 ID。 |
isFallbackOrRecover |
|
delegate void agora_gaming_rtc.OnNetworkQualityHandler | ( | uint | uid, |
int | txQuality, | ||
int | rxQuality | ||
) |
通话中每个用户的网络上下行 last mile 质量报告回调。
该回调描述每个用户在通话中的 last mile 网络状态,其中 last mile 是指设备到声网边缘服务器的网络状态。该回调每 2 秒触发一次。如果远端有多个用户,该回调每 2 秒会被触发多次。
uid | 用户 ID。表示该回调报告的是持有该 ID 的用户的网络质量。当 uid 为 0 时,返回的是本地用户的网络质量。 |
txQuality | 该用户的上行网络质量,基于发送码率、上行丢包率、平均往返时延和网络抖动计算。该值代表当前的上行网络质量,帮助判断是否可以支持当前设置的视频编码属性。假设上行码率是 1000 Kbps,那么支持直播场景下 640 × 480 的分辨率、15 fps 的帧率没有问题,但是支持 1280 × 720 的分辨率就会有困难。详见 QUALITY_TYPE 。 |
rxQuality | 该用户的下行网络质量,基于下行网络的丢包率、平均往返延时和网络抖动计算。详见 QUALITY_TYPE 。 |
delegate void agora_gaming_rtc.OnLocalVideoStatsHandler | ( | LocalVideoStats | localVideoStats | ) |
delegate void agora_gaming_rtc.OnRemoteVideoStatsHandler | ( | RemoteVideoStats | remoteVideoStats | ) |
通话中远端视频流的统计信息回调。
该回调描述远端用户在通话中端到端的视频流统计信息,针对每个远端用户/主播每 2 秒触发一次。如果远端同时存在多个用户/主播,该回调每 2 秒会被触发多次。
remoteVideoStats | 远端视频统计数据。详见: RemoteVideoStats 。 |
delegate void agora_gaming_rtc.OnRemoteAudioStatsHandler | ( | RemoteAudioStats | remoteAudioStats | ) |
通话中远端音频流的统计信息回调。用于取代 OnAudioQualityHandler 回调。
该回调描述远端用户在通话中端到端的音频流统计信息。该回调函数针对每个发送音频流的远端用户/主播每 2 秒触发一次。如果远端有多个用户/主播发送音频流,该回调每 2 秒会被触发多次。
remoteAudioStats | 接收到的远端音频统计数据,详细定义见: RemoteAudioStats 。 |
delegate void agora_gaming_rtc.OnAudioDeviceStateChangedHandler | ( | string | deviceId, |
int | deviceType, | ||
int | deviceState | ||
) |
音频设备变化回调。
提示系统音频设备状态发生改变,比如耳机被拔出。
deviceId | 设备 ID。 |
deviceType | 设备类型: MEDIA_DEVICE_TYPE 。 |
deviceState | 设备状态:
|
delegate void agora_gaming_rtc.OnCameraReadyHandler | ( | ) |
摄像头就绪回调。
提示已成功打开摄像头,可以开始捕获视频。如果摄像头打开失败,可在 OnSDKErrorHandler 中处理相应错误。
delegate void agora_gaming_rtc.OnCameraFocusAreaChangedHandler | ( | int | x, |
int | y, | ||
int | width, | ||
int | height | ||
) |
摄像头对焦区域已改变回调。
该回调是由本地用户调用 SetCameraFocusPositionInPreview 方法改变对焦位置触发的。
x | 发生改变的对焦区域的 x 坐标。 |
y | 发生改变的对焦区域的 y 坐标。 |
width | 发生改变的对焦区域的宽度。 |
height | 发生改变的对焦区域的高度。 |
delegate void agora_gaming_rtc.OnCameraExposureAreaChangedHandler | ( | int | x, |
int | y, | ||
int | width, | ||
int | height | ||
) |
摄像头曝光区域已改变回调。
该回调是由本地用户调用 SetCameraExposurePosition 方法改变曝光位置触发的。
x | 发生改变的曝光区域的 x 坐标。 |
y | 发生改变的曝光区域的 y 坐标。 |
width | 发生改变的曝光区域的宽度。 |
height | 发生改变的曝光区域的高度。 |
delegate void agora_gaming_rtc.OnRemoteAudioMixingBeginHandler | ( | ) |
远端音乐文件播放已开始回调。
当远端有用户调用 StartAudioMixing 播放本地音乐文件,会触发该回调。
delegate void agora_gaming_rtc.OnRemoteAudioMixingEndHandler | ( | ) |
远端音乐文件播放已结束回调。当远端有用户播放本地音乐文件结束,会触发该回调。
delegate void agora_gaming_rtc.OnAudioEffectFinishedHandler | ( | int | soundId | ) |
本地音效文件播放已结束回调。
当播放音效结束后,会触发该回调。
soundId | 指定音效的 ID。每个音效均有唯一的 ID。 |
delegate void agora_gaming_rtc.OnVideoDeviceStateChangedHandler | ( | string | deviceId, |
int | deviceType, | ||
int | deviceState | ||
) |
视频设备变化回调。
该回调提示系统视频设备状态发生改变,比如被拔出或移除。如果设备已使用外接摄像头采集,外接摄像头被拔开后,视频会中断。
deviceId | 设备 ID。 |
deviceType | 设备类型: MEDIA_DEVICE_TYPE |
deviceState | 设备状态:
|
delegate void agora_gaming_rtc.OnRemoteVideoTransportStatsHandler | ( | uint | uid, |
ushort | delay, | ||
ushort | lost, | ||
ushort | rxKBitRate | ||
) |
通话中远端视频流传输的统计信息回调。
该回调描述远端用户通话中端到端的网络统计信息,通过视频包计算,用客观的数据,如丢包、网络延迟等,展示当前网络状态。通话中,当用户收到远端用户/主播发送的视频数据包后,会每 2 秒触发一次该回调。
和 OnRemoteVideoStatsHandler 回调相比,该回调以数据展示当前网络状态,因此更客观。
uid | 用户 ID,指定是哪个用户/主播的视频包。 |
delay | 视频包从发送端到接收端的延时(毫秒)。 |
lost | 视频包从发送端到接收端的丢包率 (%)。 |
rxKBitRate | 远端视频包的接收码率(Kbps)。 |
delegate void agora_gaming_rtc.OnRemoteAudioTransportStatsHandler | ( | uint | uid, |
ushort | delay, | ||
ushort | lost, | ||
ushort | rxKBitRate | ||
) |
通话中远端音频流传输的统计信息回调。
该回调描述远端用户通话中端到端的网络统计信息,通过音频包计算,用客观的数据,如丢包、网络延迟等,展示当前网络状态。通话中,当用户收到远端用户/主播发送的音频数据包后 ,会每 2 秒触发一次该回调。和 OnRemoteAudioStatsHandler 回调相比,该回调以数据展示当前网络状态,因此更客观。
uid | 用户 ID,指定是哪个用户/主播的音频包。 |
delay | 音频包从发送端到接收端的延时(毫秒)。 |
lost | 音频包从发送端到接收端的丢包率 (%)。 |
rxKBitRate | 远端音频包的接收码率(Kbps)。 |
delegate void agora_gaming_rtc.OnTranscodingUpdatedHandler | ( | ) |
旁路推流设置已被更新回调。
当 SetLiveTranscoding 方法中的直播参数 LiveTranscoding
更新时,OnTranscodingUpdatedHandler
回调会被触发并向主播报告更新信息。
SetLiveTranscoding
方法设置转码参数 LiveTranscoding
时,不会触发此回调。 delegate void agora_gaming_rtc.OnAudioDeviceVolumeChangedHandler | ( | MEDIA_DEVICE_TYPE | deviceType, |
int | volume, | ||
bool | muted | ||
) |
回放、采集设备、或 app 的音量发生改变。
deviceType | 设备类型定义: MEDIA_DEVICE_TYPE 。 |
volume | 音量:范围 [0,255]。 |
muted |
|
delegate void agora_gaming_rtc.OnMediaEngineStartCallSuccessHandler | ( | ) |
媒体引擎成功启动的回调。
delegate void agora_gaming_rtc.OnMediaEngineLoadSuccessHandler | ( | ) |
媒体引擎成功加载的回调。
delegate void agora_gaming_rtc.OnAudioMixingStateChangedHandler | ( | AUDIO_MIXING_STATE_TYPE | state, |
AUDIO_MIXING_REASON_TYPE | reason | ||
) |
本地用户的音乐文件播放状态已改变回调。
该回调在音乐文件播放状态发生改变时触发,并报告当前的播放状态和播放状态改变的原因。
state | 当前音乐文件播放状态,详见 AUDIO_MIXING_STATE_TYPE |
reason | 音乐文件播放状态改变的原因,详见 AUDIO_MIXING_REASON_TYPE |
delegate void agora_gaming_rtc.OnFirstRemoteAudioDecodedHandler | ( | uint | uid, |
int | elapsed | ||
) |
已解码远端音频首帧的回调。
SDK 完成远端音频首帧解码,并发送给音频模块用以播放时,会触发此回调。有两种情况:
uid | 远端用户 ID。 |
elapsed | 从本地用户调用 JoinChannelByKey 直至该回调触发的延迟,单位为毫秒。 |
delegate void agora_gaming_rtc.OnLocalVideoStateChangedHandler | ( | LOCAL_VIDEO_STREAM_STATE | localVideoState, |
LOCAL_VIDEO_STREAM_ERROR | error | ||
) |
本地视频状态发生改变回调。
本地视频的状态发生改变时,SDK 会触发该回调返回当前的本地视频状态。在本地视频出现故障时,你可以通过该回调了解当前视频的状态以及出现故障的原因,方便排查问题。
localVideoState | 本地视频状态,详见: LOCAL_VIDEO_STREAM_STATE 。当本地视频状态为 LOCAL_VIDEO_STREAM_STATE_FAILED(3) 时,你可以在 error 参数中查看返回的错误原因。 |
error | 本地视频出错原因,详见: LOCAL_VIDEO_STREAM_ERROR 。 |
delegate void agora_gaming_rtc.OnRtmpStreamingStateChangedHandler | ( | string | url, |
RTMP_STREAM_PUBLISH_STATE | state, | ||
RTMP_STREAM_PUBLISH_ERROR | errCode | ||
) |
RTMP/RTMPS 推流状态发生改变回调。
该回调返回本地用户调用 AddPublishStreamUrl 或 RemovePublishStreamUrl 方法的结果。
RTMP/RTMPS 推流状态发生改变时,SDK 会触发该回调,并在回调中明确状态发生改变的 URL 地址及当前推流状态。该回调方便推流用户了解当前的推流状态;推流出错时,你可以通过返回的错误码了解出错的原因,方便排查问题。
url | 推流状态发生改变的 URL 地址。 |
state | 当前的推流状态,详见 RTMP_STREAM_PUBLISH_STATE 。 |
errCode | 推流错误信息,详见 RTMP_STREAM_PUBLISH_ERROR 。 |
delegate void agora_gaming_rtc.OnNetworkTypeChangedHandler | ( | NETWORK_TYPE | type | ) |
本地网络类型发生改变回调。
本地网络类型发生改变回调。你可以通过该回调获取正在使用的网络类型;当连接中断时,该回调能辨别引起中断的原因是网络切换还是网络条件不好。
type | 详见 NETWORK_TYPE 。 |
delegate void agora_gaming_rtc.OnLastmileProbeResultHandler | ( | LastmileProbeResult | result | ) |
通话前网络质量探测报告回调。
通话前网络上下行 Last mile 质量探测报告回调。在调用 StartLastmileProbeTest 之后,SDK 会在约 30 秒内返回该回调。
result | 上下行 Last mile 质量探测结果。 详见: LastmileProbeResult 。 |
delegate void agora_gaming_rtc.OnLocalUserRegisteredHandler | ( | uint | uid, |
string | userAccount | ||
) |
本地用户成功注册 User Account 回调。本地用户成功调用 RegisterLocalUserAccount 方法注册用户 User Account 或调用 JoinChannelByKey 加入频道后,SDK 会触发该回调,并告知本地用户的 UID 和 User Account。
uid | 本地用户的 UID。 |
userAccount | 本地用户的 User Account。 |
delegate void agora_gaming_rtc.OnUserInfoUpdatedHandler | ( | uint | uid, |
UserInfo | userInfo | ||
) |
远端用户信息已更新回调。
远端用户加入频道后, SDK 会获取到该远端用户的 UID 和 User Account,然后缓存一个包含了远端用户 UID 和 User Account 的 Mapping 表,并在本地触发该回调。
uid | 远端用户的 UID。 |
userInfo | 标识用户信息的 UserInfo 对象,包含用户 UID 和 User Account。 |
delegate void agora_gaming_rtc.OnLocalAudioStateChangedHandler | ( | LOCAL_AUDIO_STREAM_STATE | state, |
LOCAL_AUDIO_STREAM_ERROR | error | ||
) |
本地音频状态发生改变回调。
本地音频的状态发生改变时(包括本地麦克风录制状态和音频编码状态),SDK 会触发该回调报告当前的本地音频状态。在本地音频出现故障时,该回调可以帮助你了解当前音频的状态以及出现故障的原因,方便你排查问题。
error
参数中查看返回的错误信息。state | 当前的本地音频状态。详见 LOCAL_AUDIO_STREAM_STATE 。 |
error | 本地音频出错原因。详见 LOCAL_AUDIO_STREAM_ERROR 。 |
delegate void agora_gaming_rtc.OnRemoteAudioStateChangedHandler | ( | uint | uid, |
REMOTE_AUDIO_STATE | state, | ||
REMOTE_AUDIO_STATE_REASON | reason, | ||
int | elapsed | ||
) |
远端音频流状态发生改变回调。
远端用户/主播音频状态发生改变时,SDK 会触发该回调向本地用户报告当前的远端音频流状态。
uid | 发生音频状态改变的远端用户 ID。 |
state | 远端音频流状态。 详见 REMOTE_AUDIO_STATE 。 |
reason | 远端音频流状态改变的具体原因。详见 REMOTE_AUDIO_STATE_REASON 。 |
elapsed | 从本地用户调用 JoinChannelByKey 方法到发生本事件经历的时间,单位为 ms。 |
delegate void agora_gaming_rtc.OnLocalAudioStatsHandler | ( | LocalAudioStats | localAudioStats | ) |
通话中本地音频流的统计信息回调。
该回调描述本地设备发送音频流的统计信息。SDK 每 2 秒触发该回调一次。
localAudioStats | 本地音频统计数据。详见 LocalAudioStats 。 |
delegate void agora_gaming_rtc.OnChannelMediaRelayStateChangedHandler | ( | CHANNEL_MEDIA_RELAY_STATE | state, |
CHANNEL_MEDIA_RELAY_ERROR | code | ||
) |
跨频道媒体流转发状态发生改变回调。
当跨频道媒体流转发状态发生改变时,SDK 会触发该回调,并报告当前的转发状态以及相关的错误信息。
state | 跨频道媒体流转发状态。详见 CHANNEL_MEDIA_RELAY_STATE 。 |
code | 跨频道媒体流转发出错的错误码。详见 CHANNEL_MEDIA_RELAY_ERROR 。 |
delegate void agora_gaming_rtc.OnChannelMediaRelayEventHandler | ( | CHANNEL_MEDIA_RELAY_EVENT | events | ) |
跨频道媒体流转发事件回调。该回调报告跨频道媒体流转发过程中发生的事件。
events | 跨频道媒体流转发事件码。详见 CHANNEL_MEDIA_RELAY_EVENT 。 |
delegate void agora_gaming_rtc.OnFacePositionChangedHandler | ( | int | imageWidth, |
int | imageHeight, | ||
Rectangle | vecRectangle, | ||
int | vecDistance, | ||
int | numFaces | ||
) |
报告本地人脸检测结果。仅适用于 Android 和 iOS 平台。
调用 EnableFaceDetection(true) 开启本地人脸检测后,你可以通过该回调实时获取以下人脸检测的信息:
其中,人脸距设备屏幕的距离由 SDK 通过摄像头采集的画面大小和人脸在画面中的位置拟合计算得出。
vecDistance
)值有一定误差,请不要用它进行精确计算。imageWidth | 摄像头采集画面的宽度 (px)。 |
imageHeight | 摄像头采集画面的高度 (px)。 |
vecRectangle | 检测到的人脸信息:
|
vecDistance | 人脸距设备屏幕的距离 (cm)。 |
numFaces | 检测的人脸数量。如果为 0 ,则表示没有检测到人脸。 |
delegate void agora_gaming_rtc.OnRtmpStreamingEventHandler | ( | string | url, |
RTMP_STREAMING_EVENT | eventCode | ||
) |
RTMP/RTMPS 推流事件回调。
url | RTMP/RTMPS 推流 URL。 |
eventCode | RTMP/RTMPS 推流事件码。详见 RTMP_STREAMING_EVENT |
delegate void agora_gaming_rtc.OnAudioPublishStateChangedHandler | ( | string | channel, |
STREAM_PUBLISH_STATE | oldState, | ||
STREAM_PUBLISH_STATE | newState, | ||
int | elapseSinceLastState | ||
) |
音频发布状态改变回调。
channel | 频道名 |
oldState | 之前的发布状态,详见 STREAM_PUBLISH_STATE |
newState | 当前的发布状态,详见 STREAM_PUBLISH_STATE |
elapseSinceLastState | 两次状态变化时间间隔(毫秒) |
delegate void agora_gaming_rtc.OnVideoPublishStateChangedHandler | ( | string | channel, |
STREAM_PUBLISH_STATE | oldState, | ||
STREAM_PUBLISH_STATE | newState, | ||
int | elapseSinceLastState | ||
) |
视频发布状态改变回调。
channel | 频道名 |
oldState | 之前的发布状态,详见 STREAM_PUBLISH_STATE |
newState | 当前的发布状态,详见 STREAM_PUBLISH_STATE |
elapseSinceLastState | 两次状态变化时间间隔(毫秒) |
delegate void agora_gaming_rtc.OnAudioSubscribeStateChangedHandler | ( | string | channel, |
uint | uid, | ||
STREAM_SUBSCRIBE_STATE | oldState, | ||
STREAM_SUBSCRIBE_STATE | newState, | ||
int | elapseSinceLastState | ||
) |
音频订阅状态发生改变回调。
channel | 频道名 |
uid | 远端用户的 ID。 |
oldState | 之前的发布状态,详见 STREAM_SUBSCRIBE_STATE |
newState | 当前的发布状态,详见 STREAM_SUBSCRIBE_STATE |
elapseSinceLastState | 两次状态变化时间间隔(毫秒) |
delegate void agora_gaming_rtc.OnVideoSubscribeStateChangedHandler | ( | string | channel, |
uint | uid, | ||
STREAM_SUBSCRIBE_STATE | oldState, | ||
STREAM_SUBSCRIBE_STATE | newState, | ||
int | elapseSinceLastState | ||
) |
视频订阅状态发生改变回调。
channel | 频道名 |
uid | 远端用户的 ID。 |
oldState | 之前的发布状态,详见 STREAM_SUBSCRIBE_STATE |
newState | 当前的发布状态,详见 STREAM_SUBSCRIBE_STATE |
elapseSinceLastState | 两次状态变化时间间隔(毫秒) |
delegate void agora_gaming_rtc.OnFirstLocalAudioFramePublishedHandler | ( | int | elapsed | ) |
已发布本地音频首帧回调。
SDK 会在以下三种时机触发该回调:
MuteLocalAudioStream(false)
后。elapsed | 从调用 JoinChannelByKey 方法到触发该回调的时间间隔(毫秒)。 |
delegate void agora_gaming_rtc.OnFirstLocalVideoFramePublishedHandler | ( | int | elapsed | ) |
已发布本地视频首帧回调。
SDK 会在以下三种时机触发该回调:
MuteLocalVideoStream(false)
后。elapsed | 从调用 JoinChannelByKey 到触发该回调的时间间隔(毫秒)。 |
delegate void agora_gaming_rtc.OnUserSuperResolutionEnabledHandler | ( | uint | uid, |
bool | enabled, | ||
SUPER_RESOLUTION_STATE_REASON | reason | ||
) |
报告超分辨率功能是否成功开启。
调用 EnableRemoteSuperResolution后, SDK 触发该回调报告超分辨率是否成功开启。如果未成功开启,请通过 reason
排查问题。
uid | 远端用户 ID。 |
enabled | 是否对远端视频成功开启超分辨率:
|
reason | 超分辨率未成功开启的原因,详见 SUPER_RESOLUTION_STATE_REASON 。 |
delegate void agora_gaming_rtc.OnVirtualBackgroundSourceEnabledHandler | ( | bool | enabled, |
VIRTUAL_BACKGROUND_SOURCE_STATE_REASON | reason | ||
) |
报告虚拟背景是否成功开启。(beta 功能)
调用 EnableVirtualBackground 后,SDK 触发该回调报告虚拟背景是否成功开启。
enabled | 是否已成功开启虚拟背景:
|
reason | 虚拟背景开启出错的原因或开启成功的提示。详见 VIRTUAL_BACKGROUND_SOURCE_STATE_REASON 。 |
delegate void agora_gaming_rtc.OnRequestAudioFileInfoHandler | ( | AudioFileInfo | info, |
AUDIO_FILE_INFO_ERROR | error | ||
) |
音频文件信息回调。
成功调用 GetAudioFileInfo 后,SDK 会触发该回调并报告音频文件的路径、时长等信息。
info | 音频文件信息,详见 AudioFileInfo 。 |
error | 信息获取状态,详见 AUDIO_FILE_INFO_ERROR 。 |
delegate void agora_gaming_rtc.OnSnapshotTakenHandler | ( | string | channel, |
uint | uid, | ||
string | filePath, | ||
int | width, | ||
int | height, | ||
int | errCode | ||
) |
视频截图结果回调。
成功调用 TakeSnapshot 后,SDK 触发该回调报告截图是否成功和获取截图的详情。
channel | 频道名。 |
uid | 用户 ID。如果 uid 为 0,表示本地用户。 |
filePath | 截图的本地保存路径。 |
width | 图片宽度(px)。 |
height | 图片高度(px)。 |
errCode | 截图成功的提示或失败的原因。
|
delegate void agora_gaming_rtc.OnClientRoleChangeFailedHandler | ( | CLIENT_ROLE_CHANGE_FAILED_REASON | reason, |
CLIENT_ROLE_TYPE | currentRole | ||
) |
直播场景下切换用户角色失败回调。
SetClientRole
切换用户角色失败时,SDK 会触发该回调,报告切换失败的原因和当前的用户角色。 reason | 切换用户角色失败的原因。详见 CLIENT_ROLE_CHANGE_FAILED_REASON 。 |
currentRole | 当前的用户角色。详见 CLIENT_ROLE_TYPE 。 |
delegate void agora_gaming_rtc.OnAudioDeviceTestVolumeIndicationHandler | ( | AudioDeviceTestVolumeType | volumeType, |
int | volume | ||
) |
音频设备测试回调。
volumeType | 音量类型。详见 AudioDeviceTestVolumeType。 |
volume | 音量大小,范围为 [0,255]。 |
delegate void agora_gaming_rtc.OnProxyConnectedHandler | ( | string | channel, |
uint | uid, | ||
PROXY_TYPE | proxyType, | ||
string | localProxyIp, | ||
int | elapsed | ||
) |
代理连接状态回调。
SetCloudProxy
或 setLocalAccessPoint
设置代理或本地代理并成功加入频道后, SDK 会触发该回调报告用户 ID、连接的代理类型和从调用 JoinChannel
到触发该回调经过的时间等。 channel | 频道名称。 |
uid | 用户 ID。 |
proxyType | 连接上的代理类型。详见 PROXY_TYPE 。 |
localProxyIp | 本地代理的 IP 地址。当 proxyType 的值不为 3 时,该参数的值为空。 |
elapsed | 从调用 JoinChannel 到 SDK 触发该回调的经过的时间(毫秒)。 |
delegate void agora_gaming_rtc.OnWlAccMessageHandler | ( | WLACC_MESSAGE_REASON | reason, |
WLACC_SUGGEST_ACTION | action, | ||
string | wlAccMsg | ||
) |
报告 Wi-Fi 连接质量不佳的原因和改善 Wi-Fi 连接的操作建议。
action
和 wlAccMsg
,提示用户采取网络优化措施,以获得更好的音视频体验。 reason | Wi-Fi 连接质量不佳的原因。详见 WLACC_MESSAGE_REASON 。 |
action | 改善 Wi-Fi 连接质量的操作建议。详见 WLACC_SUGGEST_ACTION 。 |
wlAccMsg | 根据 action 的值提供的详细帮助信息:
|
delegate void agora_gaming_rtc.OnWlAccStatsHandler | ( | WlAccStats | currentStats, |
WlAccStats | averageStats | ||
) |
报告 Wi-Fi 加速效果。
currentStats | 当前的 Wi-Fi 加速效果。详见 WlAccStats。 |
averageStats | 自加入频道后平均的 Wi-Fi 加速效果。详见 WlAccStats。 |
delegate void agora_gaming_rtc.OnScreenCaptureInfoUpdatedHandler | ( | ScreenCaptureInfo | info | ) |
屏幕共享信息更新回调。
StartScreenCaptureByDisplayId
或 StartScreenCaptureByScreenRect
开启屏幕共享,并通过 excludeWindowList
屏蔽指定窗口时,如果窗口屏蔽失败,SDK 会触发该回调。 info | 屏幕共享信息。详见 ScreenCaptureInfo。 |
delegate void agora_gaming_rtc.ChannelOnWarningHandler | ( | string | channelId, |
int | warn, | ||
string | message | ||
) |
发生警告回调。
该回调方法表示 SDK 运行时出现了(网络或媒体相关的)警告。通常情况下,SDK 上报的警告信息 app 可以忽略,SDK 会自动恢复。比如和服务器失去连接时,SDK 可能会上报 WARN_OPEN_CHANNEL_TIMEOUT(106)
警告,同时自动尝试重连。
channelId | 频道 ID。 |
warn | 警告代码:Warning Code。 |
message | 警告描述。 |
delegate void agora_gaming_rtc.ChannelOnErrorHandler | ( | string | channelId, |
int | err, | ||
string | message | ||
) |
发生错误回调。
该回调方法表示 SDK 运行时出现了(网络或媒体相关的)错误。通常情况下,SDK 上报的错误意味着 SDK 无法自动恢复,需要 app 干预或提示用户。 比如启动通话失败时,SDK 会上报 ERR_START_CALL(1002)
错误。App 可以提示用户启动通话失败,并调用 LeaveChannel 退出频道。
channelId | 频道 ID。 |
err | 错误代码:Error Code。 |
message | 错误描述。 |
delegate void agora_gaming_rtc.ChannelOnJoinChannelSuccessHandler | ( | string | channelId, |
uint | uid, | ||
int | elapsed | ||
) |
加入频道回调。
该回调方法表示该客户端成功加入了指定的频道。
频道名基于 JoinChannel 中指定的 channelId
分配。
如果调用 JoinChannel
时并没有指定 uid
。服务器会自动分配一个。
channelId | 频道 ID。 |
uid | 用户 ID。如果 JoinChannel 中指定了 uid ,则此处返回该 ID;否则使用声网服务器自动分配的 ID。 |
elapsed | 从 JoinChannel 开始到发生此事件过去的时间(毫秒)。 |
delegate void agora_gaming_rtc.ChannelOnReJoinChannelSuccessHandler | ( | string | channelId, |
uint | uid, | ||
int | elapsed | ||
) |
重新加入频道回调。
有时候由于网络原因,客户端可能会和服务器失去连接,SDK 会进行自动重连,自动重连成功后触发此回调方法。
channelId | 频道 ID。 |
uid | 用户 ID。 |
elapsed | 从开始重连到重连成功的时间(毫秒)。 |
delegate void agora_gaming_rtc.ChannelOnLeaveChannelHandler | ( | string | channelId, |
RtcStats | rtcStats | ||
) |
离开频道回调。
app 调用 LeaveChannel 方法时,SDK 提示 app 离开频道成功。在该回调方法中,app 可以得到此次通话的总通话时长、SDK 收发数据的流量等信息。app 通过该回调获取通话时长以及 SDK 接收到或发送的数据统计信息。
channelId | 频道 ID。 |
rtcStats | 通话的统计数据: RtcStats 。 |
delegate void agora_gaming_rtc.ChannelOnClientRoleChangedHandler | ( | string | channelId, |
CLIENT_ROLE_TYPE | oldRole, | ||
CLIENT_ROLE_TYPE | newRole | ||
) |
直播场景下用户角色切换成功回调。
直播场景下,本地用户加入频道后调用 SetClientRole
成功改变用户角色时,例如主播切换为观众,或观众切换为主播,SDK 会触发该回调,报告切换前和切换后的角色。 *
channelId | 频道 ID。 |
oldRole | 切换前的角色: CLIENT_ROLE_TYPE 。 |
newRole | 切换后的角色: CLIENT_ROLE_TYPE 。 |
delegate void agora_gaming_rtc.ChannelOnUserJoinedHandler | ( | string | channelId, |
uint | uid, | ||
int | elapsed | ||
) |
远端用户(通信场景)/主播(直播场景)加入当前频道回调。
该回调在如下情况下会被触发:
uid
。uid
。channelId | 频道 ID。 |
uid | 新加入频道的远端用户/主播 ID。 |
elapsed | 从本地用户调用 JoinChannel 到该回调触发的延迟(毫秒)。 |
delegate void agora_gaming_rtc.ChannelOnUserOffLineHandler | ( | string | channelId, |
uint | uid, | ||
USER_OFFLINE_REASON | reason | ||
) |
远端用户(通信场景)/主播(直播场景)离开当前频道回调。
提示有远端用户/主播离开了频道(或掉线)。用户离开频道有两个原因,即正常离开和超时掉线:
channelId | 频道 ID。 |
uid | 离线用户或主播的用户 ID。 |
reason | 离线原因: USER_OFFLINE_REASON 。 |
delegate void agora_gaming_rtc.ChannelOnConnectionLostHandler | ( | string | channelId | ) |
网络连接丢失回调。
SDK 在调用 JoinChannel 后无论是否加入成功,只要 10 秒和服务器无法连接就会触发该回调。
与 OnConnectionInterruptedHandler 的区别是:
OnConnectionInterruptedHandler
回调一定是发生在加入频道成功后,且 SDK 刚失去和服务器连接超过 4 秒时触发。ChannelOnConnectionLostHandler
回调是无论之前加入频道是否成功,只要 10 秒内和服务器无法建立连接都会触发。如果 SDK 在断开连接后,20 分钟内还是没能重新加入频道,SDK 会停止尝试重连。
channelId | 频道 ID。 |
delegate void agora_gaming_rtc.ChannelOnRequestTokenHandler | ( | string | channelId | ) |
Token 已过期回调。
在调用 JoinChannel, 时如果指定了 Token,由于 Token 具有一定的时效,在通话过程中 SDK 可能由于网络原因和服务器失去连接,重连时可能需要新的 Token。
该回调通知 app 需要生成新的 Token,然后调用 JoinChannel
,并使用新的 Token 重新加入频道。
channelId | 频道 ID。 |
delegate void agora_gaming_rtc.ChannelOnTokenPrivilegeWillExpireHandler | ( | string | channelId, |
string | token | ||
) |
Token 服务即将过期回调。
在调用 JoinChannel 时如果指定了 Token,由于 Token 具有一定的时效,在通话过程中如果 Token 即将失效,SDK 会提前 30 秒触发该回调,提醒 app 更新 Token。 当收到该回调时,用户需要重新在服务端生成新的 Token,然后调用 RenewToken 将新生成的 Token 传给 SDK。
channelId | 频道 ID。 |
token | 即将服务失效的 Token。 |
delegate void agora_gaming_rtc.ChannelOnRtcStatsHandler | ( | string | channelId, |
RtcStats | rtcStats | ||
) |
当前通话统计回调。SDK 定期向 app 报告当前通话的统计信息,每两秒触发一次。
channelId | 频道 ID。 |
rtcStats | AgoraChannel 引擎统计数据: RtcStats 。 |
delegate void agora_gaming_rtc.ChannelOnNetworkQualityHandler | ( | string | channelId, |
uint | uid, | ||
int | txQuality, | ||
int | rxQuality | ||
) |
通话中每个用户的网络上下行 last mile 质量报告回调。
该回调描述每个用户在通话中的 last mile 网络状态,其中 last mile 是指设备到声网边缘服务器的网络状态。该回调每 2 秒触发一次。如果远端有多个用户,该回调每 2 秒会被触发多次。
channelId | 频道 ID。 |
uid | 用户 ID。表示该回调报告的是持有该 ID 的用户的网络质量。当 uid 为 0 时,返回的是本地用户的网络质量。 |
txQuality | 该用户的上行网络质量,基于发送码率、上行丢包率、平均往返时延和网络抖动计算。该值代表当前的上行网络质量,帮助判断是否可以支持当前设置的视频编码属性。假设上行码率是 1000 Kbps,那么支持直播场景下 640 × 480 的分辨率、15 fps 的帧率没有问题,但是支持 1280 × 720 的分辨率就会有困难。详见 QUALITY_TYPE 。 |
rxQuality | 该用户的下行网络质量,基于下行网络的丢包率、平均往返延时和网络抖动计算。详见 QUALITY_TYPE 。 |
delegate void agora_gaming_rtc.ChannelOnRemoteVideoStatsHandler | ( | string | channelId, |
RemoteVideoStats | remoteVideoStats | ||
) |
通话中远端视频流的统计信息回调。
该回调描述远端用户在通话中端到端的视频流统计信息,针对每个远端用户/主播每 2 秒触发一次。如果远端同时存在多个用户/主播,该回调每 2 秒会被触发多次。
channelId | 频道 ID。 |
remoteVideoStats | 远端视频统计数据。详见: RemoteVideoStats 。 |
delegate void agora_gaming_rtc.ChannelOnRemoteAudioStatsHandler | ( | string | channelId, |
RemoteAudioStats | remoteAudioStats | ||
) |
通话中远端音频流的统计信息回调。用于取代 OnAudioQualityHandler 回调。
该回调描述远端用户在通话中端到端的音频流统计信息。该回调函数针对每个发送音频流的远端用户/主播每 2 秒触发一次。如果远端有多个用户/主播发送音频流,该回调每 2 秒会被触发多次。
channelId | 频道 ID。 |
remoteAudioStats | 接收到的远端音频统计数据,详细定义见: RemoteAudioStats 。 |
delegate void agora_gaming_rtc.ChannelOnRemoteAudioStateChangedHandler | ( | string | channelId, |
uint | uid, | ||
REMOTE_AUDIO_STATE | state, | ||
REMOTE_AUDIO_STATE_REASON | reason, | ||
int | elapsed | ||
) |
远端音频流状态发生改变回调。
远端用户/主播音频状态发生改变时,SDK 会触发该回调向本地用户报告当前的远端音频流状态。
channelId | 频道 ID。 |
uid | 发生音频状态改变的远端用户 ID。 |
state | 远端音频流状态。 详见 REMOTE_AUDIO_STATE 。 |
reason | 远端音频流状态改变的具体原因。详见 REMOTE_AUDIO_STATE_REASON 。 |
elapsed | 从本地用户调用 JoinChannel 方法到发生本事件经历的时间,单位为 ms。 |
delegate void agora_gaming_rtc.ChannelOnActiveSpeakerHandler | ( | string | channelId, |
uint | uid | ||
) |
监测到最活跃用户回调。
成功调用 EnableAudioVolumeIndication 后,SDK 会持续监测音量 最大的远端用户,并统计该用户被判断为音量最大者的次数。当前时间段内,该次数累积最多的远端用户为最活跃的用户。
当频道内用户数量大于或等于 2 且有活跃用户时,SDK 会触发该回调并报告最活跃用户的 uid
。
ChannelOnActiveSpeakerHandler
回调。uid
。channelId | 频道 ID。 |
uid | 远端最活跃用户的 ID。 |
delegate void agora_gaming_rtc.ChannelOnVideoSizeChangedHandler | ( | string | channelId, |
uint | uid, | ||
int | width, | ||
int | height, | ||
int | rotation | ||
) |
本地或远端视频大小和旋转信息发生改变回调。
channelId | 频道 ID。 |
uid | 图像尺寸和旋转信息发生变化的用户的用户 ID(本地用户的 uid 为 0 )。 |
width | 视频流的宽度(像素)。 |
height | 视频流的高度(像素)。 |
rotation | 旋转信息 [0,360) 。 |
delegate void agora_gaming_rtc.ChannelOnRemoteVideoStateChangedHandler | ( | string | channelId, |
uint | uid, | ||
REMOTE_VIDEO_STATE | state, | ||
REMOTE_VIDEO_STATE_REASON | reason, | ||
int | elapsed | ||
) |
远端视频状态发生改变回调。
channelId | 频道 ID。 |
uid | 发生视频状态改变的远端用户 ID。 |
state | 远端视频流状态。详见 REMOTE_VIDEO_STATE 。 |
reason | 远端视频流状态改变的具体原因。详见 REMOTE_VIDEO_STATE_REASON 。 |
elapsed | 从本地用户调用 JoinChannel 方法到发生本事件经历的时间,单位为 ms。 |
delegate void agora_gaming_rtc.ChannelOnStreamMessageHandler | ( | string | channelId, |
uint | uid, | ||
int | streamId, | ||
string | data, | ||
int | length | ||
) |
接收到对方数据流消息的回调。
该回调表示本地用户收到了远端用户调用 SendStreamMessage 方法发送的流消息。
channelId | 频道 ID。 |
uid | 发送消息的用户 ID。 |
streamId | 数据流 ID。 |
data | 接收到的数据流。 |
length | 数据流长度。 |
delegate void agora_gaming_rtc.ChannelOnStreamMessageErrorHandler | ( | string | channelId, |
uint | uid, | ||
int | streamId, | ||
int | code, | ||
int | missed, | ||
int | cached | ||
) |
接收对方数据流消息发生错误的回调。
该回调表示本地用户未收到远端用户调用 SendStreamMessage 方法发送的流消息。
channelId | 频道 ID。 |
uid | 发送消息的用户 ID。 |
streamId | Stream ID。 |
code | 错误码: Error Code。 |
missed | 丢失的消息数量。 |
cached | 数据流中断时,后面缓存的消息数量。 |
delegate void agora_gaming_rtc.ChannelOnMediaRelayStateChangedHandler | ( | string | channelId, |
CHANNEL_MEDIA_RELAY_STATE | state, | ||
CHANNEL_MEDIA_RELAY_ERROR | code | ||
) |
跨频道媒体流转发状态发生改变回调。
当跨频道媒体流转发状态发生改变时,SDK 会触发该回调,并报告当前的转发状态以及相关的错误信息。
channelId | 频道 ID。 |
state | 跨频道媒体流转发状态。详见 CHANNEL_MEDIA_RELAY_STATE 。 |
code | 跨频道媒体流转发出错的错误码。详见 CHANNEL_MEDIA_RELAY_ERROR 。 |
delegate void agora_gaming_rtc.ChannelOnMediaRelayEventHandler | ( | string | channelId, |
CHANNEL_MEDIA_RELAY_EVENT | events | ||
) |
跨频道媒体流转发事件回调。该回调报告跨频道媒体流转发过程中发生的事件。
channelId | 频道 ID。 |
events | 跨频道媒体流转发事件码。详见 CHANNEL_MEDIA_RELAY_EVENT 。 |
delegate void agora_gaming_rtc.ChannelOnRtmpStreamingStateChangedHandler | ( | string | channelId, |
string | url, | ||
RTMP_STREAM_PUBLISH_STATE | state, | ||
RTMP_STREAM_PUBLISH_ERROR | errCode | ||
) |
RTMP 推流状态发生改变回调。
该回调返回本地用户调用 AddPublishStreamUrl 或 RemovePublishStreamUrl 方法的结果。
RTMP 推流状态发生改变时,SDK 会触发该回调,并在回调中明确状态发生改变的 URL 地址及当前推流状态。该回调方便推流用户了解当前的推流状态;推流出错时,你可以通过返回的错误码了解出错的原因,方便排查问题。
channelId | 频道 ID。 |
url | 推流状态发生改变的 URL 地址。 |
state | 当前的推流状态,详见 RTMP_STREAM_PUBLISH_STATE 。当推流状态为 RTMP_STREAM_PUBLISH_STATE_FAILURE(4) ,你可以在 errCode 参数中查看返回的错误信息。 |
errCode | 推流错误信息,详见 RTMP_STREAM_PUBLISH_ERROR_TYPE 。 |
delegate void agora_gaming_rtc.ChannelOnTranscodingUpdatedHandler | ( | string | channelId | ) |
旁路推流设置已被更新回调。
当 SetLiveTranscoding 方法中的直播参数 LiveTranscoding
更新时,ChannelOnTranscodingUpdatedHandler
回调会被触发并向主播报告更新信息。
SetLiveTranscoding
方法设置转码参数 LiveTranscoding
时,不会触发此回调。channelId | 频道 ID。 |
delegate void agora_gaming_rtc.ChannelOnRemoteSubscribeFallbackToAudioOnlyHandler | ( | string | channelId, |
uint | uid, | ||
bool | isFallbackOrRecover | ||
) |
远端订阅流已回退为音频流回调。
如果你调用了 SetRemoteSubscribeFallbackOption 接口并将 option
设置为 STREAM_FALLBACK_OPTION_AUDIO_ONLY(2),当下行网络环境不理想、仅接收远端音频流时,或当下行网络改善、恢复订阅音视频流时,会触发该回调。
channelId | 频道 ID。 |
uid | 远端用户的用户 ID。 |
isFallbackOrRecover |
|
delegate void agora_gaming_rtc.ChannelOnConnectionStateChangedHandler | ( | string | channelId, |
CONNECTION_STATE_TYPE | state, | ||
CONNECTION_CHANGED_REASON_TYPE | reason | ||
) |
网络连接状态已改变回调。该回调在网络连接状态发生改变的时候触发,并告知用户当前的网络连接状态和引起网络状态改变的原因。
channelId | 频道 ID。 |
state | 详见: CONNECTION_STATE_TYPE 。 |
reason | 详见: CONNECTION_CHANGED_REASON_TYPE 。 |
delegate void agora_gaming_rtc.ChannelOnLocalPublishFallbackToAudioOnlyHandler | ( | string | channelId, |
bool | isFallbackOrRecover | ||
) |
本地发布流已回退为音频流回调。
如果你调用了 SetLocalPublishFallbackOption 接口并将 option
设置为 STREAM_FALLBACK_OPTION_AUDIO_ONLY(2) ,当上行网络环境不理想、本地发布的媒体流回退为音频流时,或当上行网络改善、媒体流恢复为音视频流时,会触发该回调。
channelId | 频道 ID。 |
isFallbackOrRecover |
|
delegate void agora_gaming_rtc.ChannelOnRtmpStreamingEventHandler | ( | string | channelId, |
string | url, | ||
RTMP_STREAMING_EVENT | eventCode | ||
) |
RTMP/RTMPS 推流事件回调。
channelId | 频道 ID。 |
url | RTMP/RTMPS 推流 URL。 |
eventCode | CDN 推流事件码。详见 RTMP_STREAMING_EVENT |
delegate void agora_gaming_rtc.ChannelOnAudioPublishStateChangedHandler | ( | string | channelId, |
STREAM_PUBLISH_STATE | oldState, | ||
STREAM_PUBLISH_STATE | newState, | ||
int | elapseSinceLastState | ||
) |
音频发布状态改变回调。
channelId | 频道 ID。 |
oldState | 之前的发布状态,详见 STREAM_PUBLISH_STATE |
newState | 当前的发布状态,详见 STREAM_PUBLISH_STATE |
elapseSinceLastState | 两次状态变化时间间隔(毫秒)。 |
delegate void agora_gaming_rtc.ChannelOnVideoPublishStateChangedHandler | ( | string | channelId, |
STREAM_PUBLISH_STATE | oldState, | ||
STREAM_PUBLISH_STATE | newState, | ||
int | elapseSinceLastState | ||
) |
视频发布状态改变回调。
channelId | 频道 ID。 |
oldState | 之前的发布状态,详见 STREAM_PUBLISH_STATE |
newState | 当前的发布状态,详见 STREAM_PUBLISH_STATE |
elapseSinceLastState | 两次状态变化时间间隔(毫秒)。 |
delegate void agora_gaming_rtc.ChannelOnAudioSubscribeStateChangedHandler | ( | string | channelId, |
uint | uid, | ||
STREAM_SUBSCRIBE_STATE | oldState, | ||
STREAM_SUBSCRIBE_STATE | newState, | ||
int | elapseSinceLastState | ||
) |
音频订阅状态发生改变回调。
channelId | 频道 ID。 |
uid | 远端用户的 ID。 |
oldState | 之前的订阅状态,详见 STREAM_SUBSCRIBE_STATE |
newState | 当前的订阅状态,详见 STREAM_SUBSCRIBE_STATE |
elapseSinceLastState | 两次状态变化时间间隔(毫秒)。 |
delegate void agora_gaming_rtc.ChannelOnVideoSubscribeStateChangedHandler | ( | string | channelId, |
uint | uid, | ||
STREAM_SUBSCRIBE_STATE | oldState, | ||
STREAM_SUBSCRIBE_STATE | newState, | ||
int | elapseSinceLastState | ||
) |
视频订阅状态发生改变回调。
channelId | 频道 ID。 |
uid | 远端用户的 ID。 |
oldState | 之前的订阅状态,详见 STREAM_SUBSCRIBE_STATE |
newState | 当前的订阅状态,详见 STREAM_SUBSCRIBE_STATE |
elapseSinceLastState | 两次状态变化时间间隔(毫秒)。 |
delegate void agora_gaming_rtc.ChannelOnUserSuperResolutionEnabledHandler | ( | string | channelId, |
uint | uid, | ||
bool | enabled, | ||
SUPER_RESOLUTION_STATE_REASON | reason | ||
) |
报告超分辨率算法是否成功开启。
调用 EnableRemoteSuperResolution 后, SDK 触发该回调报告超级分辨率算法是否成功开启。如果未成功开启,请通过 reason
排查问题。
channelId | 频道 ID。 |
uid | 远端用户 ID。 |
enabled | 是否对远端视频成功开启超级分辨率算法:
|
reason | 超级分辨率算法未成功开启的原因,详见 SUPER_RESOLUTION_STATE_REASON |
delegate void agora_gaming_rtc.ChannelOnClientRoleChangeFailedHandler | ( | string | channelId, |
CLIENT_ROLE_CHANGE_FAILED_REASON | reason, | ||
CLIENT_ROLE_TYPE | currentRole | ||
) |
直播场景下切换用户角色失败回调。
SetClientRole
切换用户角色失败时,SDK 会触发该回调,报告切换失败的原因和当前的用户角色。 channelId | 频道 ID。 |
reason | 切换用户角色失败的原因。详见 CLIENT_ROLE_CHANGE_FAILED_REASON 。 |
currentRole | 当前的用户角色。详见 CLIENT_ROLE_TYPE 。 |
delegate void agora_gaming_rtc.ChannelOnFirstRemoteVideoFrameHandler | ( | string | channelId, |
uint | uid, | ||
int | width, | ||
int | height, | ||
int | elapsed | ||
) |
已显示首帧远端视频回调。
channelId | 频道 ID。 |
uid | 用户 ID,指定是哪个用户的视频流。 |
width | 视频流宽(px)。 |
height | 视频流高(px)。 |
elapsed | 从本地调用 JoinChannel 到发生此事件过去的时间(毫秒)。 |
delegate void agora_gaming_rtc.ChannelOnChannelProxyConnectedHandler | ( | string | channelId, |
uint | uid, | ||
PROXY_TYPE | proxyType, | ||
string | localProxyIp, | ||
int | elapsed | ||
) |
代理连接状态回调。
SetCloudProxy
或 setLocalAccessPoint 设置云代理或本地代理并成功加入频道后, SDK 会触发该回调报告用户 ID、连接的代理类型和从调用 JoinChannel
到触发该回调经过的时间等。 channelId | AgoraChannel 对象。 |
uid | 用户 ID。 |
proxyType | 连接上的代理类型。详见 PROXY_TYPE 。 |
localProxyIp | 本地代理的 IP 地址。当 proxyType 的值不为 3 时,该参数的值为空。 |
elapsed | 从调用 JoinChannel 到 SDK 触发该回调的经过的时间(毫秒)。 |