NERtc Unity SDK  V4.5.907
Classes | Enumerations | Functions
nertc Namespace Reference

Classes

class  IAudioDeviceManager
 
class  AudioDeviceManager
 
class  IDeviceCollection
 
class  DeviceCollection
 
class  IVideoDeviceManager
 
class  VideoDeviceManager
 
interface  IAudioFrameObserver
 
class  RtcEngine
 
interface  IMediaStatsObserver
 
class  RtcChannel
 
interface  IVideoFrameCallback
 
interface  IVideoFrameRawDataCallback
 
interface  IVideoFrameTextureCallback
 
class  VideoFrameProcessor
 
class  VideoRawDataManager
 
class  YuvHelper
 
class  RtcConstants
 
class  RtcEngineContext
 
struct  RtcLiveStreamTaskOption
 
struct  RtcLiveStreamUserTranscoding
 
struct  RtcLiveStreamImageInfo
 
class  RtcLiveStreamLayout
 
struct  RtcLiveStreamConfig
 
class  RtcLiveStreamTaskInfo
 
struct  RtcCameraCaptureConfig
 
struct  RtcDeviceInfo
 
struct  RtcAudioVolumeInfo
 
struct  RtcStats
 
struct  RtcVideoLayerSendStats
 
struct  RtcVideoSendStats
 
struct  RtcVideoLayerRecvStats
 
struct  RtcVideoRecvStats
 
struct  RtcAudioSendStats
 
struct  RtcAudioRecvStats
 
struct  RtcNetworkQualityInfo
 
struct  RtcVideoConfig
 
struct  RtcRectangle
 
struct  RtcVideoDimensions
 
class  RtcScreenCaptureParameters
 
class  RtcVideoCanvas
 
struct  RtcAudioFrameRequestFormat
 
struct  RtcAudioFormat
 
struct  RtcAudioFrame
 
struct  RtcExternalVideoFrame
 
struct  RtcVideoFrame
 
struct  RtcCreateAudioMixingOption
 
struct  RtcCreateAudioEffectOption
 
struct  RtcTextWatermarkConfig
 
struct  RtcTimestampWatermarkConfig
 
struct  RtcChannelMediaRelayInfo
 
class  RtcChannelMediaRelayConfig
 
struct  RtcImageWatermarkConfig
 
class  RtcCanvasWatermarkConfig
 
struct  RtcServerAddresses
 
struct  RtcEncryptionConfig
 
struct  RtcLastmileProbeConfig
 
struct  RtcLastmileProbeOneWayResult
 
struct  RtcLastmileProbeResult
 
struct  RtcSpatializerPositionInfo
 
struct  RtcSpatializerRoomProperty
 
struct  RtcCameraFocusAndExposureInfo
 
class  IRtcChannel
 
class  IRtcEngine
 
class  Dispatcher
 
class  MarshalExtension
 

Enumerations

enum class  RtcErrorCode : int {
  kNERtcNoError = 0 , kNERtcErrChannelReserveAuthFailed = 401 , kNERtcErrChannelReservePermissionDenied = 403 , kNERtcErrChannelReserveChannelNotExist = 404 ,
  kNERtcErrChannelReserveUserIdNotExist = 405 , kNERtcErrChannelReserveTimeOut = 408 , kNERtcErrChannelReserveErrorParam = 414 , kNERtcErrChannelReserveErrorAppKey = 417 ,
  kNERtcErrChannelReserveUnknownError = 500 , kNERtcErrChannelReserveMoreThanTwoUser = 600 , kNERtcErrChannelReserveServerFail = 601 , kNERtcErrLsTaskRequestInvalid = 1301 ,
  kNERtcErrLsTaskIsInvaild = 1400 , kNERtcErrLsTaskRoomExited = 1401 , kNERtcErrLsTaskNumLimit = 1402 , kNERtcErrLsTaskDuplicateId = 1403 ,
  kNERtcErrLsTaskNotFound = 1404 , kNERtcErrLsTaskRequestErr = 1417 , kNERtcErrLsTaskInternalServerErr = 1500 , kNERtcErrLsTaskInvalidLayout = 1501 ,
  kNERtcErrLsTaskUserPicErr = 1512 , kNERtcErrFatal = 30001 , kNERtcErrOutOfMemory = 30002 , kNERtcErrInvalidParam = 30003 ,
  kNERtcErrNotSupported = 30004 , kNERtcErrInvalidState = 30005 , kNERtcErrLackOfResource = 30006 , kNERtcErrInvalidIndex = 30007 ,
  kNERtcErrDeviceNotFound = 30008 , kNERtcErrInvalidDeviceSourceID = 30009 , kNERtcErrInvalidVideoProfile = 30010 , kNERtcErrCreateDeviceSourceFail = 30011 ,
  kNERtcErrInvalidRender = 30012 , kNERtcErrDevicePreviewAlreadyStarted = 30013 , kNERtcErrTransmitPendding = 30014 , kNERtcErrConnectFail = 30015 ,
  kNERtcErrCreateDumpFileFail = 30016 , kNERtcErrStartDumpFail = 30017 , kNERtcErrDesktopCaptureInvalidState = 30020 , kNERtcErrDesktopCaptureInvalidParam = 30021 ,
  kNERtcErrDesktopCaptureNotReady = 30022 , kNERtcErrChannelAlreadyJoined = 30100 , kNERtcErrChannelNotJoined = 30101 , kNERtcErrChannelRepleatedlyLeave = 30102 ,
  kNERtcErrRequestJoinChannelFail = 30103 , kNERtcErrSessionNotFound = 30104 , kNERtcErrUserNotFound = 30105 , kNERtcErrInvalidUserID = 30106 ,
  kNERtcErrMediaNotStarted = 30107 , kNERtcErrSourceNotFound = 30108 , kNERtcErrSwitchChannelInvalidState = 30109 , kNERtcErrChannelMediaRelayInvalidState = 30110 ,
  kNERtcErrChannelMediaRelayPermissionDenied = 30111 , kNERtcErrChannelMediaRelayStopFailed = 30112 , kNERtcErrEncryptNotSuitable = 30113 , kNERtcErrConnectionNotFound = 30200 ,
  kNERtcErrStreamNotFound = 30201 , kNERtcErrAddTrackFail = 30202 , kNERtcErrTrackNotFound = 30203 , kNERtcErrMediaConnectionDisconnected = 30204 ,
  kNERtcErrSignalDisconnected = 30205 , kNERtcErrServerKicked = 30206 , kNERtcErrKickedForRoomClosed = 30207 , kNERtcErrChannelLeaveBySwitchAction = 30208 ,
  kNERtcErrChannelLeaveByDuplicateUidLogin = 30209 , kNERtcErrOSAuthorize = 30300 , kNERtcErrSEIExceedMaxBufferSize = 30301 , kNERtcErrSEIExceedMaxDataLimit = 30302 ,
  kNERtcRuntimeErrADMNoAuthorize = 40000 , kNERtcRuntimeErrADMInitRecordingFailed = 40001 , kNERtcRuntimeErrADMStartRecordingFailed = 40002 , kNERtcRuntimeErrADMStopRecordingFailed = 40003 ,
  kNERtcRuntimeErrADMInitPlayoutFailed = 40004 , kNERtcRuntimeErrADMStartPlayoutFailed = 40005 , kNERtcRuntimeErrADMStopPlayoutFailed = 40006 , kNERtcRuntimeErrOpenSLRegisterPlayerFailed = 40007 ,
  kNERtcRuntimeErrVDMNoAuthorize = 50000 , kNERtcRuntimeErrVDMNotScreenUseSubStream = 50001 , kNERtcRuntimeErrVDMCameraDisconnect = 50303 , kNERtcRuntimeErrVDMCameraFreezed = 50304 ,
  kNERtcRuntimeErrVDMCameraUnknownError = 50305 , kNERtcRuntimeErrVDMCameraNoFrame = 50306 , kNERtcRuntimeErrVDMCameraCreateFail = 50307 , kNERtcRuntimeErrScreenCaptureNoAuthorize = 60000 ,
  kinva = 60001
}
 
enum class  RtcAudioMixingErrorCode : int {
  kNERtcAudioMixingErrorOK = 0 , kNERtcAudioMixingErrorFatal = 1 , kNERtcAudioMixingErrorCanNotOpen , kNERtcAudioMixingErrorDecode ,
  kNERtcAudioMixingErrorInterrupt , kNERtcAudioMixingErrorHttpNotFound , kNERtcAudioMixingErrorOpen , kNERtcAudioMixingErrorNInfo ,
  kNERtcAudioMixingErrorNStream , kNERtcAudioMixingErrorNCodec , kNERtcAudioMixingErrorNMem , kNERtcAudioMixingErrorCodecOpen ,
  kNERtcAudioMixingErrorInvalidInfo , kNERtcAudioMixingErrorOpenTimeout , kNERtcAudioMixingErrorIoTimeout , kNERtcAudioMixingErrorIo
}
 
enum class  RtcWarnCode : int {
  kNERtcWarnInvalidView = 100 , kNERtcWarnInitVideo = 101 , kNERtcWarnPending = 102 , kNERtcWarnNoFrame = 103 ,
  kNERtcWarningChannelAbilityNotMatch = 406 , kNERtcWarnADMRuntimePlayoutWarning = 1001 , kNERtcWarnADMRuntimeRecordingWarning = 1002 , kNERtcWarnADMRecordAudioSilence = 1003 ,
  kNERtcWarnADMPlayoutMalfunction = 1004 , kNERtcWarnADMRecordMalfunction = 1005 , kNERtcWarnADMRecordAudioLowLevel = 1006 , kNERtcWarnADMPlayoutAudioLowLevel = 1007 ,
  kNERtcWarnAPMHowling = 1008 , kNERtcWarnADMGlitchState = 1009 , kNERtcWarnADMImproperSettings = 1010 , kNERtcWarnADMWinCoreNoDataReadyEvent = 2000 ,
  kNERtcWarnADMWinCoreNoRecordingDevice = 2001 , kNERtcWarnADMWinCoreNoPlayoutDevice = 2002 , kNERtcWarnADMWinCoreImproperCaptureRelease = 2003
}
 
enum class  RtcInterfaceIdType : int { kNERtcIIDAudioDeviceManager = 1 , kNERtcIIDVideoDeviceManager = 2 }
 
enum class  RtcClientRole : int { kNERtcClientRoleBroadcaster = 0 , kNERtcClientRoleAudience = 1 }
 
enum class  RtcChannelProfileType : int { kNERtcChannelProfileCommunication = 0 , kNERtcChannelProfileLiveBroadcasting = 1 }
 
enum class  RtcMediaPriorityType : int { kNERtcMediaPriorityHigh = 50 , kNERtcMediaPriorityNormal = 100 }
 
enum class  RtcLiveStreamLayoutMode : int {
  kNERtcLayoutFloatingRightVertical = 0 , kNERtcLayoutFloatingLeftVertical , kNERtcLayoutSplitScreen , kNERtcLayoutSplitScreenScaling ,
  kNERtcLayoutCustom , kNERtcLayoutAudioOnly
}
 
enum class  RtcLiveStreamMode : int { kNERtcLsModeVideo = 0 , kNERtcLsModeAudio = 1 }
 
enum class  RtcLiveStreamVideoScaleMode : int { kNERtcLsModeVideoScaleFit = 0 , kNERtcLsModeVideoScaleCropFill = 1 }
 
enum class  RtcLiveStreamAudioSampleRate : int { kNERtcLiveStreamAudioSampleRate32000 = 32000 , kNERtcLiveStreamAudioSampleRate44100 = 44100 , kNERtcLiveStreamAudioSampleRate48000 = 48000 }
 
enum class  RtcLiveStreamAudioCodecProfile : int { kNERtcLiveStreamAudioCodecProfileLCAAC = 0 , kNERtcLiveStreamAudioCodecProfileHEAAC = 1 }
 
enum class  RtcLiveStreamStateCode : int { kNERtcLsStatePushing = 505 , kNERtcLsStatePushFail = 506 , kNERtcLsStatePushStopped = 511 , kNERtcLsStateImageError = 512 }
 
enum class  RtcOsCategory : int { kNERtcOSiOS = 1 , kNERtcOSAndroid = 2 , kNERtcOSPC = 3 , kNERtcOSWebRTC = 4 }
 
enum class  RtcAudioProfileType : int {
  kNERtcAudioProfileDefault = 0 , kNERtcAudioProfileStandard = 1 , kNERtcAudioProfileStandardExtend = 2 , kNERtcAudioProfileMiddleQuality = 3 ,
  kNERtcAudioProfileMiddleQualityStereo = 4 , kNERtcAudioProfileHighQuality = 5 , kNERtcAudioProfileHighQualityStereo = 6
}
 
enum class  RtcAudioScenarioType : int { kNERtcAudioScenarioDefault = 0 , kNERtcAudioScenarioSpeech = 1 , kNERtcAudioScenarioMusic = 2 }
 
enum class  RtcVoiceChangerType : int {
  kNERtcVoiceChangerOff = 0 , kNERtcVoiceChangerRobot = 1 , kNERtcVoiceChangerGaint = 2 , kNERtcVoiceChangerHorror = 3 ,
  kNERtcVoiceChangerMature = 4 , kNERtcVoiceChangerManToWoman = 5 , kNERtcVoiceChangerWomanToMan = 6 , kNERtcVoiceChangerManToLoli = 7 ,
  kNERtcVoiceChangerWomanToLoli = 8
}
 
enum class  RtcVoiceBeautifierType : int {
  kNERtcVoiceBeautifierOff = 0 , kNERtcVoiceBeautifierMuffled = 1 , kNERtcVoiceBeautifierMellow = 2 , kNERtcVoiceBeautifierClear = 3 ,
  kNERtcVoiceBeautifierMagnetic = 4 , kNERtcVoiceBeautifierRecordingstudio = 5 , kNERtcVoiceBeautifierNature = 6 , kNERtcVoiceBeautifierKTV = 7 ,
  kNERtcVoiceBeautifierRemote = 8 , kNERtcVoiceBeautifierChurch = 9 , kNERtcVoiceBeautifierBedroom = 10 , kNERtcVoiceBeautifierLive = 11
}
 
enum class  RtcVoiceEqualizationBand : int {
  kNERtcVoiceEqualizationBand31 = 0 , kNERtcVoiceEqualizationBand62 = 1 , kNERtcVoiceEqualizationBand125 = 2 , kNERtcVoiceEqualizationBand250 = 3 ,
  kNERtcVoiceEqualizationBand500 = 4 , kNERtcVoiceEqualizationBand1K = 5 , kNERtcVoiceEqualizationBand2K = 6 , kNERtcVoiceEqualizationBand4K = 7 ,
  kNERtcVoiceEqualizationBand8K = 8 , kNERtcVoiceEqualizationBand16K = 9
}
 
enum class  RtcCameraPreference : int { kNERtcCameraOutputDefault = 0 , kNERtcCameraOutputQuality = 1 , kNERtcCameraOutputManual = 2 }
 
enum class  RtcVideoProfileType : int {
  kNERtcVideoProfileLowest = 0 , kNERtcVideoProfileLow = 1 , kNERtcVideoProfileStandard = 2 , kNERtcVideoProfileHD720P = 3 ,
  kNERtcVideoProfileHD1080P = 4 , kNERtcVideoProfileNone = 5 , kNERtcVideoProfileMAX = kNERtcVideoProfileHD1080P , kNERtcVideoProfileFake = 6
}
 
enum class  RtcRemoteVideoStreamType : int { kNERtcRemoteVideoStreamTypeHigh = 0 , kNERtcRemoteVideoStreamTypeLow = 1 , kNERtcRemoteVideoStreamTypeNone = 2 }
 
enum class  RtcAudioDeviceType : int { kNERtcAudioDeviceUnknown = 0 , kNERtcAudioDeviceRecord , kNERtcAudioDevicePlayout }
 
enum class  RtcAudioDeviceState : int { kNERtcAudioDeviceActive = 0 , kNERtcAudioDeviceUnactive }
 
