# TRTCCloudListener enum Null safety

监听器类型枚举

## Constants

onCameraDidReady → const TRTCCloudListener

  摄像头准备就绪。

  `const TRTCCloudListener(23)`
onConnectionLost → const TRTCCloudListener

  SDK 跟服务器的连接断开

  `const TRTCCloudListener(19)`
onConnectionRecovery → const TRTCCloudListener

  SDK 跟服务器的连接恢复。

  `const TRTCCloudListener(21)`
onConnectOtherRoom → const TRTCCloudListener

  请求跨房通话（主播 PK）的结果回调

  调用 TRTCCloud 中的 connectOtherRoom() 接口会将两个不同房间中的主播拉通视频通话，也就是所谓的“主播PK”功能。 调用者会收到 onConnectOtherRoom() 回调来获知跨房通话是否成功， 如果成功，两个房间中的所有用户都会收到 PK 主播的 onUserVideoAvailable() 回调。

  参数param：

  userId 要 PK 的目标主播 userid。

  errCode 错误码，ERR_NULL 代表切换成功，其他请参见错误码。

  errMsg 错误信息

  `const TRTCCloudListener(7)`
onDeviceChange → const TRTCCloudListener

  本地设备通断回调

  注意：该回调仅支持windows和Mac平台

  参数

  deviceId 设备 ID

  type 设备类型

  state 事件类型

  `const TRTCCloudListener(42)`
onDisConnectOtherRoom → const TRTCCloudListener

  结束跨房通话（主播 PK）的结果回调

  `const TRTCCloudListener(8)`
onEnterRoom → const TRTCCloudListener

  已加入房间的回调

  调用 TRTCCloud 中的 enterRoom() 接口执行进房操作后，会收到来自 SDK 的 onEnterRoom(result) 回调：

  如果加入成功，result 会是一个正数（result > 0），代表加入房间的时间消耗，单位是毫秒（ms）。

  如果加入失败，result 会是一个负数（result < 0），代表进房失败的错误码。

  参数param：

  result > 0 时为进房耗时（ms），result < 0 时为进房错误码

  `const TRTCCloudListener(2)`
onError → const TRTCCloudListener

  错误回调，表示 SDK 不可恢复的错误，一定要监听并分情况给用户适当的界面提示

  参数param：

  errCode 错误码

  errMsg 错误信息

  extraInfo 扩展信息字段，个别错误码可能会带额外的信息帮助定位问题

  `const TRTCCloudListener(0)`
onExitRoom → const TRTCCloudListener

  离开房间的事件回调

  调用 TRTCCloud 中的 exitRoom() 接口会执行退出房间的相关逻辑，例如释放音视频设备资源和编解码器资源等。 待资源释放完毕，SDK 会通过 onExitRoom() 回调通知到您。

  如果您要再次调用 enterRoom() 或者切换到其他的音视频 SDK，请等待 onExitRoom() 回调到来之后再执行相关操作。 否则可能会遇到音频设备被占用等各种异常问题。

  参数param：

  reason 离开房间原因，0：主动调用 exitRoom 退房；1：被服务器踢出当前房间；2：当前房间整个被解散。

  `const TRTCCloudListener(3)`
onFirstAudioFrame → const TRTCCloudListener

  开始播放远程用户的首帧音频（本地声音暂不通知）。

  参数param：

  userId 远程用户 ID。

  `const TRTCCloudListener(14)`
onFirstVideoFrame → const TRTCCloudListener

  开始渲染本地或远程用户的首帧画面

  如果 userId 为 null，代表开始渲染本地采集的摄像头画面，需要您先调用 startLocalPreview 触发。 如果 userId 不为 null，代表开始渲染远程用户的首帧画面，需要您先调用 startRemoteView 触发。

  只有当您调用 startLocalPreview()、startRemoteView() 或 startRemoteSubStreamView() 之后，才会触发该回调。

  参数param：

  userId 本地或远程用户 ID，如果 userId == null 代表本地，userId != null 代表远程。

  streamType 视频流类型：摄像头或屏幕分享。

  width 画面宽度

  height 画面高度

  `const TRTCCloudListener(13)`
onMicDidReady → const TRTCCloudListener

  麦克风准备就绪

  `const TRTCCloudListener(24)`