enum class  RtcAudioDeviceTransportType : int {
  kNERtcAudioDeviceTransportTypeUnknown = 0 , kNERtcAudioDeviceTransportTypeBluetooth = 1 , kNERtcAudioDeviceTransportTypeBluetoothA2DP = 2 , kNERtcAudioDeviceTransportTypeBluetoothLE = 3 ,
  kNERtcAudioDeviceTransportTypeUSB = 4 , kNERtcAudioDeviceTransportTypeHDMI = 5 , kNERtcAudioDeviceTransportTypeBuiltIn = 6 , kNERtcAudioDeviceTransportTypeThunderbolt = 7 ,
  kNERtcAudioDeviceTransportTypeAirPlay = 8 , kNERtcAudioDeviceTransportTypeVirtual = 9 , kNERtcAudioDeviceTransportTypeOther = 10
}
 
enum class  RtcVideoDeviceTransportType : int { kNERtcVideoDeviceTransportTypeUnknown = 0 , kNERtcVideoDeviceTransportTypeUSB = 1 , kNERtcVideoDeviceTransportTypeVirtual = 2 , kNERtcVideoDeviceTransportTypeOther = 3 }
 
enum class  RtcVideoDeviceType : int { kNERtcVideoDeviceUnknown = 0 , kNERtcVideoDeviceCapture }
 
enum class  RtcVideoDeviceState : int { kNERtcVideoDeviceAdded = 0 , kNERtcVideoDeviceRemoved }
 
enum class  RtcVideoScalingMode : int { kNERtcVideoScaleFit = 0 , kNERtcVideoScaleFullFill = 1 , kNERtcVideoScaleCropFill = 2 }
 
enum class  RtcVideoMirrorMode : int { kNERtcVideoMirrorModeAuto = 0 , kNERtcVideoMirrorModeEnabled = 1 , kNERtcVideoMirrorModeDisabled = 2 }
 
enum class  RtcVideoOrientationMode : int { kNERtcVideoOutputOrientationModeAdaptative = 0 , kNERtcVideoOutputOrientationModeFixedLandscape = 1 , kNERtcVideoOutputOrientationModeFixedPortrait = 2 }
 
enum class  RtcConnectionStateType : int {
  kNERtcConnectionStateDisconnected = 1 , kNERtcConnectionStateConnecting = 2 , kNERtcConnectionStateConnected = 3 , kNERtcConnectionStateReconnecting = 4 ,
  kNERtcConnectionStateFailed = 5
}
 
enum class  RtcReasonConnectionChangedType : int {
  kNERtcReasonConnectionChangedLeaveChannel = 1 , kNERtcReasonConnectionChangedChannelClosed = 2 , kNERtcReasonConnectionChangedBeKicked = 3 , kNERtcReasonConnectionChangedTimeOut = 4 ,
  kNERtcReasonConnectionChangedJoinChannel = 5 , kNERtcReasonConnectionChangedJoinSucceed = 6 , kNERtcReasonConnectionChangedReJoinSucceed = 7 , kNERtcReasonConnectionChangedMediaConnectionDisconnected = 8 ,
  kNERtcReasonConnectionChangedSignalDisconnected = 9 , kNERtcReasonConnectionChangedRequestChannelFailed = 10 , kNERtcReasonConnectionChangedJoinChannelFailed = 11 , kNERtcReasonConnectionChangedReDispatch = 12
}
 
enum class  RtcNetworkQualityType : int {
  kNERtcNetworkQualityUnknown = 0 , kNERtcNetworkQualityExcellent = 1 , kNERtcNetworkQualityGood = 2 , kNERtcNetworkQualityPoor = 3 ,
  kNERtcNetworkQualityBad = 4 , kNERtcNetworkQualityVeryBad = 5 , kNERtcNetworkQualityDown = 6
}
 
enum class  RtcVideoCropMode : int { kNERtcVideoCropModeDefault = 0 , kNERtcVideoCropMode16x9 = 1 , kNERtcVideoCropMode4x3 = 2 , kNERtcVideoCropMode1x1 = 3 }
 
enum class  RtcVideoFramerateType : int {
  kNERtcVideoFramerateFpsDefault = 0 , kNERtcVideoFramerateFps7 = 7 , kNERtcVideoFramerateFps10 = 10 , kNERtcVideoFramerateFps15 = 15 ,
  kNERtcVideoFramerateFps24 = 24 , kNERtcVideoFramerateFps30 = 30 , kNERtcVideoFramerateFps60 = 60
}
 
enum class  RtcDegradationPreference : int { kNERtcDegradationDefault = 0 , kNERtcDegradationMaintainFramerate = 1 , kNERtcDegradationMaintainQuality = 2 , kNERtcDegradationBalanced = 3 }
 
enum class  RtcScreenProfileType {
  kNERtcScreenProfile480P = 0 , kNERtcScreenProfileHD720P = 1 , kNERtcScreenProfileHD1080P = 2 , kNERtcScreenProfileCustom = 3 ,
  kNERtcScreenProfileNone = 4 , kNERtcScreenProfileMAX = kNERtcScreenProfileHD1080P
}
 
enum class  RtcScreenCaptureStatus {
  kNERtcScreenCaptureStatusStart = 1 , kNERtcScreenCaptureStatusPause = 2 , kNERtcScreenCaptureStatusResume = 3 , kNERtcScreenCaptureStatusStop = 4 ,
  kNERtcScreenCaptureStatusCovered = 5
}
 
enum class  RtcSubStreamContentPrefer { kNERtcSubStreamContentPreferMotion = 0 , kNERtcSubStreamContentPreferDetails = 1 }
 
enum class  RtcRecordType : int { kNERtcRecordTypeAll = 0 , kNERtcRecordTypeMix = 1 , kNERtcRecordTypeSingle = 2 }
 
enum class  RtcAudioType : int { kNERtcAudioTypePCM16 = 0 }
 
enum class  RtcRawAudioFrameOpModeType : int { kNERtcRawAudioFrameOpModeReadOnly = 0 , kNERtcRawAudioFrameOpModeReadWrite }
 
enum class  RtcVideoType : int {
  kNERtcVideoTypeI420 = 0 , kNERtcVideoTypeNV12 = 1 , kNERtcVideoTypeNV21 = 2 , kNERtcVideoTypeBGRA = 3 ,
  kNERtcVideoTypeARGB = 4 , kNERtcVideoTypeCVPixelBuffer = 5
}
 
enum class  RtcVideoRotation : int { kNERtcVideoRotation0 = 0 , kNERtcVideoRotation90 = 90 , kNERtcVideoRotation180 = 180 , kNERtcVideoRotation270 = 270 }
 
enum class  RtcSessionLeaveReason : int {
  kNERtcSessionLeaveNormal = 0 , kNERtcSessionLeaveForFailOver = 1 , kNERtcSessionLeaveUpdate = 2 , kNERtcSessionLeaveForKick = 3 ,
  kNERtcSessionLeaveTimeOut = 4
}
 
enum class  RtcAudioMixingState : int { kNERtcAudioMixingStateFinished = 0 , kNERtcAudioMixingStateFailed = 1 }
 
enum class  RtcVideoStreamType : int { kNERTCVideoStreamMain = 0 , kNERTCVideoStreamSub = 1 , kNERTCVideoStreamCount }
 
enum class  RtcChannelMediaRelayState : int { kNERtcChannelMediaRelayStateIdle = 0 , kNERtcChannelMediaRelayStateConnecting = 1 , kNERtcChannelMediaRelayStateRunning = 2 , kNERtcChannelMediaRelayStateFailure = 3 }
 
enum class  RtcChannelMediaRelayEvent : int {
  kNERtcChannelMediaRelayEventDisconnect = 0 , kNERtcChannelMediaRelayEventConnecting = 1 , kNERtcChannelMediaRelayEventConnected = 2 , kNERtcChannelMediaRelayEventVideoSentToDestChannelSuccess = 3 ,
  kNERtcChannelMediaRelayEventAudioSentToDestChannelSuccess = 4 , kNERtcChannelMediaRelayEventOtherStreamSentToDestChannelSuccess = 5 , kNERtcChannelMediaRelayEventFailure = 100
}
 
enum class  RtcLogLevel : int {
  kNERtcLogLevelFatal = 0 , kNERtcLogLevelError = 1 , kNERtcLogLevelWarning = 2 , kNERtcLogLevelInfo = 3 ,
  kNERtcLogLevelDetailInfo = 4 , kNERtcLogLevelVerbos = 5 , kNERtcLogLevelDebug = 6 , kNERtcLogLevelOff = 7
}
 
enum class  RtcSendOnPubType : int { kNERtcSendOnPubNone = 0 , kNERtcSendOnPubHigh = 1 , kNERtcSendOnPubLow = 1 << 1 , kNERtcSendOnPubAll = kNERtcSendOnPubLow | kNERtcSendOnPubHigh }
 
enum class  RtcAudioRecordingQuality : int { kNERtcAudioRecordingQualityLow = 0 , kNERtcAudioRecordingQualityMedium = 1 , kNERtcAudioRecordingQualityHigh = 2 }
 
enum class  RtcAudioRecordingCode : int {
  kNERtcAudioRecordErrorSuffix = 1 , kNERtcAudioRecordOpenFileFailed = 2 , kNERtcAudioRecordStart = 3 , kNERtcAudioRecordError = 4 ,
  kNERtcAudioRecordFinish = 5
}
 
enum class  RtcStreamFallbackOption : int { kNERtcStreamFallbackDisabled = 0 , kNERtcStreamFallbackVideoStreamLow = 1 , kNERtcStreamFallbackAudioOnly = 2 }
 
enum class  RtcEncryptionMode : int { kNERtcGMCryptoSM4ECB = 0 }
 
enum class  RtcLastmileProbeResultState : int { kNERtcLastmileProbeResultComplete = 1 , kNERtcLastmileProbeResultIncompleteNoBwe = 2 , kNERtcLastmileProbeResultUnavailable = 3 }
 
enum class  RtcSpatializerRoomCapacity : int {
  kNERtcSpatializerRoomCapacitySmall = 0 , kNERtcSpatializerRoomCapacityMedium = 1 , kNERtcSpatializerRoomCapacityLarge = 2 , kNERtcSpatializerRoomCapacityHuge = 3 ,
  kNERtcSpatializerRoomCapacityNone = 4
}
 
enum class  RtcSpatializerMaterialName : int {
  kNERtcSpatializerMaterialTransparent = 0 , kNERtcSpatializerMaterialAcousticCeilingTiles , kNERtcSpatializerMaterialBrickBare , kNERtcSpatializerMaterialBrickPainted ,
  kNERtcSpatializerMaterialConcreteBlockCoarse , kNERtcSpatializerMaterialConcreteBlockPainted , kNERtcSpatializerMaterialCurtainHeavy , kNERtcSpatializerMaterialFiberGlassInsulation ,
  kNERtcSpatializerMaterialGlassThin , kNERtcSpatializerMaterialGlassThick , kNERtcSpatializerMaterialGrass , kNERtcSpatializerMaterialLinoleumOnConcrete ,
  kNERtcSpatializerMaterialMarble , kNERtcSpatializerMaterialMetal , kNERtcSpatializerMaterialParquetOnConcrete , kNERtcSpatializerMaterialPlasterRough ,
  kNERtcSpatializerMaterialPlasterSmooth , kNERtcSpatializerMaterialPlywoodPanel , kNERtcSpatializerMaterialPolishedConcreteOrTile , kNERtcSpatializerMaterialSheetrock ,
  kNERtcSpatializerMaterialWaterOrIceSurface , kNERtcSpatializerMaterialWoodCeiling , kNERtcSpatializerMaterialWoodPanel , kNERtcSpatializerMaterialUniform
}
 
enum class  RtcSpatializerRenderMode : int {
  kNERtcSpatializerRenderStereoPanning = 0 , kNERtcSpatializerRenderBinauralLowQuality , kNERtcSpatializerRenderBinauralMediumQuality , kNERtcSpatializerRenderBinauralHighQuality ,
  kNERtcSpatializerRenderRoomEffectsOnly
}
 
enum class  RtcDistanceRolloffModel : int { kNERtcDistanceRolloffLogarithmic = 0 , kNERtcDistanceRolloffLinear , kNERtcDistanceRolloffNone }
 
enum class  RtcAudioDeviceError : int {
  kNERtcAudioDeviceNoError = 0 , kNERtcAudioDeviceErrorInitRecording , kNERtcAudioDeviceErrorStartRecording , kNERtcAudioDeviceErrorStopRecording ,
  kNERtcAudioDeviceErrorInitPlayout , kNERtcAudioDeviceErrorStartPlayout , kNERtcAudioDeviceErrorStopplayout , kNERtcAudioDeviceErrorCaptureThreadStop ,
  kNERtcAudioDeviceErrorPlayoutThreadStop , kNERtcAudioDeviceErrorCaptureSampleRate , kNERtcAudioDeviceErrorPlayoutSampleRate , kNERtcAudioDeviceErrorConfigSession ,
  kNERtcAudioDeviceErrorCodeReporter
}
 
enum class  RtcVideoDeviceError : int { kNERtcVideoDeviceErrorNoFrame = 0 , kNERtcVideoDeviceErrorNotAvailableInBackground , kNERtcVideoDeviceErrorUsingByAnotherClient , kNERtcVideoDeviceErrorNotAvailableWithMultipleForegroundApps }
 
enum class  RtcAudioOutputRouting : int {
  kNERtcAudioOutputRoutingDefault = 0 , kNERtcAudioOutputRoutingHeadset , kNERtcAudioOutputRoutingEarpiece , kNERtcAudioOutputRoutingLoudspeaker ,
  kNERtcAudioOutputRoutingBluetooth
}
 
enum class  RtcNetworkType {
  kNERtcNetworkTypeUnknown = 0 , kNERtcNetworkTypeEthernet , kNERtcNetworkTypeWifi , kNERtcNetworkType2G ,
  kNERtcNetworkType3G , kNERtcNetworkType4G , kNERtcNetworkType5G , kNERtcNetworkTypeWWAN ,
  kNERtcNetworkTypeBluetooth , kNERtcNetworkTypeNone
}
 
enum class  RtcAudioSessionOperationRestriction { kNERtcAudioSessionOperationRestrictionNone = 0 , kNERtcAudioSessionOperationRestrictionAll , kNERtcAudioSessionOperationRestrictionDeactivateSession }
 

Functions

delegate void RtcTakeSnapshotCallback (RtcErrorCode errorCode, string image)
 
delegate void OnError (int errorCode, string msg)
 
delegate void OnWarning (int warnCode, string msg)
 
delegate void OnReleasedHwResources (RtcErrorCode result)
 
delegate void OnJoinChannel (ulong cid, ulong uid, RtcErrorCode result, ulong elapsed)
 
delegate void OnReconnectingStart (ulong cid, ulong uid)
 
delegate void OnConnectionStateChange (RtcConnectionStateType state, RtcReasonConnectionChangedType reason)
 
delegate void OnNetworkTypeChanged (RtcNetworkType newType)
 
delegate void OnRejoinChannel (ulong cid, ulong uid, RtcErrorCode result, ulong elapsed)
 
delegate void OnLeaveChannel (RtcErrorCode result)
 
delegate void OnDisconnect (RtcErrorCode reason)
 
delegate void OnClientRoleChanged (RtcClientRole oldRole, RtcClientRole newRole)
 
delegate void OnUserJoined (ulong uid, string userName)
 
delegate void OnUserLeft (ulong uid, RtcSessionLeaveReason reason)
 
delegate void OnUserAudioStart (ulong uid)
 
delegate void OnUserAudioStop (ulong uid)
 
delegate void OnUserVideoStart (ulong uid, RtcVideoProfileType maxProfile)
 
delegate void OnUserVideoStop (ulong uid)
 
delegate void OnUserSubStreamVideoStart (ulong uid, RtcVideoProfileType maxProfile)
 
delegate void OnUserSubStreamVideoStop (ulong uid)
 
delegate void OnScreenCaptureStatusChanged (RtcScreenCaptureStatus status)
 
delegate void OnUserVideoProfileUpdate (ulong uid, RtcVideoProfileType maxProfile)
 
delegate void OnUserAudioMute (ulong uid, bool mute)
 
delegate void OnUserVideoMute (ulong uid, bool mute)
 
delegate void OnAudioDeviceRoutingDidChange (RtcAudioOutputRouting routing)
 
delegate void OnAudioDeviceStateChanged (string deviceId, RtcAudioDeviceType deviceType, RtcAudioDeviceState deviceState)
 
delegate void OnAudioDefaultDeviceChanged (string deviceId, RtcAudioDeviceType deviceType)
 
delegate void OnVideoDeviceStateChanged (string deviceId, RtcVideoDeviceType deviceType, RtcVideoDeviceState deviceState)
 
delegate void OnCameraFocusChanged (RtcCameraFocusAndExposureInfo info)
 
delegate void OnCameraExposureChanged (RtcCameraFocusAndExposureInfo info)
 
delegate void OnFirstAudioDataReceived (ulong uid)
 
delegate void OnFirstVideoDataReceived (ulong uid)
 
delegate void OnFirstAudioFrameDecoded (ulong uid)
 
delegate void OnFirstVideoFrameDecoded (ulong uid, uint width, uint height)
 
delegate void OnCaptureVideoFrame (IntPtr data, RtcVideoType type, uint width, uint height, uint count, uint[] offset, uint[] stride, RtcVideoRotation rotation)
 
delegate void OnAudioMixingStateChanged (RtcAudioMixingState state, RtcAudioMixingErrorCode errorCode)
 
delegate void OnAudioMixingTimestampUpdate (ulong timestampMS)
 
delegate void OnAudioEffectFinished (uint effectId)
 
delegate void OnLocalAudioVolumeIndication (int volume)
 
delegate void OnRemoteAudioVolumeIndication (RtcAudioVolumeInfo[] speakers, int totalVolume)
 
delegate void OnAddLiveStreamTask (string taskId, string url, int errorCode)
 
delegate void OnUpdateLiveStreamTask (string taskId, string url, int errorCode)
 
delegate void OnRemoveLiveStreamTask (string taskId, int errorCode)
 
delegate void OnLiveStreamStateChanged (string taskId, string url, RtcLiveStreamStateCode state)
 
delegate void OnAudioHowling (bool howling)
 
delegate void OnRecvSEIMessage (ulong uid, byte[] data, uint dataSize)
 
delegate void OnAudioRecording (RtcAudioRecordingCode code, string filePath)
 
delegate void OnMediaRelayStateChanged (RtcChannelMediaRelayState state, string channelName)
 
delegate void OnMediaRelayEvent (RtcChannelMediaRelayEvent evt, string channelName, RtcErrorCode error)
 
delegate void OnPublishFallbackToAudioOnly (bool isFallback, RtcVideoStreamType streamType)
 
delegate void OnSubscribeFallbackToAudioOnly (ulong uid, bool isFallback, RtcVideoStreamType streamType)
 
delegate void OnLastmileQuality (RtcNetworkQualityType quality)
 
delegate void OnLastmileProbeResult (RtcLastmileProbeResult result)
 
delegate void OnAvatarUserJoined (ulong srcUid, ulong uid, string userName)
 
delegate void OnAvatarUserLeft (ulong srcUid, ulong uid, RtcSessionLeaveReason reason)
 
delegate void OnAvatarStatus (bool enable, RtcErrorCode errorCode)
 
delegate void ChannelOnError (IRtcChannel channel, int errorCode, string msg)
 
delegate void ChannelOnWarning (IRtcChannel channel, int warnCode, string msg)
 
delegate void ChannelOnReleasedHwResources (IRtcChannel channel, RtcErrorCode result)
 
delegate void ChannelOnJoinChannel (IRtcChannel channel, ulong cid, ulong uid, RtcErrorCode result, ulong elapsed)
 
delegate void ChannelOnReconnectingStart (IRtcChannel channel, ulong cid, ulong uid)
 
delegate void ChannelOnConnectionStateChange (IRtcChannel channel, RtcConnectionStateType state, RtcReasonConnectionChangedType reason)
 
delegate void ChannelOnRejoinChannel (IRtcChannel channel, ulong cid, ulong uid, RtcErrorCode result, ulong elapsed)
 
delegate void ChannelOnLeaveChannel (IRtcChannel channel, RtcErrorCode result)
 
delegate void ChannelOnDisconnect (IRtcChannel channel, RtcErrorCode reason)
 
delegate void ChannelOnClientRoleChanged (IRtcChannel channel, RtcClientRole oldRole, RtcClientRole newRole)
 
delegate void ChannelOnUserJoined (IRtcChannel channel, ulong uid, string userName)
 
delegate void ChannelOnUserLeft (IRtcChannel channel, ulong uid, RtcSessionLeaveReason reason)
 
delegate void ChannelOnUserAudioStart (IRtcChannel channel, ulong uid)
 
delegate void ChannelOnUserAudioStop (IRtcChannel channel, ulong uid)
 
delegate void ChannelOnUserAudioMute (IRtcChannel channel, ulong uid, bool mute)
 
delegate void ChannelOnUserVideoStart (IRtcChannel channel, ulong uid, RtcVideoProfileType maxProfile)
 
delegate void ChannelOnUserVideoStop (IRtcChannel channel, ulong uid)
 
delegate void ChannelOnUserVideoMute (IRtcChannel channel, ulong uid, bool mute)
 
delegate void ChannelOnUserSubStreamVideoStart (IRtcChannel channel, ulong uid, RtcVideoProfileType maxProfile)
 
delegate void ChannelOnUserSubStreamVideoStop (IRtcChannel channel, ulong uid)
 
delegate void ChannelOnScreenCaptureStatusChanged (IRtcChannel channel, RtcScreenCaptureStatus status)
 
delegate void ChannelOnFirstAudioDataReceived (IRtcChannel channel, ulong uid)
 
delegate void ChannelOnFirstVideoDataReceived (IRtcChannel channel, ulong uid)
 
delegate void ChannelOnFirstAudioFrameDecoded (IRtcChannel channel, ulong uid)
 
delegate void ChannelOnFirstVideoFrameDecoded (IRtcChannel channel, ulong uid, uint width, uint height)
 
delegate void ChannelOnLocalAudioVolumeIndication (IRtcChannel channel, int volume)
 
delegate void ChannelOnRemoteAudioVolumeIndication (IRtcChannel channel, RtcAudioVolumeInfo[] speakers, int totalVolume)
 
delegate void ChannelOnAddLiveStreamTask (IRtcChannel channel, string taskId, string url, int errorCode)
 
delegate void ChannelOnUpdateLiveStreamTask (IRtcChannel channel, string taskId, string url, int errorCode)
 
delegate void ChannelOnRemoveLiveStreamTask (IRtcChannel channel, string taskId, int errorCode)
 
delegate void ChannelOnLiveStreamStateChanged (IRtcChannel channel, string taskId, string url, RtcLiveStreamStateCode state)
 
delegate void ChannelOnRecvSEIMessage (IRtcChannel channel, ulong uid, byte[] data, uint dataSize)
 
delegate void ChannelOnMediaRelayStateChanged (IRtcChannel channel, RtcChannelMediaRelayState state, string channelName)
 
delegate void ChannelOnMediaRelayEvent (IRtcChannel channel, RtcChannelMediaRelayEvent evt, string channelName, RtcErrorCode error)
 
delegate void ChannelOnPublishFallbackToAudioOnly (IRtcChannel channel, bool isFallback, RtcVideoStreamType streamType)
 
delegate void ChannelOnSubscribeFallbackToAudioOnly (IRtcChannel channel, ulong uid, bool isFallback, RtcVideoStreamType streamType)
 
delegate void ChannelOnAvatarUserJoined (IRtcChannel channel, ulong srcUid, ulong uid, string userName)
 
delegate void ChannelOnAvatarUserLeft (IRtcChannel channel, ulong srcUid, ulong uid, RtcSessionLeaveReason reason)
 
delegate void ChannelOnAvatarStatus (IRtcChannel channel, bool enable, RtcErrorCode errorCode)
 

Enumeration Type Documentation

◆ RtcErrorCode

enum nertc.RtcErrorCode : int
strong

Error codes.
Error codes are returned when a problem that cannot be recovered without app intervention has occurred.

Enumerator
kNERtcNoError 

No errors.

kNERtcErrChannelReserveAuthFailed 

Authentication failed.

kNERtcErrChannelReservePermissionDenied 

No permissions. Possible reasons:

  • Audio and Video Call is not enabled, whose trial period is overdue or fees are not renewed.
  • Token is not specified in safe mode when joining a channel.
  • Other permission-related problems.
kNERtcErrChannelReserveChannelNotExist 

Room does not exist.

kNERtcErrChannelReserveUserIdNotExist 

Uid does not exist.

kNERtcErrChannelReserveTimeOut 

Request timeouts.

kNERtcErrChannelReserveErrorParam 

Error codes are returned when parameters are requested in the server.

kNERtcErrChannelReserveErrorAppKey 

Invalid AppKey.

kNERtcErrChannelReserveUnknownError 

Unknown errors are returned when channels are assigned in the server.

kNERtcErrChannelReserveMoreThanTwoUser 

Only two users are supported in the same channel. If the third user wants to share the same channel name, assign another channel.

kNERtcErrChannelReserveServerFail 

Server error while allocating rooms.

kNERtcErrLsTaskRequestInvalid 

Invalid permission that is replaced by following operations.

kNERtcErrLsTaskIsInvaild 

Parameter format error.

kNERtcErrLsTaskRoomExited 

Exited the channel.

kNERtcErrLsTaskNumLimit 

Streaming tasks are over the limit.

kNERtcErrLsTaskDuplicateId 

Duplicates ID of streaming tasks.

kNERtcErrLsTaskNotFound 

No ID task or no channels.

kNERtcErrLsTaskRequestErr 

Permission failures.

kNERtcErrLsTaskInternalServerErr 

Internal errors in the server.

kNERtcErrLsTaskInvalidLayout 

Layout parameter errors.

kNERtcErrLsTaskUserPicErr 

Image errors of users.

kNERtcErrFatal 

Common errors.

kNERtcErrOutOfMemory 

Out of memory.

kNERtcErrInvalidParam 

Invalid parameters.

kNERtcErrNotSupported 

Unsupported operation.

kNERtcErrInvalidState 

Unsupported operations in the current state.

kNERtcErrLackOfResource 

Depleted resources.

kNERtcErrInvalidIndex 

Invalid index.

kNERtcErrDeviceNotFound 

Device is not found.

kNERtcErrInvalidDeviceSourceID 

Invalid device ID.

kNERtcErrInvalidVideoProfile 

Invalid profile type of video.

kNERtcErrCreateDeviceSourceFail 

Device creation errors.

kNERtcErrInvalidRender 

Invalid rendering device.

kNERtcErrDevicePreviewAlreadyStarted 

Device is already enabled.

kNERtcErrTransmitPendding 

Transmission error.

kNERtcErrConnectFail 

Server connection error.

kNERtcErrCreateDumpFileFail 

Fails to create Audio dump file.

kNERtcErrStartDumpFail 

Fails to enable Audio dump file.

kNERtcErrDesktopCaptureInvalidState 

Fails to enable desktop screen recording if camera is started at the same time.

kNERtcErrDesktopCaptureInvalidParam 

Parameters are invalid when the desktop screen recording is implemented.

kNERtcErrDesktopCaptureNotReady 

Desktop screen recording is not ready.

kNERtcErrChannelAlreadyJoined 

Repeatedly joins the channel.

kNERtcErrChannelNotJoined 

Does not join the channel.

kNERtcErrChannelRepleatedlyLeave 

Repeatedly leaves the channel.

kNERtcErrRequestJoinChannelFail 

Fails to join the channel.

kNERtcErrSessionNotFound 

Session is not found.

kNERtcErrUserNotFound 

The user is not found.

kNERtcErrInvalidUserID 

Invalid user ID.

kNERtcErrMediaNotStarted 

Users do not connect the multi-media data.

kNERtcErrSourceNotFound 

Source is not found.

kNERtcErrSwitchChannelInvalidState 

Invalid state of switching channels.

kNERtcErrChannelMediaRelayInvalidState 

Invalid state of relaying media streams.

kNERtcErrChannelMediaRelayPermissionDenied 

Invalid permissions of relaying streams. Check whether the mode is set as audience mode or 1v1 mode.

kNERtcErrChannelMediaRelayStopFailed 

If you fail to stop relaying media streams, check whether the media stream forwarding is enabled.

kNERtcErrEncryptNotSuitable 

If you set the different encryption password of media streams from other members in the room, you fail to join the room. Sets new encryption password thorough enableEncryption.

kNERtcErrConnectionNotFound 

Connection is not found.

kNERtcErrStreamNotFound 

Media streams are not found.

kNERtcErrAddTrackFail 

Fails to join the track.

kNERtcErrTrackNotFound 

Track is not found.

kNERtcErrMediaConnectionDisconnected 

Media disconnection.

kNERtcErrSignalDisconnected 

Signalling disconnection.

kNERtcErrServerKicked 

The user is removed from the room.

kNERtcErrKickedForRoomClosed 

Removed for the channel is already disabled.

kNERtcErrChannelLeaveBySwitchAction 

Removed for the destination room is disabled.

kNERtcErrChannelLeaveByDuplicateUidLogin 

Duplicate uids.

kNERtcErrOSAuthorize 

Permission error.

kNERtcErrSEIExceedMaxBufferSize 

SEI data exceeds maximum allowed buffer size.

kNERtcErrSEIExceedMaxDataLimit 

SEI data exceeds maximum allowed data size.

kNERtcRuntimeErrADMNoAuthorize 

No permission of audio devices.

kNERtcRuntimeErrADMInitRecordingFailed 

Failed to initialize the audio capture device.

kNERtcRuntimeErrADMStartRecordingFailed 

Failed to start the audio capture device.

kNERtcRuntimeErrADMStopRecordingFailed 

Failed to stop the audio capture device.

kNERtcRuntimeErrADMInitPlayoutFailed 

Failed to initialize the audio playback device.

kNERtcRuntimeErrADMStartPlayoutFailed 

Failed to start the audio playback device.

kNERtcRuntimeErrADMStopPlayoutFailed 

Failed to stop the audio playback device.

kNERtcRuntimeErrOpenSLRegisterPlayerFailed 

pensL failed to register the player.

kNERtcRuntimeErrVDMNoAuthorize 

No permission of video devices.

kNERtcRuntimeErrVDMNotScreenUseSubStream 

Substream for non screen sharing streaming.

kNERtcRuntimeErrVDMCameraDisconnect 

Camera disconnected.

kNERtcRuntimeErrVDMCameraFreezed 

Camera freezed.

kNERtcRuntimeErrVDMCameraUnknownError 

Camera unknown error.

kNERtcRuntimeErrVDMCameraNoFrame 

No frame from camera. Check the camera or switch the camera

kNERtcRuntimeErrVDMCameraCreateFail 

Failed to start the camera. Check the camera whether it is used by other apps

kNERtcRuntimeErrScreenCaptureNoAuthorize 

No permission of video recording.

◆ RtcAudioMixingErrorCode

enum nertc.RtcAudioMixingErrorCode : int
strong

Mixing audio file error code。

Enumerator
kNERtcAudioMixingErrorOK 

No error.

kNERtcAudioMixingErrorFatal 

Common error.

kNERtcAudioMixingErrorCanNotOpen 

Audio mixing is not enabled normally.

kNERtcAudioMixingErrorDecode 

Audio decoding error.

kNERtcAudioMixingErrorInterrupt 

Interruption codes in the operation.

kNERtcAudioMixingErrorHttpNotFound 

404 file not found,only for http / https.

kNERtcAudioMixingErrorOpen 

Fails to enable streams/files.

kNERtcAudioMixingErrorNInfo 

Decoding information failures or timeouts.

kNERtcAudioMixingErrorNStream 

No audio streams.

kNERtcAudioMixingErrorNCodec 

No decoder.

kNERtcAudioMixingErrorNMem 

No memory.

kNERtcAudioMixingErrorCodecOpen 

Failures or timeouts of enabling decoders.

kNERtcAudioMixingErrorInvalidInfo 

Invalid audio parameters such as channels and sample rate.

kNERtcAudioMixingErrorOpenTimeout 

Streams/files enabling timeouts.

kNERtcAudioMixingErrorIoTimeout 

Network io timeouts.

kNERtcAudioMixingErrorIo 

Network io errors.

◆ RtcWarnCode

enum nertc.RtcWarnCode : int
strong

Warning code. If the warning code occurs, the SDK reports an error that is likely to be solved. The warning code just informs you of the SDK status. In most cases, the application programs can pass the warning code.

Enumerator
kNERtcWarnInvalidView 

If the specified value of view is invalid, you must specify the value of view when you enable a video. If the view is still not specified, the SDK returns the warning code.

kNERtcWarnInitVideo 

The value indicates that you fail to initialize the video feature. The reason for the failure is that video resources are occupied. Users cannot view the video but the audio communication is not affected.