onMissCustomCmdMsg → const TRTCCloudListener

  自定义消息丢失回调

  实时音视频使用 UDP 通道，即使设置了可靠传输（reliable）也无法确保100%不丢失，只是丢消息概率极低，能满足常规可靠性要求。 在发送端设置了可靠传输（reliable）后，SDK 都会通过此回调通知过去时间段内（通常为5s）传输途中丢失的自定义消息数量统计信息。

  注意：

  只有在发送端设置了可靠传输（reliable），接收方才能收到消息的丢失回调

  参数param：

  userId 用户标识

  cmdID 数据流 ID

  errCode 错误码，当前版本为-1

  missed 丢失的消息数量

  `const TRTCCloudListener(27)`
onMusicObserverComplete → const TRTCCloudListener

  背景音乐已播放完毕

  `const TRTCCloudListener(36)`
onMusicObserverPlayProgress → const TRTCCloudListener

  背景音乐的播放进度

  `const TRTCCloudListener(35)`
onMusicObserverStart → const TRTCCloudListener

  背景音乐开始播放

  `const TRTCCloudListener(34)`
onNetworkQuality → const TRTCCloudListener

  网络质量：该回调每2秒触发一次，统计当前网络的上行和下行质量。

  userId 为本地用户 ID 代表自己当前的视频质量

  参数param：

  localQuality 上行网络质量

  remoteQuality 下行网络质量

  `const TRTCCloudListener(17)`
onRecvCustomCmdMsg → const TRTCCloudListener

  收到自定义消息回调

  当房间中的某个用户使用 sendCustomCmdMsg 发送自定义消息时，房间中的其它用户可以通过 onRecvCustomCmdMsg 接口接收消息

  参数param：

  userId 用户标识

  cmdID 命令 ID

  seq 消息序号

  message 消息数据

  `const TRTCCloudListener(26)`
onRecvSEIMsg → const TRTCCloudListener

  收到 SEI 消息的回调

  当房间中的某个用户使用 sendSEIMsg 发送数据时，房间中的其它用户可以通过 onRecvSEIMsg 接口接收数据。

  参数param：

  userId 用户标识

  message 数据

  `const TRTCCloudListener(28)`
onRemoteUserEnterRoom → const TRTCCloudListener

  有用户加入当前房间。

  出于性能方面的考虑，在两种不同的应用场景下，该通知的行为会有差别：

  通话场景（TRTCCloudDef.TRTC_APP_SCENE_VIDEOCALL 和 TRTCCloudDef.TRTC_APP_SCENE_AUDIOCALL）：该场景下用户没有角色的区别，任何用户进入房间都会触发该通知。

  直播场景（TRTCCloudDef.TRTC_APP_SCENE_LIVE 和 TRTCCloudDef.TRTC_APP_SCENE_VOICE_CHATROOM）：该场景不限制观众的数量，如果任何用户进出都抛出回调会引起很大的性能损耗，所以该场景下只有主播进入房间时才会触发该通知，观众进入房间不会触发该通知。

  参数param：

  userId 用户标识

  `const TRTCCloudListener(5)`
onRemoteUserLeaveRoom → const TRTCCloudListener

  有用户离开当前房间。

  与 onRemoteUserEnterRoom 相对应，在两种不同的应用场景下，该通知的行为会有差别：

  通话场景（TRTCCloudDef.TRTC_APP_SCENE_VIDEOCALL 和 TRTCCloudDef.TRTC_APP_SCENE_AUDIOCALL）：该场景下用户没有角色的区别，任何用户的离开都会触发该通知。

  直播场景（TRTCCloudDef.TRTC_APP_SCENE_LIVE 和 TRTCCloudDef.TRTC_APP_SCENE_VOICE_CHATROOM）：只有主播离开房间时才会触发该通知，观众离开房间不会触发该通知。

  参数param：

  userId 用户标识

  reason 离开原因，0表示用户主动退出房间，1表示用户超时退出，2表示被踢出房间。

  `const TRTCCloudListener(6)`
onScreenCapturePaused → const TRTCCloudListener

  当屏幕分享暂停时，SDK 会通过此回调通知

  参数

  reason 原因，0：用户主动暂停；1：屏幕窗口不可见暂停

  注意：回调的值只针对ios生效

  `const TRTCCloudListener(39)`
onScreenCaptureResumed → const TRTCCloudListener

  当屏幕分享恢复时，SDK 会通过此回调通知

  参数

  reason 恢复原因，0：用户主动恢复；1：屏幕窗口恢复可见从而恢复分享

  注意：回调的值只针对ios生效

  `const TRTCCloudListener(40)`
onScreenCaptureStarted → const TRTCCloudListener

  当屏幕分享开始时，SDK 会通过此回调通知

  `const TRTCCloudListener(38)`
onScreenCaptureStoped → const TRTCCloudListener

  当屏幕分享停止时，SDK 会通过此回调通知

  参数

  reason 停止原因，0：用户主动停止；1：屏幕窗口关闭导致停止

  `const TRTCCloudListener(41)`
onSendFirstLocalAudioFrame → const TRTCCloudListener

  首帧本地音频数据已经被送出

  SDK 会在 enterRoom() 并 startLocalAudio() 成功后开始麦克风采集，并将采集到的声音进行编码。 当 SDK 成功向云端送出第一帧音频数据后，会抛出这个回调事件。

  `const TRTCCloudListener(16)`
onSendFirstLocalVideoFrame → const TRTCCloudListener

  首帧本地音频数据已经被送出。

  SDK 会在 enterRoom() 并 startLocalPreview() 成功后开始摄像头采集，并将采集到的画面进行编码。 当 SDK 成功向云端送出第一帧视频数据后，会抛出这个回调事件。

  参数param：

  streamType 视频流类型，大画面、小画面或辅流画面（屏幕分享）

  `const TRTCCloudListener(15)`
onSetMixTranscodingConfig → const TRTCCloudListener

  设置云端的混流转码参数的回调，对应于 TRTCCloud 中的 setMixTranscodingConfig() 接口。

  参数param：

  errCode 0表示成功，其余值表示失败

  errMsg 具体错误原因

  `const TRTCCloudListener(33)`
onSnapshotComplete → const TRTCCloudListener

  截图完成时回调

  参数

  errorCode为0表示截图成功，其他值表示失败

  `const TRTCCloudListener(37)`
onSpeedTest → const TRTCCloudListener

  服务器测速的回调，SDK 对多个服务器 IP 做测速，每个 IP 的测速结果通过这个回调通知。

  参数param：

  currentResult 当前完成的测速结果

  finishedCount 已完成测速的服务器数量

  totalCount 需要测速的服务器总数量

  `const TRTCCloudListener(22)`
onStartPublishCDNStream → const TRTCCloudListener

  启动旁路推流到 CDN 完成的回调

  对应于 TRTCCloud 中的 startPublishCDNStream() 接口

  注意：Start 回调如果成功，只能说明转推请求已经成功告知给腾讯云，如果目标 CDN 有异常，还是有可能会转推失败。

  参数param：

  errCode 0表示成功，其余值表示失败

  errMsg 具体错误原因

  `const TRTCCloudListener(31)`
onStartPublishing → const TRTCCloudListener

  开始向腾讯云的直播 CDN 推流的回调，对应于 TRTCCloud 中的 startPublishing() 接口

  参数param：

  errCode 0表示成功，其余值表示失败

  errMsg 具体错误原因

  `const TRTCCloudListener(29)`
onStatistics → const TRTCCloudListener

  技术指标统计回调

  如果您是熟悉音视频领域相关术语，可以通过这个回调获取 SDK 的所有技术指标。 如果您是首次开发音视频相关项目，可以只关注 onNetworkQuality 回调。

  注意：每2秒回调一次

  参数param：

  statics 状态数据

  `const TRTCCloudListener(18)`
onStopPublishCDNStream → const TRTCCloudListener

  停止旁路推流到 CDN 完成的回调

  对应于 TRTCCloud 中的 stopPublishCDNStream() 接口

  参数param：

  errCode 0表示成功，其余值表示失败

  errMsg 具体错误原因

  `const TRTCCloudListener(32)`
onStopPublishing → const TRTCCloudListener

  停止向腾讯云的直播 CDN 推流的回调，对应于 TRTCCloud 中的 stopPublishing() 接口

  参数param：

  errCode 0表示成功，其余值表示失败

  errMsg 具体错误原因

  `const TRTCCloudListener(30)`