kNERtcWarnPending 

The value indicates the request is in the pending status. In most cases, the request is delayed to be met for a certain module is not well loaded.

kNERtcWarnNoFrame 

to be add

kNERtcWarningChannelAbilityNotMatch 

The Client has no capability of device encoding and decoding to match that of the channel. For example, the device cannot encode in VP8 and other formats. Therefore, you may cannot implement video encoding and decoding in the channel. The local side may cannot display some remote video screens and the remote side may cannot display local screens.

kNERtcWarnADMRuntimePlayoutWarning 

Audio Device Module: A warning occurs in the playback device.

kNERtcWarnADMRuntimeRecordingWarning 

Device Module: A warning occurs in the recording device.

kNERtcWarnADMRecordAudioSilence 

Audio Device Module: No valid audio data is collected.

kNERtcWarnADMPlayoutMalfunction 

Audio Device Module: Malfunction occurs in the playback device.

kNERtcWarnADMRecordMalfunction 

Audio Device Module: Malfunction occurs in the recording device.

kNERtcWarnADMRecordAudioLowLevel 

Audio Device Module: The volume of recorded audio is too low.

kNERtcWarnADMPlayoutAudioLowLevel 

Audio Device Module: The playback volume is too low.

kNERtcWarnAPMHowling 

Audio Device Module: Howling is detected in the recording audio.

kNERtcWarnADMGlitchState 

Audio Device Module: The freeze occurs in the audio playback.

kNERtcWarnADMImproperSettings 

Audio Device Module: The setting of audio bottom layer is modified.

kNERtcWarnADMWinCoreNoDataReadyEvent 

Audio Device Module: Error occurs in the audio drive. Solution: Disables and restarts audio device, enables the device, or updates the sound card drive.

kNERtcWarnADMWinCoreNoRecordingDevice 

Audio Device Module: The audio capture device is not available.

kNERtcWarnADMWinCoreNoPlayoutDevice 

Audio Device Module: Audio playback device is not available. Solution: Swap the audio device.

kNERtcWarnADMWinCoreImproperCaptureRelease 

Audio Device Module: Audio capturing and releasing are wrongly implemented. Solution: Disables and restarts audio device, enables the device, or updates the sound card drive.

◆ RtcInterfaceIdType

enum nertc.RtcInterfaceIdType : int
strong

Interface ID type.

Enumerator
kNERtcIIDAudioDeviceManager 

Get the interface ID of the audio device manager.

kNERtcIIDVideoDeviceManager 

Get the interface ID of the video device manager.

◆ RtcClientRole

enum nertc.RtcClientRole : int
strong

Participant role type.

Enumerator
kNERtcClientRoleBroadcaster 

The host role in live streaming. The host has the permissions to open or close audio and video devices, such as a camera, publish streams, and configure streaming tasks in interactive live streaming. The status of the host is visible to the users in the room when the host joins or leaves the room.

kNERtcClientRoleAudience 

The audience role in live streaming. The audience can only receive audio and video streams, and cannot manage audio and video devices, and configure streaming tasks in interactive live streaming. The status of an audience is invisible to the users in the room when the audience joins or leaves the room.

◆ RtcChannelProfileType

enum nertc.RtcChannelProfileType : int
strong

Scenario types.

Enumerator
kNERtcChannelProfileCommunication 

Communication mode。

kNERtcChannelProfileLiveBroadcasting 

Live streaming mode.

◆ RtcMediaPriorityType

enum nertc.RtcMediaPriorityType : int
strong

Media priority type.

Enumerator
kNERtcMediaPriorityHigh 

High priority

kNERtcMediaPriorityNormal 

Normal priority (default)

◆ RtcLiveStreamLayoutMode

enum nertc.RtcLiveStreamLayoutMode : int
strong

Co-hosting method.

Enumerator
kNERtcLayoutFloatingRightVertical 

to be added

kNERtcLayoutFloatingLeftVertical 

to be added

kNERtcLayoutSplitScreen 

to be added

kNERtcLayoutSplitScreenScaling 

to be added

kNERtcLayoutCustom 

to be added

kNERtcLayoutAudioOnly 

to be added

◆ RtcLiveStreamMode

enum nertc.RtcLiveStreamMode : int
strong

Streaming mode in live streaming.

Enumerator
kNERtcLsModeVideo 

Publish the video stream.

kNERtcLsModeAudio 

Publish audio-only stream.

◆ RtcLiveStreamVideoScaleMode

Video cropping mode in live streaming

Enumerator
kNERtcLsModeVideoScaleFit 

0: Video dimensions are scaled proportionally. All video content is prioritized for display. If the video dimensions do not match the display window, the unfilled area of the window will be filled with the background color.

kNERtcLsModeVideoScaleCropFill 

1: Video dimensions are scaled proportionally. The window is prioritized to be filled. The extra video due to the inconsistency between the video size and the display window size will be cropped off.

◆ RtcLiveStreamAudioSampleRate

Live streaming audio sample rate

Enumerator
kNERtcLiveStreamAudioSampleRate32000 

The sample rate is 32 kHz.

kNERtcLiveStreamAudioSampleRate44100 

The sample rate is 44.1 kHz.

kNERtcLiveStreamAudioSampleRate48000 

(Default) The sample rate is 48 kHz.

◆ RtcLiveStreamAudioCodecProfile

Live streaming audio codec profile

Enumerator
kNERtcLiveStreamAudioCodecProfileLCAAC 

(Default) LC- AAC, the basic audio encoding profile.

kNERtcLiveStreamAudioCodecProfileHEAAC 

HE-AAC, high-efficiency audio encoding profile.

◆ RtcLiveStreamStateCode

enum nertc.RtcLiveStreamStateCode : int
strong

Live streaming status code.

Enumerator
kNERtcLsStatePushing 

Publishing.

kNERtcLsStatePushFail 

Publishing fails.

kNERtcLsStatePushStopped 

Publishing ends.

kNERtcLsStateImageError 

Background image setting error.

◆ RtcOsCategory

enum nertc.RtcOsCategory : int
strong

System ategory.

Enumerator
kNERtcOSiOS 

iOS universal device.

kNERtcOSAndroid 

Android universal device.

kNERtcOSPC 

PC设备

kNERtcOSWebRTC 

WebRTC.

◆ RtcAudioProfileType

enum nertc.RtcAudioProfileType : int
strong

Audio profile. Audio sample rate, bitrate, encoding mode, and the number of channels.

Enumerator
kNERtcAudioProfileDefault 

Default settings. kNERtcAudioProfileStandard in the speech scenarios. kNERtcAudioProfileHighQuality in the music scenarios.

kNERtcAudioProfileStandard 

1: Standard-quality audio encoding, 16000Hz, 20kbps.

kNERtcAudioProfileStandardExtend 

2: Standard-quality audio encoding, 16000Hz, 32kbps.

kNERtcAudioProfileMiddleQuality 

3: Medium-quality audio encoding, 48000Hz, 32kbps.

kNERtcAudioProfileMiddleQualityStereo 

4: Medium-quality stereo encoding, 48000Hz * 2, 64kbps.

kNERtcAudioProfileHighQuality 

5: High-quality audio encoding, 48000Hz, 64kbps.

kNERtcAudioProfileHighQualityStereo 

6: High-quality stereo encoding, 48000Hz * 2, 128kbps.

◆ RtcAudioScenarioType

enum nertc.RtcAudioScenarioType : int
strong

Audio application scenarios. Different audio scenarios use different audio capture modes and playback modes.

Enumerator
kNERtcAudioScenarioDefault 

0: Default settings.

  • kNERtcAudioScenarioSpeech in kNERtcChannelProfileCommunication.
  • kNERtcAudioScenarioMusic in kNERtcChannelProfileLiveBroadcasting.
kNERtcAudioScenarioSpeech 

1: Voice scenarios. Set NERtcAudioProfileType to kNERtcAudioProfileMiddleQuality or lower.

kNERtcAudioScenarioMusic 

2: Music scenarios. Set NERtcAudioProfileType to kNERtcAudioProfileMiddleQualityStereo or above.

◆ RtcVoiceChangerType

enum nertc.RtcVoiceChangerType : int
strong

The preset value of the voice changer.

Enumerator
kNERtcVoiceChangerOff 

By default, the setting is disabled.

kNERtcVoiceChangerRobot 

A robot voice.

kNERtcVoiceChangerGaint 

A giant voice.

kNERtcVoiceChangerHorror 

A horror voice.

kNERtcVoiceChangerMature 

A maturity voice.

kNERtcVoiceChangerManToWoman 

From a male voice to a female voice.

kNERtcVoiceChangerWomanToMan 

From a female voice to a male voice.

kNERtcVoiceChangerManToLoli 

From a male voice to a loli voice.

kNERtcVoiceChangerWomanToLoli 

From a female voice to a loli voice.

◆ RtcVoiceBeautifierType

enum nertc.RtcVoiceBeautifierType : int
strong

Preset voice beautifier effect.

Enumerator
kNERtcVoiceBeautifierOff 

By default, the setting is disabled.

kNERtcVoiceBeautifierMuffled 

A muffled effect.

kNERtcVoiceBeautifierMellow 

A mellow effect.

kNERtcVoiceBeautifierClear 

A clear effect.

kNERtcVoiceBeautifierMagnetic 

A magnetic effect.

kNERtcVoiceBeautifierRecordingstudio 

A recording studio effect.

kNERtcVoiceBeautifierNature 

A nature effect.

kNERtcVoiceBeautifierKTV 

A KTV effect.

kNERtcVoiceBeautifierRemote 

A remote effect.

kNERtcVoiceBeautifierChurch 

A church effect.

kNERtcVoiceBeautifierBedroom 

A bedroom effect.

kNERtcVoiceBeautifierLive 

A live effect.

◆ RtcVoiceEqualizationBand

enum nertc.RtcVoiceEqualizationBand : int
strong

The center frequency of the sound equalization band.

Enumerator
kNERtcVoiceEqualizationBand31 

31 Hz

kNERtcVoiceEqualizationBand62 

62 Hz.

kNERtcVoiceEqualizationBand125 

125 Hz.

kNERtcVoiceEqualizationBand250 

250 Hz.

kNERtcVoiceEqualizationBand500 

500 Hz.

kNERtcVoiceEqualizationBand1K 

1 kHz.

kNERtcVoiceEqualizationBand2K 

2 kHz.

kNERtcVoiceEqualizationBand4K 

4 kHz.

kNERtcVoiceEqualizationBand8K 

8 kHz.

kNERtcVoiceEqualizationBand16K 

16 kHz.

◆ RtcCameraPreference

enum nertc.RtcCameraPreference : int
strong

The camera capture preference.

Enumerator
kNERtcCameraOutputDefault 

0:(default) Prioritizes the system performance. The SDK chooses the dimension and frame rate of the local camera capture closest to those set by setVideoConfig.

kNERtcCameraOutputQuality 

Prioritizes the local preview quality. The SDK chooses higher camera output parameters to improve the local video preview quality. This option requires extra CPU and RAM usage for video pre-processing.

kNERtcCameraOutputManual 

Allows you to customize the width and height of the video image captured by the local camera.

◆ RtcVideoProfileType

enum nertc.RtcVideoProfileType : int
strong

Video encoding configuration. The resolution used to measure encoding quality.

Note
kNERtcVideoProfileFake:
  • The peer sends a 16*16 fakeVideo (SEI delivered in audio-only streams), which is an internal behavior of the SDK. The view is not displayed at this time (the client receives only black frames).
  • Therefore, this setting is not actively applied. If you select the setting, the SDK applies the setting to the standard.
Enumerator
kNERtcVideoProfileLowest 

LD160x90/120, 15fps

kNERtcVideoProfileLow 

LD 320x180/240, 15fps

kNERtcVideoProfileStandard 

SD 640x360/480, 30fps

kNERtcVideoProfileHD720P 

HD (1280 x 720, 30 fps)

kNERtcVideoProfileHD1080P 

1080p (1920x1080, 30fps)

kNERtcVideoProfileNone 

None

kNERtcVideoProfileFake 

FakeVideo logo, only displayed in the callback. Do not use the setting. Otherwise, the SDK applies the logo based on kNERtcVideoProfileStandard.
When the remote client sends the SEI in the audio-only state, the local client receives the message returned by the onUserVideoStart callback from the remote client. The maxProfile parameter is kNERtcVideoProfileFake, which indicates that the remote client sends a 16*16 FakeVideo. At this time, if the local client needs to receive the remote SEI, you only need to subscribe to the remote video, without setting the remote canvas.

◆ RtcRemoteVideoStreamType

enum nertc.RtcRemoteVideoStreamType : int
strong

The video stream type.

Enumerator
kNERtcRemoteVideoStreamTypeHigh 

The default high-resolution stream.

kNERtcRemoteVideoStreamTypeLow 

The low-resolution stream

kNERtcRemoteVideoStreamTypeNone 

Unsubscribed.

◆ RtcAudioDeviceType

enum nertc.RtcAudioDeviceType : int
strong

Audio device type.

Enumerator
kNERtcAudioDeviceUnknown 

Unknown audio device.

kNERtcAudioDeviceRecord 

Audio capture device.

kNERtcAudioDevicePlayout 

Audio playback device.

◆ RtcAudioDeviceState

enum nertc.RtcAudioDeviceState : int
strong

Audio device status types.

Enumerator
kNERtcAudioDeviceActive 

The audio device is activated.

kNERtcAudioDeviceUnactive 

The audio device is not activated.

◆ RtcAudioDeviceTransportType

Audio device types.

Enumerator
kNERtcAudioDeviceTransportTypeUnknown 

Unknown device.

kNERtcAudioDeviceTransportTypeBluetooth 

Bluetooth device.

kNERtcAudioDeviceTransportTypeBluetoothA2DP 

Bluetooth stereo device.

kNERtcAudioDeviceTransportTypeBluetoothLE 

Bluetooth low energy device.

kNERtcAudioDeviceTransportTypeUSB 

USB device.

kNERtcAudioDeviceTransportTypeHDMI 

HDMI device.

kNERtcAudioDeviceTransportTypeBuiltIn 

Built-in device.

kNERtcAudioDeviceTransportTypeThunderbolt 

Thunderbolt interface device.

kNERtcAudioDeviceTransportTypeAirPlay 

AirPlay device.

kNERtcAudioDeviceTransportTypeVirtual 

Virtual device.

kNERtcAudioDeviceTransportTypeOther 

Other devices.

◆ RtcVideoDeviceTransportType

Camera device type.

Enumerator
kNERtcVideoDeviceTransportTypeUnknown 

Unknown device.

kNERtcVideoDeviceTransportTypeUSB 

USB设备

kNERtcVideoDeviceTransportTypeVirtual 

Virtual device.

kNERtcVideoDeviceTransportTypeOther 

Other device.

◆ RtcVideoDeviceType

enum nertc.RtcVideoDeviceType : int
strong

Video device types.

Enumerator
kNERtcVideoDeviceUnknown 

Unknown video device.

kNERtcVideoDeviceCapture 

Video capture device.

◆ RtcVideoDeviceState

enum nertc.RtcVideoDeviceState : int
strong

Video device status types.

Enumerator
kNERtcVideoDeviceAdded 

The video device is added.

kNERtcVideoDeviceRemoved 

The video device is removed.

◆ RtcVideoScalingMode

enum nertc.RtcVideoScalingMode : int
strong

Set the video scaling mode.

Enumerator
kNERtcVideoScaleFit 

0: adaptive to the video. The video size is scaled proportionally. All video content is prioritized for display. If the video size does not match the display window size, the unfilled area of the window is be filled with the background color.

kNERtcVideoScaleFullFill 

1: The video size is scaled non-proportionally. Ensure that all video content is displayed and the window is filled.

kNERtcVideoScaleCropFill 

2: adaptive to the area. The video size is scaled proportionally. Ensure that all areas are filled, and the extra part of the video will be cropped.

◆ RtcVideoMirrorMode

enum nertc.RtcVideoMirrorMode : int
strong

Video mirror mode.

Enumerator
kNERtcVideoMirrorModeAuto 

0: The mirror mode is enabled in Windows and macOS SDKs.

kNERtcVideoMirrorModeEnabled 

1: Enables mirror mode.

kNERtcVideoMirrorModeDisabled 

2: Disables mirroring mode (default).

◆ RtcVideoOrientationMode

enum nertc.RtcVideoOrientationMode : int
strong

The video orientation mode.

Enumerator
kNERtcVideoOutputOrientationModeAdaptative 

(default) The direction of the video output by the SDK in this mode is consistent with the direction of the captured video. The receiver rotates the video based on the received video rotation information.
This mode is suitable for scenarios where the receiver can adjust the video direction.

  • If the captured video is in landscape mode, the output video is also in landscape mode.
  • If the captured video is in portrait mode, the output video is also in portrait mode.
kNERtcVideoOutputOrientationModeFixedLandscape 

In this mode, the SDK always outputs videos in landscape mode. If the captured video is in portrait mode, the video encoder crops the video.
This mode is suitable for scenes where the receiver cannot adjust the video direction, such as CDN relayed streaming.

kNERtcVideoOutputOrientationModeFixedPortrait 

In this mode, the SDK always outputs videos in portrait mode. If the captured video is in landscape mode, the video encoder crops the video.
This mode is suitable for scenes where the receiver cannot adjust the video direction, such as CDN relayed streaming.

◆ RtcConnectionStateType

enum nertc.RtcConnectionStateType : int
strong

The state of network connection

Enumerator
kNERtcConnectionStateDisconnected 

The client is disconnected.

kNERtcConnectionStateConnecting 

The client is connecting to the room server.

kNERtcConnectionStateConnected 

The client is connected to the room server.

kNERtcConnectionStateReconnecting 

The client is reconnecting to the room server.

kNERtcConnectionStateFailed 

The client fails to connect to the room server.

◆ RtcReasonConnectionChangedType

The reason for the connection state change.

Enumerator
kNERtcReasonConnectionChangedLeaveChannel 

kNERtcConnectionStateDisconnected The client leaves the room.

kNERtcReasonConnectionChangedChannelClosed 

kNERtcConnectionStateDisconnected The room is closed.

kNERtcReasonConnectionChangedBeKicked 

kNERtcConnectionStateDisconnected The user is removed from the room.

kNERtcReasonConnectionChangedTimeOut 

kNERtcConnectionStateDisconnected The service times out.

kNERtcReasonConnectionChangedJoinChannel 

kNERtcConnectionStateConnecting The user joins the room.

kNERtcReasonConnectionChangedJoinSucceed 

kNERtcConnectionStateConnected The user has joined the room.

kNERtcReasonConnectionChangedReJoinSucceed 

kNERtcConnectionStateConnected The user rejoins the room successfully (reconnection).

kNERtcReasonConnectionChangedMediaConnectionDisconnected 

kNERtcConnectionStateReconnecting The media stream gets disconnected.

kNERtcReasonConnectionChangedSignalDisconnected 

kNERtcConnectionStateReconnecting The signaling channel gets disconnected.

kNERtcReasonConnectionChangedRequestChannelFailed 

kNERtcConnectionStateFailed The request to join the room fails.

kNERtcReasonConnectionChangedJoinChannelFailed 

kNERtcConnectionStateFailed The user fails to join the room.

kNERtcReasonConnectionChangedReDispatch 

kNERtcConnectionStateReconnecting The server IP is reallocated.

◆ RtcNetworkQualityType

enum nertc.RtcNetworkQualityType : int
strong

Network quality type.

Enumerator
kNERtcNetworkQualityUnknown 

0: Unknown network quality.

kNERtcNetworkQualityExcellent 

1: Excellent network quality.

kNERtcNetworkQualityGood 

2: Good network quality is close to the excellent level but has the bitrate is lower an excellent network.

kNERtcNetworkQualityPoor 

3: Poor network does not affect communication.

kNERtcNetworkQualityBad 

4: Users can communicate with each other without smoothness.

kNERtcNetworkQualityVeryBad 

5: The network quality is very poor. Basically users are unable to communicate.

kNERtcNetworkQualityDown 

6: Users are unable to communicate with each other.

◆ RtcVideoCropMode

enum nertc.RtcVideoCropMode : int
strong

Video cropping mode.

Enumerator
kNERtcVideoCropModeDefault 

Device Default

kNERtcVideoCropMode16x9 

16:9

kNERtcVideoCropMode4x3 

4:3

kNERtcVideoCropMode1x1 

1:1

◆ RtcVideoFramerateType

enum nertc.RtcVideoFramerateType : int
strong

Video frame rate.

Enumerator
kNERtcVideoFramerateFpsDefault 

default frame rate

kNERtcVideoFramerateFps7 

7 frames per second

kNERtcVideoFramerateFps10 

10 frames per second

kNERtcVideoFramerateFps15 

15 frames per second

kNERtcVideoFramerateFps24 

24 frames per second

kNERtcVideoFramerateFps30 

30 frames per second

kNERtcVideoFramerateFps60 

60 frames per second

◆ RtcDegradationPreference

enum nertc.RtcDegradationPreference : int
strong

Video encoding strategy.

Enumerator
kNERtcDegradationDefault 
  • By default, adjust the adaptation preference based on scenarios.
  • In communication scenes, select kNERtcDegradationBalanced mode to maintain a balance between the frame rate and video quality.
  • In live streaming scenes, select kNERtcDegradationMaintainQuality mode and reduce the frame rate to ensure video quality.
kNERtcDegradationMaintainFramerate 

Smooth streams come first. Reduce video quality to ensure the frame rate. In a weak network environment, you can reduce the video quality to ensure a smooth video playback. In this case, the image quality is reduced and the pictures become blurred, but the video can be kept smooth.

kNERtcDegradationMaintainQuality 

Clarity is prioritized. Reduce the frame rate to ensure video quality. In a weak network environment, you can reduce the video frame rate to ensure that the video is clear. In this case, a certain amount of freezes may occur at this time.

kNERtcDegradationBalanced 

Maintain a balance between the frame rate and video quality.

◆ RtcScreenProfileType

Video frame rate callback.

Parameters
uidThe user ID
frameThe video frame object Configuration parameters for screen sharing encoding.
Enumerator
kNERtcScreenProfile480P 

640x480, 5fps.

kNERtcScreenProfileHD720P 

1280x720, 5fps.

kNERtcScreenProfileHD1080P 

1920x1080, 5fps. This is the default value.

kNERtcScreenProfileCustom 

Custom.

kNERtcScreenProfileNone 

None

kNERtcScreenProfileMAX 

1920x1080, 5fps. This is the default value.

◆ RtcScreenCaptureStatus

Screen sharing status.

Enumerator
kNERtcScreenCaptureStatusStart 

Starts screen sharing.

kNERtcScreenCaptureStatusPause 

Pauses screen sharing.

kNERtcScreenCaptureStatusResume 

Resumes screen sharing.

kNERtcScreenCaptureStatusStop 

Stops screen sharing.

kNERtcScreenCaptureStatusCovered 

The target window for screen sharing is covered.

◆ RtcSubStreamContentPrefer

Encoding strategy preference for screen sharing.

  • kNERtcSubStreamContentPreferMotion: The content type is animation. When the shared content is a video, movie, or game, We recommend that you select this content type.If a user sets the content type to animation, the user-defined frame rate is applied.
  • kNERtcSubStreamContentPreferDetails: The content type is details. When the shared content is an image or text, We recommend that you select this content type. When the user sets the content type to details, the user is allowed to set up to 10 frames. If the setting exceeds 10 frames, 10 frames are applied.
Enumerator
kNERtcSubStreamContentPreferMotion 

The animation mode.

kNERtcSubStreamContentPreferDetails 

The details mode.

◆ RtcRecordType

enum nertc.RtcRecordType : int
strong

Recording type.

Enumerator
kNERtcRecordTypeAll 

Composite and individual stream recording.

kNERtcRecordTypeMix 

Composite recording mode.

kNERtcRecordTypeSingle 

individual recording mode.

◆ RtcAudioType

enum nertc.RtcAudioType : int
strong

Audio type.

Enumerator
kNERtcAudioTypePCM16 

PCM audio format.

◆ RtcRawAudioFrameOpModeType

Audio frame request data read and write mode.

Enumerator
kNERtcRawAudioFrameOpModeReadOnly 

Read-only mode

kNERtcRawAudioFrameOpModeReadWrite 

Read and write mode

◆ RtcVideoType

enum nertc.RtcVideoType : int
strong

The video type.

Enumerator
kNERtcVideoTypeI420 

I420 video format.

kNERtcVideoTypeNV12 

NV12 video format.

kNERtcVideoTypeNV21 

NV21 video format.

kNERtcVideoTypeBGRA 

BGRA video format.

kNERtcVideoTypeARGB 

ARGB video format.

kNERtcVideoTypeCVPixelBuffer 

oc capture native video format. External video input is not allowed.

◆ RtcVideoRotation

enum nertc.RtcVideoRotation : int
strong

The angle to which the video rotates.

Enumerator
kNERtcVideoRotation0 

0 度。

kNERtcVideoRotation90 

90°

kNERtcVideoRotation180 

180°

kNERtcVideoRotation270 

270°

◆ RtcSessionLeaveReason

enum nertc.RtcSessionLeaveReason : int
strong

The reasons why the user leaves.

Enumerator
kNERtcSessionLeaveNormal 

A user leaves the room normally.

kNERtcSessionLeaveForFailOver 

The user is disconnected and leaves the room.

kNERtcSessionLeaveUpdate 

The user leaves the room because the session fails over.

kNERtcSessionLeaveForKick 

The user is removed from the room.

kNERtcSessionLeaveTimeOut 

The user is disconnected due to connection timeout.

◆ RtcAudioMixingState

enum nertc.RtcAudioMixingState : int
strong

The playback state of the music file.

Enumerator
kNERtcAudioMixingStateFinished 

The playback ends.

kNERtcAudioMixingStateFailed 

The playback fails because an error occurs. For more information, see RtcAudioMixingErrorCode.

◆ RtcVideoStreamType

enum nertc.RtcVideoStreamType : int
strong

The video stream type.

Enumerator
kNERTCVideoStreamMain 

mainstream.

kNERTCVideoStreamSub 

Substream.

kNERTCVideoStreamCount 

Reserved parameter. Ignore this parameter.

◆ RtcChannelMediaRelayState

Status during media stream relay.

Enumerator
kNERtcChannelMediaRelayStateIdle 

Initial state. After a successful call of stopChannelMediaRelay method to stop cross-room media streaming.

kNERtcChannelMediaRelayStateConnecting 

The SDK tries to relay cross-room media streams.

kNERtcChannelMediaRelayStateRunning 

Sets the host role of source channel into the target room.

kNERtcChannelMediaRelayStateFailure 

Failure occurs. See the error messages prompted by error of onMediaRelayEvent.

◆ RtcChannelMediaRelayEvent

Events related to the media stream relay.

Enumerator
kNERtcChannelMediaRelayEventDisconnect 

Current media stream relay gets disconnected.

kNERtcChannelMediaRelayEventConnecting 

Starts to relay media streams.

kNERtcChannelMediaRelayEventConnected 

The media stream relay gets connected to the server.

kNERtcChannelMediaRelayEventVideoSentToDestChannelSuccess 

The video stream is relayed to the destination room.

kNERtcChannelMediaRelayEventAudioSentToDestChannelSuccess 

The audio stream is relayed to the destination room.

kNERtcChannelMediaRelayEventOtherStreamSentToDestChannelSuccess 

Other streams such as screen sharing stream are relayed to the destination room.

kNERtcChannelMediaRelayEventFailure 

Fails to relay media streams. Possible reasons:

  • kNERtcErrChannelReserveErrorParam(414)
  • kNERtcErrChannelMediaRelayInvalidState(30110)
  • kNERtcErrChannelMediaRelayPermissionDenied(30111)
  • kNERtcErrChannelMediaRelayStopFailed(30112)

◆ RtcLogLevel

enum nertc.RtcLogLevel : int
strong

Log levels.

Enumerator
kNERtcLogLevelFatal 

Fatal.

kNERtcLogLevelError 

Error.

kNERtcLogLevelWarning 

Warning. The default log level.

kNERtcLogLevelInfo 

Info.

kNERtcLogLevelDetailInfo 

Detail Info.

kNERtcLogLevelVerbos 

Verbos.

kNERtcLogLevelDebug 

Debug. To get the complete log file, set the log level to this option.

kNERtcLogLevelOff 

No logs.

◆ RtcSendOnPubType

enum nertc.RtcSendOnPubType : int
strong

Video delivery strategy after publishing.

Enumerator
kNERtcSendOnPubNone 

The client does not actively send the data stream. The stream is sent if the stream is subscribed.

kNERtcSendOnPubHigh 

The client actively sends the mainstream.

kNERtcSendOnPubLow 

The client actively sends the substream.

kNERtcSendOnPubAll 

The client actively sends the mainstream and the substream.

◆ RtcAudioRecordingQuality

enum nertc.RtcAudioRecordingQuality : int
strong

Recording audio quality.

Enumerator
kNERtcAudioRecordingQualityLow 

Low quality

kNERtcAudioRecordingQualityMedium 

medium quality

kNERtcAudioRecordingQualityHigh 

High quality

◆ RtcAudioRecordingCode

enum nertc.RtcAudioRecordingCode : int
strong

The error code of recording callbacks.

Enumerator
kNERtcAudioRecordErrorSuffix 

Unsupported recording file format.

kNERtcAudioRecordOpenFileFailed 

fails to create a recording file. Reasons:

  • The application does not have the write permissions.
  • The file path does not exist.
kNERtcAudioRecordStart 

Starts recording.

kNERtcAudioRecordError 

An error occurs during recording. The typical reason is that the disk space is full and cannot be written.

kNERtcAudioRecordFinish 

Recording is complete.

◆ RtcStreamFallbackOption

enum nertc.RtcStreamFallbackOption : int
strong

Fallback options when the uplink and downlink connections are weak.

Enumerator
kNERtcStreamFallbackDisabled 

If the uplink or downlink network is unstable, the audio and video streams will not fall back, but the quality of the audio and video streams cannot be guaranteed.

Note
This option is only valid for the setLocalPublishFallbackOption method, and invalid for the setRemoteSubscribeFallbackOption method.
kNERtcStreamFallbackVideoStreamLow 

In an unstable downlink network, the SDK only receives low-definition streams that have low resolution and bitrate.

Note
This option is only valid for the setRemoteSubscribeFallbackOption method, and invalid for the setLocalPublishFallbackOption method.
kNERtcStreamFallbackAudioOnly 
  • In an unstable uplink network, only the audio stream is published.
  • In an unstable downlink network, first try to receive only low-definition streams, which have low resolution and bitrate. If the video stream cannot be displayed due to network quality, then the stream falls back to the audio stream.

◆ RtcEncryptionMode

enum nertc.RtcEncryptionMode : int
strong

Media stream encryption mode.

Enumerator
kNERtcGMCryptoSM4ECB 

128-bit SM4 encryption, ECB mode.

◆ RtcLastmileProbeResultState

States of the last-mile network probe test.

Enumerator
kNERtcLastmileProbeResultComplete 

The last-mile network probe test is complete.

kNERtcLastmileProbeResultIncompleteNoBwe 

The last-mile network probe test is incomplete and the bandwidth estimation is not available, probably due to limited test resources.

kNERtcLastmileProbeResultUnavailable 

The last-mile network probe test is not carried out, probably due to poor network conditions.

◆ RtcSpatializerRoomCapacity

Room capacity for spatializer.

Enumerator
kNERtcSpatializerRoomCapacitySmall 

Small room.

kNERtcSpatializerRoomCapacityMedium 

Medium-size room.

kNERtcSpatializerRoomCapacityLarge 

Large room.

kNERtcSpatializerRoomCapacityHuge 

Extra large room.

kNERtcSpatializerRoomCapacityNone 

No room effect.

◆ RtcSpatializerMaterialName

Spatializer material name.

Enumerator
kNERtcSpatializerMaterialTransparent 

Transparent.

kNERtcSpatializerMaterialAcousticCeilingTiles 

Acoustic ceiling tiles. unvailable

kNERtcSpatializerMaterialBrickBare 

Bare brick. unvailable

kNERtcSpatializerMaterialBrickPainted 

Painted brick. unvailable

kNERtcSpatializerMaterialConcreteBlockCoarse 

Coarse concrete block . unvailable

kNERtcSpatializerMaterialConcreteBlockPainted 

Concrete block painted. unvailable

kNERtcSpatializerMaterialCurtainHeavy 

Heavy curtain. unvailable