onSwitchRole → const TRTCCloudListener

  切换角色的事件回调

  调用 TRTCCloud 中的 switchRole() 接口会切换主播和观众的角色，该操作会伴随一个线路切换的过程， 待 SDK 切换完成后，会抛出 onSwitchRole() 事件回调。

  参数param：

  errCode 错误码，0代表切换成功

  errMsg 错误信息。

  `const TRTCCloudListener(4)`
onSwitchRoom → const TRTCCloudListener

  切换房间 (switchRoom) 的结果回调

  参数param：

  errCode 错误码

  errMsg 错误信息

  `const TRTCCloudListener(9)`
onTestMicVolume → const TRTCCloudListener

  麦克风测试音量回调

  麦克风测试接口 startMicDeviceTest 会触发这个回调

  注意：该回调仅支持windows和Mac平台

  参数：

  volume 音量值，取值范围0 - 100

  `const TRTCCloudListener(43)`
onTestSpeakerVolume → const TRTCCloudListener

  扬声器测试音量回调

  扬声器测试接口 startSpeakerDeviceTest 会触发这个回调

  注意：该回调仅支持windows和Mac平台

  参数：

  volume 音量值，取值范围0 - 100

  `const TRTCCloudListener(44)`
onTryToReconnect → const TRTCCloudListener

  SDK 尝试重新连接到服务器。

  `const TRTCCloudListener(20)`
onUserAudioAvailable → const TRTCCloudListener

  远端用户是否存在可播放的音频数据

  参数param：

  userId 用户标识

  available 声音是否开启

  `const TRTCCloudListener(12)`
onUserSubStreamAvailable → const TRTCCloudListener

  远端用户是否存在可播放的辅路画面（一般用于屏幕分享）

  参数param：

  userId 用户标识

  available 屏幕分享是否开启

  `const TRTCCloudListener(11)`
onUserVideoAvailable → const TRTCCloudListener

  远端用户是否存在可播放的主路画面（一般用于摄像头）

  当您收到 onUserVideoAvailable(userId, true) 通知时，表示该路画面已经有可用的视频数据帧到达。 此时，您需要调用 startRemoteView(userid) 接口加载该用户的远程画面。 然后，您会收到名为 onFirstVideoFrame(userid) 的首帧画面渲染回调。

  当您收到 onUserVideoAvailable(userId, false) 通知时，表示该路远程画面已经被关闭，可能由于该用户调用了 muteLocalVideo() 或 stopLocalPreview()。

  参数param：

  userId 用户标识

  available 画面是否开启

  `const TRTCCloudListener(10)`
onUserVoiceVolume → const TRTCCloudListener

  用于提示音量大小的回调，包括每个 userId 的音量和远端总音量。

  您可以通过调用 TRTCCloud 中的 enableAudioVolumeEvaluation 接口来开关这个回调或者设置它的触发间隔。 需要注意的是，调用 enableAudioVolumeEvaluation 开启音量回调后，无论频道内是否有人说话，都会按设置的时间间隔调用这个回调; 如果没有人说话，则 userVolumes 为空，totalVolume 为0。

  注意：userId 为本地用户 ID 时表示自己的音量，userVolumes 内仅包含正在说话（音量不为0）的用户音量信息。

  参数param：

  userVolumes 所有正在说话的房间成员的音量，取值范围0 - 100。

  totalVolume 所有远端成员的总音量, 取值范围0 - 100。

  `const TRTCCloudListener(25)`
onWarning → const TRTCCloudListener

  警告回调，用于告知您一些非严重性问题，例如出现卡顿或者可恢复的解码失败。

  参数param：

  warningCode 错误码

  warningMsg 警告信息

  extraInfo 扩展信息字段，个别警告码可能会带额外的信息帮助定位问题

  `const TRTCCloudListener(1)`
values → const List<TRTCCloudListener>

  A constant List of the values in this enum, in order of their declaration.

  `const List<TRTCCloudListener>`

## Properties

hashCode → int
  The hash code for this object. [...]
  read-only, inherited
index → int

  The integer index of this enum.

  final
runtimeType → Type
  A representation of the runtime type of the object.
  read-only, inherited

## Methods

noSuchMethod(Invocation invocation) → dynamic
  Invoked when a non-existent method or property is accessed. [...]
  inherited
toString() → String
  A string representation of this object. [...]
  override

## Operators

operator ==(Object other) → bool
  The equality operator. [...]
  inherited