kNERtcSpatializerMaterialFiberGlassInsulation 

Fiber glass insulation. unvailable

kNERtcSpatializerMaterialGlassThin 

Thin glass. unvailable

kNERtcSpatializerMaterialGlassThick 

Thick glass. unvailable

kNERtcSpatializerMaterialGrass 

Grass. unvailable

kNERtcSpatializerMaterialLinoleumOnConcrete 

Linoleum on concrete. unvailable

kNERtcSpatializerMaterialMarble 

Marble. unvailable

kNERtcSpatializerMaterialMetal 

Metal. unvailable

kNERtcSpatializerMaterialParquetOnConcrete 

Parquet on concrete. unvailable

kNERtcSpatializerMaterialPlasterRough 

Plaster rough. unvailable

kNERtcSpatializerMaterialPlasterSmooth 

Plaster smooth. unvailable

kNERtcSpatializerMaterialPlywoodPanel 

Plywood panel. unvailable

kNERtcSpatializerMaterialPolishedConcreteOrTile 

Polished concrete or tile. unvailable

kNERtcSpatializerMaterialSheetrock 

Sheet rock. unvailable

kNERtcSpatializerMaterialWaterOrIceSurface 

Water or ice surface. unvailable

kNERtcSpatializerMaterialWoodCeiling 

Wood ceiling. unvailable

kNERtcSpatializerMaterialWoodPanel 

Wood panel. unvailable

kNERtcSpatializerMaterialUniform 

Uniform. unvailable

◆ RtcSpatializerRenderMode

enum nertc.RtcSpatializerRenderMode : int
strong

Spatializer rendering mode.

Enumerator
kNERtcSpatializerRenderStereoPanning 

Stereo panning

kNERtcSpatializerRenderBinauralLowQuality 

Low-quality binaural

kNERtcSpatializerRenderBinauralMediumQuality 

Medium-quality binaural

kNERtcSpatializerRenderBinauralHighQuality 

High-quality binaural

kNERtcSpatializerRenderRoomEffectsOnly 

Room effects only

◆ RtcDistanceRolloffModel

enum nertc.RtcDistanceRolloffModel : int
strong

Distance rolloff mode

Enumerator
kNERtcDistanceRolloffLogarithmic 

Logarithmic rolloff

kNERtcDistanceRolloffLinear 

Linear rolloff

kNERtcDistanceRolloffNone 

None rolloff

◆ RtcAudioDeviceError

enum nertc.RtcAudioDeviceError : int
strong

Audio device error.

Enumerator
kNERtcAudioDeviceNoError 

to be add

kNERtcAudioDeviceErrorInitRecording 

to be add

kNERtcAudioDeviceErrorStartRecording 

to be add

kNERtcAudioDeviceErrorStopRecording 

to be add

kNERtcAudioDeviceErrorInitPlayout 

to be add

kNERtcAudioDeviceErrorStartPlayout 

to be add

kNERtcAudioDeviceErrorStopplayout 

to be add

kNERtcAudioDeviceErrorCaptureThreadStop 

to be add

kNERtcAudioDeviceErrorPlayoutThreadStop 

to be add

kNERtcAudioDeviceErrorCaptureSampleRate 

to be add

kNERtcAudioDeviceErrorPlayoutSampleRate 

to be add

kNERtcAudioDeviceErrorConfigSession 

to be add

kNERtcAudioDeviceErrorCodeReporter 

to be add

◆ RtcVideoDeviceError

enum nertc.RtcVideoDeviceError : int
strong

Video device error.

Enumerator
kNERtcVideoDeviceErrorNoFrame 

to be add

kNERtcVideoDeviceErrorNotAvailableInBackground 

to be add

kNERtcVideoDeviceErrorUsingByAnotherClient 

to be add

kNERtcVideoDeviceErrorNotAvailableWithMultipleForegroundApps 

to be add

◆ RtcAudioOutputRouting

enum nertc.RtcAudioOutputRouting : int
strong

Audio output routing for iOS and Android.

Enumerator
kNERtcAudioOutputRoutingDefault 

Default

kNERtcAudioOutputRoutingHeadset 

Headset

kNERtcAudioOutputRoutingEarpiece 

Earpiece

kNERtcAudioOutputRoutingLoudspeaker 

Loudspeaker

kNERtcAudioOutputRoutingBluetooth 

Bluetooth

◆ RtcNetworkType

enum nertc.RtcNetworkType
strong

Network type.

Enumerator
kNERtcNetworkTypeUnknown 

to be add

kNERtcNetworkTypeEthernet 

to be add

kNERtcNetworkTypeWifi 

to be add

kNERtcNetworkType2G 

to be add

kNERtcNetworkType3G 

to be add

kNERtcNetworkType4G 

to be add

kNERtcNetworkType5G 

to be add

kNERtcNetworkTypeWWAN 

to be add

kNERtcNetworkTypeBluetooth 

to be add

kNERtcNetworkTypeNone 

to be add

◆ RtcAudioSessionOperationRestriction

Audio session control permissions
The SDK has the permissions of Audio Session.

Enumerator
kNERtcAudioSessionOperationRestrictionNone 

The SDK has full permissions and can control the Audio Session

kNERtcAudioSessionOperationRestrictionAll 

If you restrict the SDK to perform operations on the Audio Session, the SDK cannot configure the Audio Session

kNERtcAudioSessionOperationRestrictionDeactivateSession 

When a user leaves the room, the SDK will keep the Audio Session active.

Function Documentation

◆ RtcTakeSnapshotCallback()

delegate void nertc.RtcTakeSnapshotCallback ( RtcErrorCode  errorCode,
string  image 
)

Returns the screenshot result.

Parameters
errorCodeThe error code. For more information, see RtcErrorCode.
imageThe screenshot. Images on macOS are in CGImageRef format.

◆ OnError()

delegate void nertc.OnError ( int  errorCode,
string  msg 
)

Occurs when the error occurs.
The callback is triggered to report an error related to network or media during SDK runtime. In most cases, the SDK cannot fix the issue and resume running. The SDK requires the app to take action or informs the user of the issue.

Parameters
errorCodeThe error code. For more information, see RtcErrorCode .
msgError description.

◆ OnWarning()

delegate void nertc.OnWarning ( int  warnCode,
string  msg 
)

Occurs when a warning occurs.
The callback is triggered to report a warning related to network or media during SDK runtime. In most cases, the app ignores the warning message and the SDK resumes running.

Parameters
warnCodeThe warning code. For more information, see RtcWarnCode.
msgThe warning description.

◆ OnReleasedHwResources()

delegate void nertc.OnReleasedHwResources ( RtcErrorCode  result)

Occurs when the hardware resources are released.
The SDK prompts whether hardware resources are successfully released.

Parameters
resultThe result.

◆ OnJoinChannel()

delegate void nertc.OnJoinChannel ( ulong  cid,
ulong  uid,
RtcErrorCode  result,
ulong  elapsed 
)

Allows a user to join a room. The callback indicates that the client has already signed in.

Parameters
cidThe ID of the room that the client joins.
uidSpecifies the ID of a user. If you specify the uid in the IRtcEngine.JoinChannel method, a specified ID is returned at the time. If not, the ID automatically assigned by the CommsEase’s server is returned.
resultIndicates the result.
elapsedThe time elapsed from calling the joinChannel method to the occurrence of this event. Unit: milliseconds.

◆ OnReconnectingStart()

delegate void nertc.OnReconnectingStart ( ulong  cid,
ulong  uid 
)

Triggers reconnection.
In some cases, a client may be disconnected from the server, the SDK starts reconnecting. The callback is triggered when the reconnection starts.

Parameters
cidSpecifies the ID of a room.
uidSpecifies the ID of a user.

◆ OnConnectionStateChange()

delegate void nertc.OnConnectionStateChange ( RtcConnectionStateType  state,
RtcReasonConnectionChangedType  reason 
)

Occurs when the state of network connection is changed.
The callback is triggered when the state of network connection is changed. The callback returns the current state of network connection and the reason why the network state changes.

Parameters
stateThe state of current network connection.
reasonThe reason why the network state changes.

◆ OnNetworkTypeChanged()

delegate void nertc.OnNetworkTypeChanged ( RtcNetworkType  newType)

Occurs when the network type is changed.
The callback is triggered when network is changed. The callback returns the current network type.

Parameters
newTypeThe new type of current network.

◆ OnRejoinChannel()

delegate void nertc.OnRejoinChannel ( ulong  cid,
ulong  uid,
RtcErrorCode  result,
ulong  elapsed 
)

Occurs when a user rejoins a room.
If a client is disconnected from the server due to poor network quality, the SDK starts reconnecting. If the client and server are reconnected, the callback is triggered.

Parameters
cidThe ID of the room that the client joins.
uidThe ID of a user.
resultThe result.
elapsedThe time elapsed from reconnection to the occurrence of this event. Unit: milliseconds.

◆ OnLeaveChannel()

delegate void nertc.OnLeaveChannel ( RtcErrorCode  result)

Occurs when a user leaves a room.
After an app invokes the IRtcEngine.LeaveChannel method, SDK prompts whether the app successfully leaves the room.

Parameters
resultThe result.

◆ OnDisconnect()

delegate void nertc.OnDisconnect ( RtcErrorCode  reason)

Network connection interruption.

Note
  • The callback is triggered if the SDK fails to connect to the server three consecutive times after you successfully call the IRtcEngine.JoinChannel method.
  • A client may be disconnected from the server in poor network connection. At this time, the SDK needs not automatically reconnecting until the SDK triggers the callback method.
Parameters
reasonThe reason why the network is disconnected.

◆ OnClientRoleChanged()

delegate void nertc.OnClientRoleChanged ( RtcClientRole  oldRole,
RtcClientRole  newRole 
)

Occurs when a user changes the role in live streaming.
After the local user joins a room, the user can call the IRtcEngine.SetClientRole to change the role. Then, the callback is triggered. For example, you can switch the role from host to audience, or from audience to host.

Note
In live streaming, if you join a room and successfully call this method to change the role, the following callbacks are triggered.
Parameters
oldRoleThe role before the user changes the role.
newRoleThe role after the change.

◆ OnUserJoined()

delegate void nertc.OnUserJoined ( ulong  uid,
string  userName 
)

Occurs when a remote user joins the current room.
The callback prompts that a remote user joins the room and returns the ID of the user that joins the room. If the user ID already exists, the remote user also receives a message that the user already joins the room, which is returned by the callback.

Parameters
uidThe ID of the user that joins the room.
userNameThe name of the remote user who joins the room.

◆ OnUserLeft()

delegate void nertc.OnUserLeft ( ulong  uid,
RtcSessionLeaveReason  reason 
)

Occurs when a remote user leaves a room.
A message is returned indicates that a remote user leaves the room or becomes disconnected. In most cases, a user leaves a room due to the following reasons: The user exit the room or connections time out.

  • When a user leaves a room, remote users will receive callback notifications that users leave the room. In this way, users can be specified to leave the room.
  • If the connection times out, and the user does not receive data packets for a time period of 40 to 50 seconds, then the user becomes disconnected.
    Parameters
    uidThe ID of the user that leaves the room.
    reasonThe reason why remote user leaves.

◆ OnUserAudioStart()

delegate void nertc.OnUserAudioStart ( ulong  uid)

Occurs when a remote user enables audio.

Parameters
uidThe ID of a remote user.

◆ OnUserAudioStop()

delegate void nertc.OnUserAudioStop ( ulong  uid)

Occurs when a remote user disables audio.

Parameters
uidThe ID of a remote user.

◆ OnUserVideoStart()

delegate void nertc.OnUserVideoStart ( ulong  uid,
RtcVideoProfileType  maxProfile 
)

Occurs when a remote user enables video.

Parameters
uidThe ID of a remote user.
maxProfileThe resolution of video encoding measures the encoding quality.

◆ OnUserVideoStop()

delegate void nertc.OnUserVideoStop ( ulong  uid)

Occurs when a remote user disables video.

Parameters
uidThe ID of a remote user.

◆ OnUserSubStreamVideoStart()

delegate void nertc.OnUserSubStreamVideoStart ( ulong  uid,
RtcVideoProfileType  maxProfile 
)

Occurs when a remote user enables screen sharing by using the substream.

Parameters
uidThe ID of a remote user.
maxProfileThe largest resolution of the remote video.

◆ OnUserSubStreamVideoStop()

delegate void nertc.OnUserSubStreamVideoStop ( ulong  uid)

Occurs when a remote user stops screen sharing by using the substream.

Parameters
uidThe ID of a remote user.

◆ OnScreenCaptureStatusChanged()

delegate void nertc.OnScreenCaptureStatusChanged ( RtcScreenCaptureStatus  status)

Occurs when screen sharing is paused/resumed/started/ended.
The method applies to Windows only.

Since
V4.2.0
Parameters
statusScreen capture status. For more information, see RtcScreenCaptureStatus .

◆ OnUserVideoProfileUpdate()

delegate void nertc.OnUserVideoProfileUpdate ( ulong  uid,
RtcVideoProfileType  maxProfile 
)

Occurs when video configurations of remote users are updated.

Parameters
uidThe ID of a remote user.
maxProfileThe resolution of video encoding measures the encoding quality.

◆ OnUserAudioMute()

delegate void nertc.OnUserAudioMute ( ulong  uid,
bool  mute 
)

Callbacks that specify whether to mute remote users.

Parameters
uidThe ID of a remote user.
muteindicates whether to unmute the remote user.

◆ OnUserVideoMute()

delegate void nertc.OnUserVideoMute ( ulong  uid,
bool  mute 
)

Occurs when a remote user stops or resumes sending video streams.

Parameters
uidThe ID of a remote user.
muteWhether to disable video streams.

◆ OnAudioDeviceRoutingDidChange()

delegate void nertc.OnAudioDeviceRoutingDidChange ( RtcAudioOutputRouting  routing)

Occurs when the audio routing changes.

Parameters
routingThe current audio output routing.

◆ OnAudioDeviceStateChanged()

delegate void nertc.OnAudioDeviceStateChanged ( string  deviceId,
RtcAudioDeviceType  deviceType,
RtcAudioDeviceState  deviceState 
)

Occurs when the state of the audio device changes.

Parameters
deviceIdDevice ID.
deviceTypeThe type of the device. For more information, see RtcAudioDeviceType .
deviceStateThe state of the audio device.

◆ OnAudioDefaultDeviceChanged()

delegate void nertc.OnAudioDefaultDeviceChanged ( string  deviceId,
RtcAudioDeviceType  deviceType 
)

Occurs when the default audio devices changes.

Parameters
deviceIdDevice ID.
deviceTypeThe type of the device.

◆ OnVideoDeviceStateChanged()

delegate void nertc.OnVideoDeviceStateChanged ( string  deviceId,
RtcVideoDeviceType  deviceType,
RtcVideoDeviceState  deviceState 
)

Occurs when the state of the video device is changed.

Parameters
deviceIdDevice ID.
deviceTypeThe type of the video device.
deviceStateThe state of the video device.

◆ OnCameraFocusChanged()

delegate void nertc.OnCameraFocusChanged ( RtcCameraFocusAndExposureInfo  info)

Occurs when the camera focus position changes. The callback indicates that the camera focus position changes. The callback is triggered if a local user calls the IRtcEngine.SetCameraFocusPosition method to change the focus position.

Note
The audio-only SDK disables this API. If you need to use the API, you can download the standard SDK from the official website of CommsEase and replace the audio-only SDK.
Parameters
infoThe new focus position.

◆ OnCameraExposureChanged()

delegate void nertc.OnCameraExposureChanged ( RtcCameraFocusAndExposureInfo  info)

Occurs when the camera exposure position changes. The callback is triggered if a local user calls the IRtcEngine.SetCameraExposurePosition method to change the exposure position.

Note
The audio-only SDK disables this API. If you need to use the API, you can download the standard SDK from the official website of CommsEase and replace the audio-only SDK.
Parameters
infoThe new exposure position.

◆ OnFirstAudioDataReceived()

delegate void nertc.OnFirstAudioDataReceived ( ulong  uid)

Occurs when the first audio frame from a remote user is received.

Parameters
uidThe ID of a remote user whose audio streams are sent.

◆ OnFirstVideoDataReceived()

delegate void nertc.OnFirstVideoDataReceived ( ulong  uid)

Occurs when the first video frame from a remote user is displayed.
If the first video frame from a remote user is displayed in the view, the callback is triggered.

Parameters
uidThe ID of a user whose audio streams are sent.

◆ OnFirstAudioFrameDecoded()

delegate void nertc.OnFirstAudioFrameDecoded ( ulong  uid)

Occurs when the first audio frame from a remote user is decoded.

Parameters
uidThe ID of a remote user whose audio streams are sent.

◆ OnFirstVideoFrameDecoded()

delegate void nertc.OnFirstVideoFrameDecoded ( ulong  uid,
uint  width,
uint  height 
)

Occurs when the remote video is received and decoded.
If the engine receives the first frame of remote video streams, the callback is triggered.

Parameters
uidThe ID of a user whose audio streams are sent.
widthThe width of video streams (px).
heightThe height of video streams(px).

◆ OnCaptureVideoFrame()

delegate void nertc.OnCaptureVideoFrame ( IntPtr  data,
RtcVideoType  type,
uint  width,
uint  height,
uint  count,
uint[]  offset,
uint[]  stride,
RtcVideoRotation  rotation 
)

Occurs when video data are captured.

Parameters
dataThe video frame data.
typeThe type of the video data.
widthThe width of the video frame.
heightThe height of the video frame.
countVideo plane count.
offsetVideo offset.
strideVideo stride.
rotationThe video rotation angle.

◆ OnAudioMixingStateChanged()

delegate void nertc.OnAudioMixingStateChanged ( RtcAudioMixingState  state,
RtcAudioMixingErrorCode  errorCode 
)

Occurs when the playback state of a local music file changes.
If you call the startAudioMixing method to play a mixing music file and the playback state changes, the callback is triggered.

  • If the playback of the music file ends normally, the state parameter returned in the response contains the corresponding status code kNERtcAudioMixingStateFinished , and the errorCode parameter contains kNERtcAudioMixingErrorOK.
  • If an error occurs in the playback, the kNERtcAudioMixingStateFailed status code is returned, and the errorCode parameter returned contains the corresponding reason.
  • If the local music file does not exist, the file format is not supported, or the URL of the online music file cannot be accessed, the errorCode parameter returned contains kNERtcAudioMixingErrorCanNotOpen .
    Parameters
    stateThe playback state of the music file. For more information, see RtcAudioMixingState .
    errorCodeThe error code. For more information, see RtcAudioMixingErrorCode .

◆ OnAudioMixingTimestampUpdate()

delegate void nertc.OnAudioMixingTimestampUpdate ( ulong  timestampMS)

Occurs when the playback position of a local music file changes.
If you call the IRtcEngine.StartAudioMixing method to play a mixing music file and the position of the playing operation changes, the callback is triggered.

Parameters
timestampMSThe position of the music file playing. Unit: milliseconds.

◆ OnAudioEffectFinished()

delegate void nertc.OnAudioEffectFinished ( uint  effectId)

Occurs when the playback of a music file ends.
After the audio effect ends the playback, the callback is triggered.

Parameters
effectIdThe ID of the specified audio effect. Each audio effect has a unique ID.

◆ OnLocalAudioVolumeIndication()

delegate void nertc.OnLocalAudioVolumeIndication ( int  volume)

Occurs when the system prompts current local audio volume.

◆ OnRemoteAudioVolumeIndication()

delegate void nertc.OnRemoteAudioVolumeIndication ( RtcAudioVolumeInfo[]  speakers,
int  totalVolume 
)

Occurs when the system prompts the active speaker and the audio volume. By default, the callback is disabled. You can enable the callback by calling the IRtcEngine.EnableAudioVolumeIndication method. After the callback is enabled, if a local user speaks, the SDK triggers the callback based on the time interval specified in the IRtcEngine.EnableAudioVolumeIndication method. In the array of speakers returned:

  • If a uid is contained in the array returned in the last response but not in the array returned in the current response. The remote user with the uid does not speak by default.
  • If the volume is 0, the user does not speak.
  • If the array is empty, the remote user does not speak.
    Parameters
    speakersThe array that contains the information about user IDs and volumes is RtcAudioVolumeInfo .
    totalVolumeThe total volume (after audio mixing). Value range: 0 to 100.

◆ OnAddLiveStreamTask()

delegate void nertc.OnAddLiveStreamTask ( string  taskId,
string  url,
int  errorCode 
)

Notifies to add the result of live stream.
The callback asynchronously returns the callback result of IRtcEngine.AddLiveStreamTask . For information about actual pushing state, see OnLiveStreamStateChanged.

Parameters
taskIdThe ID of a stream-push task.
urlTask ID.
errorCodeThe result.
  • 0: Success.
  • Other values: Failure.

◆ OnUpdateLiveStreamTask()

delegate void nertc.OnUpdateLiveStreamTask ( string  taskId,
string  url,
int  errorCode 
)

Notifies to Updates the result of live stream.
The callback asynchronously returns the callback result of ref IRtcEngine::UpdateLiveStreamTask . For information about actual pushing state, see OnLiveStreamStateChanged .

Parameters
taskIdThe ID of a stream-push task.
urlThe URL for the streaming task.
errorCodeThe result.
  • 0: Success.
  • Other values: Failure.

◆ OnRemoveLiveStreamTask()

delegate void nertc.OnRemoveLiveStreamTask ( string  taskId,
int  errorCode 
)

Notifies to delete the result of live stream.
The callback asynchronously returns the callback result of ref IRtcEngine::RemoveLiveStreamTask . For information about actual pushing state, see OnLiveStreamStateChanged.

Parameters
taskIdThe ID of a task.
errorCodeThe result.
  • 0: Success.
  • Other values: Failure.

◆ OnLiveStreamStateChanged()

delegate void nertc.OnLiveStreamStateChanged ( string  taskId,
string  url,
RtcLiveStreamStateCode  state 
)

Notifies the status in live stream-pushing.

Note
The callback is valid in a call.
Parameters
taskIdThe ID of a task.
urlThe URL for the streaming task.
stateRtcLiveStreamStateCode The state of live stream-pushing.
  • 505: Pushing.
  • 506: Pushing fails.
  • 511: Pushing ends.

◆ OnAudioHowling()

delegate void nertc.OnAudioHowling ( bool  howling)

Occurs when howling is detected. When the distance between the sound source and the PA equipment is too close, howling may occur. The NERTC SDK supports the howling detection. When a howling signal is detected, the callback is automatically triggered until the howling stops. The application layer can prompt the user to mute the microphone or directly mute the microphone when the app receives the howling information returned by the callback.

Note
Howling detection is used in audio-only scenarios, such as audio chat rooms or online meetings. We recommend that you do not use howling detection in entertainment scenes that include background music.
Parameters
howlingWhether a howling occurs.
  • true: Howling occurs.
  • false: Normal state.

◆ OnRecvSEIMessage()

delegate void nertc.OnRecvSEIMessage ( ulong  uid,
byte[]  data,
uint  dataSize 
)

Occurs when the content of remote SEI is received.
After a remote client successfully sends SEI, the local client receives a message returned by the callback.

Parameters
[in]uidThe ID of the user who sends the SEI.
[in]dataThe received SEI data.
[in]dataSizeThe size of received SEI data.

◆ OnAudioRecording()

delegate void nertc.OnAudioRecording ( RtcAudioRecordingCode  code,
string  filePath 
)

Returns the audio recording state.

Parameters
codeThe status code of the audio recording. For more information, see RtcAudioRecordingCode .
filePathThe path based on which the recording file is stored.

◆ OnMediaRelayStateChanged()

delegate void nertc.OnMediaRelayStateChanged ( RtcChannelMediaRelayState  state,
string  channelName 
)

Occurs when the state of the media stream is relayed.

Since
V4.3.0
Parameters
stateThe state of the media stream.
channelNameThe name of the destination room where the media streams are relayed.

◆ OnMediaRelayEvent()

delegate void nertc.OnMediaRelayEvent ( RtcChannelMediaRelayEvent  evt,
string  channelName,
RtcErrorCode  error 
)

Occurs when events related to media stream relay are triggered.

Since
V4.3.0
Parameters
evtThe media stream relay event.
channelNameThe name of the destination room where the media streams are relayed.
errorSpecific error codes.

◆ OnPublishFallbackToAudioOnly()

delegate void nertc.OnPublishFallbackToAudioOnly ( bool  isFallback,
RtcVideoStreamType  streamType 
)

Occurs when the published local media stream falls back to an audio-only stream due to poor network conditions or switches back to audio and video stream after the network conditions improve.
If you call IRtcEngine.SetLocalPublishFallbackOption and set option to kNERtcStreamFallbackAudioOnly, this callback is triggered when the locally published stream falls back to audio-only mode due to poor uplink network conditions, or when the audio stream switches back to the audio and video stream after the uplink network conditions improve.

Since
V4.3.0
Parameters
isFallbackThe locally published stream falls back to audio-only mode or switches back to audio and video stream.
  • true: The published stream from a local client falls back to audio-only mode due to poor uplink network conditions.
  • false: The audio stream switches back to the audio and video stream after the upstream network condition improves.
streamTypeThe type of the video stream, such as mainstream and substream.

◆ OnSubscribeFallbackToAudioOnly()

delegate void nertc.OnSubscribeFallbackToAudioOnly ( ulong  uid,
bool  isFallback,
RtcVideoStreamType  streamType 
)

Occurs when the subscribed remote media stream falls back to an audio-only stream due to poor network conditions or switches back to the audio and video stream after the network condition improves.
If you call IRtcEngine.SetRemoteSubscribeFallbackOption and set option to kNERtcStreamFallbackAudioOnly, this callback is triggered when the locally published stream falls back to audio-only mode due to poor uplink network conditions, or when the audio stream switches back to the audio and video stream after the uplink network condition improves.

Since
V4.3.0
Parameters
uidThe ID of a remote user.
isFallbackThe subscribed remote media stream falls back to audio-only mode or switches back to the audio and video stream.
  • true: The subscribed remote media stream falls back to audio-only mode due to poor downstream network conditions.
  • false: The subscribed remote media stream switches back to the audio and video stream after the downstream network condition improves.
streamTypeThe type of the video stream, such as mainstream and substream.

◆ OnLastmileQuality()

delegate void nertc.OnLastmileQuality ( RtcNetworkQualityType  quality)

Reports the last mile network quality of the local user once every two seconds before the user joins the channel.
After the application calls the IRtcEngine.StartLastmileProbeTest method, this callback reports once every five seconds the uplink and downlink last mile network conditions of the local user before the user joins the channel.

Since
V4.5.0
Parameters
qualityThe last mile network quality.

◆ OnLastmileProbeResult()

delegate void nertc.OnLastmileProbeResult ( RtcLastmileProbeResult  result)

Reports the last-mile network probe result.
This callback describes a detailed last-mile network detection report of a local user before joining a channel. The report provides objective data about the upstream and downstream network quality, including network jitter and packet loss rate. You can use the report to objectively predict the network status of local users during an audio and video call.
The SDK triggers this callback within 30 seconds after the app calls the IRtcEngine.StartLastmileProbeTest method.

Since
V4.5.0
Parameters
resultThe uplink and downlink last-mile network probe test result.

◆ OnAvatarUserJoined()

delegate void nertc.OnAvatarUserJoined ( ulong  srcUid,
ulong  uid,
string  userName 
)

Called when a digital avatar joins the current room.

Note
  • The callback prompts that the remote digital avatar joins the current room and return the ID of the digital avatar.
  • If users want to use digital avatars without enabling the visual avatar, a digital avatar will join the current room.
Parameters
srcUidID of a source user of the remote digital avatar leaving the room. The digital avatar of the current user srcUid is 0.
uidID of the remote digital avatar joining the room。
userNameUser name of the remote digital avatar joining the room

◆ OnAvatarUserLeft()

delegate void nertc.OnAvatarUserLeft ( ulong  srcUid,
ulong  uid,
RtcSessionLeaveReason  reason 
)

Called when a digital avatar leaves the current room.

The remote digital avatar leaves the room (or goes off-line).

Parameters
srcUidID of a source user of the remote digital avatar leaving the room. The digital avatar of the current user srcUid is 0.
uidID of the digital avatar leaving the room.
reasonreason for leaving the room.

◆ OnAvatarStatus()

delegate void nertc.OnAvatarStatus ( bool  enable,
RtcErrorCode  errorCode 
)

Called when the result of starting a digital avatar is returned.

Note
Parameters
enableStart or stop a digital avatar.
errorCoderesult.

◆ ChannelOnError()

delegate void nertc.ChannelOnError ( IRtcChannel  channel,
int  errorCode,
string  msg 
)

Occurs when the error occurs.
The callback is triggered to report an error related to network or media during SDK runtime. In most cases, the SDK cannot fix the issue and resume running. The SDK requires the app to take action or informs the user of the issue.

Parameters
channelThe current IRtcChannel object
errorCodeThe error code. For more information, see RtcErrorCode.
msgError description.
Since
V4.5.0

◆ ChannelOnWarning()

delegate void nertc.ChannelOnWarning ( IRtcChannel  channel,
int  warnCode,
string  msg 
)

Occurs when a warning occurs.
The callback is triggered to report a warning related to network or media during SDK runtime. In most cases, the app ignores the warning message and the SDK resumes running.

Parameters
channelThe current IRtcChannel object
warnCodeThe warning code. For more information, see RtcWarnCode.
msgThe warning description.
Since
V4.5.0

◆ ChannelOnReleasedHwResources()

delegate void nertc.ChannelOnReleasedHwResources ( IRtcChannel  channel,
RtcErrorCode  result 
)

Occurs when the hardware resources are released.
The SDK prompts whether hardware resources are successfully released.

Parameters
channelThe current IRtcChannel object
resultThe result.

◆ ChannelOnJoinChannel()

delegate void nertc.ChannelOnJoinChannel ( IRtcChannel  channel,
ulong  cid,
ulong  uid,
RtcErrorCode  result,
ulong  elapsed 
)

Allows a user to join a room. The callback indicates that the client has already signed in.

Parameters
cidThe ID of the room that the client joins.
uidSpecifies the ID of a user. If you specify the uid in the joinChannel method, a specificed ID is returned at the time. If not, the ID automatically assigned by the CommsEase’s server is returned.
channelThe current IRtcChannel object
resultIndicates the result.
elapsedThe time elapsed from calling the joinChannel method to the occurrence of this event. Unit: milliseconds.

◆ ChannelOnReconnectingStart()

delegate void nertc.ChannelOnReconnectingStart ( IRtcChannel  channel,
ulong  cid,
ulong  uid 
)

Triggers reconnection.
In some cases, a client may be disconnected from the server, the SDK starts reconnecting. The callback is triggered when the reconnection starts.

Parameters
channelThe current IRtcChannel object
cidSpecifies the ID of a room.
uidSpecifies the ID of a user.

◆ ChannelOnConnectionStateChange()

delegate void nertc.ChannelOnConnectionStateChange ( IRtcChannel  channel,
RtcConnectionStateType  state,
RtcReasonConnectionChangedType  reason 
)

Occurs when the state of network connection is changed.
The callback is triggered when the state of network connection is changed. The callback returns the current state of network connection and the reason why the network state changes.

Parameters
channelThe current IRtcChannel object
stateThe state of current network connection.
reasonThe reason why the network state changes.
Since
V4.5.0

◆ ChannelOnRejoinChannel()

delegate void nertc.ChannelOnRejoinChannel ( IRtcChannel  channel,
ulong  cid,
ulong  uid,
RtcErrorCode  result,
ulong  elapsed 
)

Occurs when a user rejoins a room.
If a client is disconnected from the server due to poor network quality, the SDK starts reconnecting. If the client and server are reconnected, the callback is triggered.

Parameters
channelThe current IRtcChannel object
cidThe ID of the room that the client joins.
uidThe ID of a user.
resultThe result.
elapsedThe time elapsed from reconnection to the occurrence of this event. Unit: milliseconds.
Since
V4.5.0

◆ ChannelOnLeaveChannel()

delegate void nertc.ChannelOnLeaveChannel ( IRtcChannel  channel,
RtcErrorCode  result 
)

Occurs when a user leaves a room.
After an app invokes the IRtcChannel.LeaveChannel method, SDK prompts whether the app successfully leaves the room.

Parameters
channelThe current IRtcChannel object
resultThe result.
Since
V4.5.0

◆ ChannelOnDisconnect()

delegate void nertc.ChannelOnDisconnect ( IRtcChannel  channel,
RtcErrorCode  reason 
)

Network connection interruption.

Note
  • The callback is triggered if the SDK fails to connect to the server three consecutive times after you successfully call the IRtcChannel.JoinChannel method.
  • A client may be disconnected from the server in poor network connection. At this time, the SDK needs not automatically reconnecting until the SDK triggers the callback method.
Parameters
channelThe current IRtcChannel object
reasonThe reason why the network is disconnected.
Since
V4.5.0

◆ ChannelOnClientRoleChanged()

delegate void nertc.ChannelOnClientRoleChanged ( IRtcChannel  channel,
RtcClientRole  oldRole,
RtcClientRole  newRole 
)

Occurs when a user changes the role in live streaming.
After the local user joins a room, the user can call the IRtcChannel.SetClientRole to change the role. Then, the callback is triggered. For example, you can switch the role from host to audience, or from audience to host.

Note
In live streaming, if you join a room and successfully call this method to change the role, the following callbacks are triggered.
Parameters
channelThe current IRtcChannel object
oldRoleThe role before the user changes the role.
newRoleThe role after the change.
Since
V4.5.0

◆ ChannelOnUserJoined()

delegate void nertc.ChannelOnUserJoined ( IRtcChannel  channel,
ulong  uid,
string  userName 
)

Occurs when a remote user joins the current room.
The callback prompts that a remote user joins the room and returns the ID of the user that joins the room. If the user ID already exists, the remote user also receives a message that the user already joins the room, which is returned by the callback.

Parameters
channelThe current IRtcChannel object
uidThe ID of the user that joins the room.
userNameThe name of the remote user who joins the room.
Since
V4.5.0

◆ ChannelOnUserLeft()

delegate void nertc.ChannelOnUserLeft ( IRtcChannel  channel,
ulong  uid,
RtcSessionLeaveReason  reason 
)

Occurs when a remote user leaves a room.
A message is returned indicates that a remote user leaves the room or becomes disconnected. In most cases, a user leaves a room due to the following reasons: The user exit the room or connections time out.

  • When a user leaves a room, remote users will receive callback notifications that users leave the room. In this way, users can be specified to leave the room.
  • If the connection times out, and the user does not receive data packets for a time period of 40 to 50 seconds, then the user becomes disconnected.
    Parameters
    channelThe current IRtcChannel object
    uidThe ID of the user that leaves the room.
    reasonThe reason why remote user leaves.
    Since
    V4.5.0

◆ ChannelOnUserAudioStart()

delegate void nertc.ChannelOnUserAudioStart ( IRtcChannel  channel,
ulong  uid 
)

Occurs when a remote user enables audio.

Parameters
channelThe current IRtcChannel object
uidThe ID of a remote user.
Since
V4.5.0

◆ ChannelOnUserAudioStop()

delegate void nertc.ChannelOnUserAudioStop ( IRtcChannel  channel,
ulong  uid 
)

Occurs when a remote user disables audio.

Parameters
channelThe current IRtcChannel object
uidThe ID of a remote user.
Since
V4.5.0

◆ ChannelOnUserAudioMute()

delegate void nertc.ChannelOnUserAudioMute ( IRtcChannel  channel,
ulong  uid,
bool  mute 
)

Callbacks that specify whether to mute remote users.

Parameters
channelThe current IRtcChannel object
uidThe ID of a remote user.
muteWhether to unmute the remote user.
Since
V4.5.0

◆ ChannelOnUserVideoStart()

delegate void nertc.ChannelOnUserVideoStart ( IRtcChannel  channel,
ulong  uid,
RtcVideoProfileType  maxProfile 
)

Occurs when a remote user enables video.

Parameters
channelThe current IRtcChannel object
uidThe ID of a remote user.
maxProfileThe resolution of video encoding measures the encoding quality.
Since
V4.5.0

◆ ChannelOnUserVideoStop()

delegate void nertc.ChannelOnUserVideoStop ( IRtcChannel  channel,
ulong  uid 
)

Occurs when a remote user disables video.

Parameters
channelThe current IRtcChannel object
uidThe ID of a remote user.
Since
V4.5.0

◆ ChannelOnUserVideoMute()

delegate void nertc.ChannelOnUserVideoMute ( IRtcChannel  channel,
ulong  uid,
bool  mute 
)

Occurs when a remote user stops or resumes sending video streams.

Parameters
channelThe current IRtcChannel object
uidThe ID of a remote user.
muteWhether to disable video streams.
Since
V4.5.0

◆ ChannelOnUserSubStreamVideoStart()

delegate void nertc.ChannelOnUserSubStreamVideoStart ( IRtcChannel  channel,
ulong  uid,
RtcVideoProfileType  maxProfile 
)

Occurs when a remote user enables screen sharing by using the substream.

Parameters
channelThe current IRtcChannel object
uidThe ID of a remote user.
maxProfileThe largest resolution of the remote video.
Since
V4.5.0

◆ ChannelOnUserSubStreamVideoStop()

delegate void nertc.ChannelOnUserSubStreamVideoStop ( IRtcChannel  channel,
ulong  uid 
)

Occurs when a remote user stops screen sharing by using the substream.

Parameters
channelThe current IRtcChannel object
uidThe ID of a remote user.
Since
V4.5.0

◆ ChannelOnScreenCaptureStatusChanged()

delegate void nertc.ChannelOnScreenCaptureStatusChanged ( IRtcChannel  channel,
RtcScreenCaptureStatus  status 
)

Occurs when screen sharing is paused/resumed/started/ended.
The method applies to Windows only.

Parameters
channelThe current IRtcChannel object
statusThe current state of screen sharing.
Since
V4.5.0

◆ ChannelOnFirstAudioDataReceived()

delegate void nertc.ChannelOnFirstAudioDataReceived ( IRtcChannel  channel,
ulong  uid 
)

Occurs when the first audio frame from a remote user is received.

Parameters
channelThe current IRtcChannel object
uidThe ID of a remote user whose audio streams are sent.
Since
V4.5.0

◆ ChannelOnFirstVideoDataReceived()

delegate void nertc.ChannelOnFirstVideoDataReceived ( IRtcChannel  channel,
ulong  uid 
)

Occurs when the first video frame from a remote user is displayed.
If the first video frame from a remote user is displayed in the view, the callback is triggered.

Parameters
channelThe current IRtcChannel object
uidThe ID of a user whose audio streams are sent.
Since
V4.5.0

◆ ChannelOnFirstAudioFrameDecoded()

delegate void nertc.ChannelOnFirstAudioFrameDecoded ( IRtcChannel  channel,
ulong  uid 
)

Occurs when the first audio frame from a remote user is decoded.

Parameters
channelThe current IRtcChannel object
uidThe ID of a remote user whose audio streams are sent.
Since
V4.5.0

◆ ChannelOnFirstVideoFrameDecoded()

delegate void nertc.ChannelOnFirstVideoFrameDecoded ( IRtcChannel  channel,
ulong  uid,
uint  width,
uint  height 
)

Occurs when the remote video is received and decoded.
If the engine receives the first frame of remote video streams, the callback is triggered.

Parameters
channelThe current IRtcChannel object
uidThe ID of a user whose audio streams are sent.
widthThe width of video streams (px).
heightThe height of video streams(px).
Since
V4.5.0

◆ ChannelOnLocalAudioVolumeIndication()

delegate void nertc.ChannelOnLocalAudioVolumeIndication ( IRtcChannel  channel,
int  volume 
)

Occurs when the system prompts current local audio volume.

  • This callback is disabled by default. You can enable the callback by calling the EnableAudioVolumeIndication method.
  • After the callback is enabled, if a local user speaks, the SDK triggers the callback based on the time interval specified in the EnableAudioVolumeIndication method.
  • If a local user sets a mute by calling MuteLocalAudioStream, the SDK sets the value of volume as 0, and calls back to the application layer.
    Parameters
    channelThe current IRtcChannel object
    volumeThe volume of audio mixing. Value range: 0 to 100.
    Since
    V4.5.0

◆ ChannelOnRemoteAudioVolumeIndication()

delegate void nertc.ChannelOnRemoteAudioVolumeIndication ( IRtcChannel  channel,
RtcAudioVolumeInfo[]  speakers,
int  totalVolume 
)

Occurs when the system prompts the active speaker and the audio volume.
By default, the callback is disabled. You can enable the callback by calling the EnableAudioVolumeIndication method. After the callback is enabled, if a local user speaks, the SDK triggers the callback based on the time interval specified in the EnableAudioVolumeIndication method.
In the array of speakers returned:

  • If a uid is contained in the array returned in the last response but not in the array returned in the current response. The remote user with the uid does not speak by default.
  • If the volume is 0, the user does not speak.
  • If the array is empty, the remote user does not speak.
    Parameters
    channelThe current IRtcChannel object
    speakersThe array that contains the information about user IDs and volumes is RtcAudioVolumeInfo.
    totalVolumeThe total volume (after audio mixing). Value range: 0 to 100.
    Since
    V4.5.0

◆ ChannelOnAddLiveStreamTask()

delegate void nertc.ChannelOnAddLiveStreamTask ( IRtcChannel  channel,
string  taskId,
string  url,
int  errorCode 
)

Notifies to add the result of live stream.
The callback asynchronously returns the callback result of IRtcChannel.AddLiveStreamTask . For information about actual pushing state, see ChannelOnLiveStreamStateChanged.

Parameters
channelThe current IRtcChannel object
taskIdThe ID of a stream-push task.
urlTask ID.
errorCodeThe result.
  • 0: Success.
  • Other values: Failure.
Since
V4.5.0

◆ ChannelOnUpdateLiveStreamTask()

delegate void nertc.ChannelOnUpdateLiveStreamTask ( IRtcChannel  channel,
string  taskId,
string  url,
int  errorCode 
)

Notifies to Updates the result of live stream.
The callback asynchronously returns the callback result of ref IRtcChannel::UpdateLiveStreamTask . For information about actual pushing state, see ChannelOnLiveStreamStateChanged.

Parameters
channelThe current IRtcChannel object
taskIdThe ID of a stream-push task.
urlThe URL for the streaming task.
errorCodeThe result.
  • 0: Success.
  • Other values: Failure.
Since
V4.5.0

◆ ChannelOnRemoveLiveStreamTask()

delegate void nertc.ChannelOnRemoveLiveStreamTask ( IRtcChannel  channel,
string  taskId,
int  errorCode 
)

Notifies to delete the result of live stream.
The callback asynchronously returns the callback result of ref IRtcChannel::RemoveLiveStreamTask . For information about actual pushing state, see ChannelOnLiveStreamStateChanged .

Parameters
channelThe current IRtcChannel object
taskIdThe ID of a task.
errorCodeThe result.
  • 0: Success.
  • Other values: Failure.
Since
V4.5.0

◆ ChannelOnLiveStreamStateChanged()

delegate void nertc.ChannelOnLiveStreamStateChanged ( IRtcChannel  channel,
string  taskId,
string  url,
RtcLiveStreamStateCode  state 
)

Notifies the status in live stream-pushing.

Note
The callback is valid in a call.
Parameters
channelThe current IRtcChannel object
taskIdThe ID of a task.
urlThe URL for the streaming task.
stateRtcLiveStreamStateCode The state of live stream-pushing.
  • 505: Pushing.
  • 506: Pushing fails.
  • 511: Pushing ends.
Since
V4.5.0

◆ ChannelOnRecvSEIMessage()

delegate void nertc.ChannelOnRecvSEIMessage ( IRtcChannel  channel,
ulong  uid,
byte[]  data,
uint  dataSize 
)

Occurs when the content of remote SEI is received.
After a remote client successfully sends SEI, the local client receives a message returned by the callback.

Parameters
channelThe current IRtcChannel object
[in]uidThe ID of the user who sends the SEI.
[in]dataThe received SEI data.
[in]dataSizeThe size of received SEI data.
Since
V4.5.0

◆ ChannelOnMediaRelayStateChanged()

delegate void nertc.ChannelOnMediaRelayStateChanged ( IRtcChannel  channel,
RtcChannelMediaRelayState  state,
string  channelName 
)

Occurs when the state of the media stream is relayed.

Since
V4.5.0
Parameters
channelThe current IRtcChannel object
stateThe state of the media stream.
channelNameThe name of the destination room where the media streams are relayed.

◆ ChannelOnMediaRelayEvent()

delegate void nertc.ChannelOnMediaRelayEvent ( IRtcChannel  channel,
RtcChannelMediaRelayEvent  evt,
string  channelName,
RtcErrorCode  error 
)

Occurs when events related to media stream relay are triggered.

Since
V4.5.0
Parameters
channelThe current IRtcChannel object
evtThe media stream relay event.
channelNameThe name of the destination room where the media streams are relayed.
errorSpecific error codes.

◆ ChannelOnPublishFallbackToAudioOnly()

delegate void nertc.ChannelOnPublishFallbackToAudioOnly ( IRtcChannel  channel,
bool  isFallback,
RtcVideoStreamType  streamType 
)

Occurs when the published local media stream falls back to an audio-only stream due to poor network conditions or switches back to audio and video stream after the network conditions improve.
If you call IRtcChannel.SetLocalPublishFallbackOption and set option to kNERtcStreamFallbackAudioOnly , this callback is triggered when the locally published stream falls back to audio-only mode due to poor uplink network conditions, or when the audio stream switches back to the audio and video stream after the uplink network conditions improve.

Since
V4.5.0
Parameters
channelThe current IRtcChannel object
isFallbackThe locally published stream falls back to audio-only mode or switches back to audio and video stream.
  • true: The published stream from a local client falls back to audio-only mode due to poor uplink network conditions.
  • false: The audio stream switches back to the audio and video stream after the upstream network condition improves.
streamTypeThe type of the video stream, such as mainstream and substream.
Since
V4.5.0

◆ ChannelOnSubscribeFallbackToAudioOnly()

delegate void nertc.ChannelOnSubscribeFallbackToAudioOnly ( IRtcChannel  channel,
ulong  uid,
bool  isFallback,
RtcVideoStreamType  streamType 
)

Occurs when the subscribed remote media stream falls back to an audio-only stream due to poor network conditions or switches back to the audio and video stream after the network condition improves.
If you call setLocalPublishFallbackOption and set option to kNERtcStreamFallbackAudioOnly , this callback is triggered when the locally published stream falls back to audio-only mode due to poor uplink network conditions, or when the audio stream switches back to the audio and video stream after the uplink network condition improves.

Since
V4.5.0
Parameters
channelThe current IRtcChannel object
uidThe ID of a remote user.
isFallbackThe subscribed remote media stream falls back to audio-only mode or switches back to the audio and video stream.
  • true: The subscribed remote media stream falls back to audio-only mode due to poor downstream network conditions.
  • false: The subscribed remote media stream switches back to the audio and video stream after the downstream network condition improves.
streamTypeThe type of the video stream, such as mainstream and substream.
Since
V4.5.0

◆ ChannelOnAvatarUserJoined()

delegate void nertc.ChannelOnAvatarUserJoined ( IRtcChannel  channel,
ulong  srcUid,
ulong  uid,
string  userName 
)

Called when a digital avatar joins the current room.

Note
  • The callback prompts that the remote digital avatar joins the current room and return the ID of the digital avatar.
  • If users want to use digital avatars without enabling the visual avatar, a digital avatar will join the current room.
Parameters
channelThe current IRtcChannel object
srcUidID of a source user of the remote digital avatar leaving the room. The digital avatar of the current user srcUid is 0.
uidID of the remote digital avatar joining the room。
userNameUser name of the remote digital avatar joining the room

◆ ChannelOnAvatarUserLeft()

delegate void nertc.ChannelOnAvatarUserLeft ( IRtcChannel  channel,
ulong  srcUid,
ulong  uid,
RtcSessionLeaveReason  reason 
)

Called when a digital avatar leaves the current room.

The remote digital avatar leaves the room (or goes offline).

Parameters
channelThe current IRtcChannel object
srcUidID of a source user of the remote digital avatar leaving the room. The digital avatar of the current user srcUid is 0.
uidID of the digital avatar leaving the room.
reasonreason for leaving the room.

◆ ChannelOnAvatarStatus()

delegate void nertc.ChannelOnAvatarStatus ( IRtcChannel  channel,
bool  enable,
RtcErrorCode  errorCode 
)

Called when the result of starting a digital avatar is returned.

Note
Parameters
channelThe current IRtcChannel object
enableStart or stop a digital avatar.
errorCoderesult.