NERtc macOS SDK  V5.6.0
| 类型定义 | 枚举
nertc 命名空间参考

namespace nertc 更多...

class  IAudioDeviceManager
 
class  IRtcChannel
 
class  IRtcChannelEventHandler
 
class  IDeviceCollection
 
struct  NERtcEngineContext
 
class  IRtcEngine
 
struct  NERtcLiveStreamTaskOption
 
struct  NERtcLiveStreamUserTranscoding
 
struct  NERtcLiveStreamImageInfo
 
struct  NERtcLiveStreamLayout
 
struct  NERtcLiveConfig
 
struct  NERtcLiveStreamTaskInfo
 
struct  NERtcCameraCaptureConfig
 
struct  NERtcDeviceInfo
 
struct  NERtcAudioVolumeInfo
 
struct  NERtcStats
 
struct  NERtcVideoLayerSendStats
 
struct  NERtcVideoSendStats
 
struct  NERtcVideoLayerRecvStats
 
struct  NERtcVideoRecvStats
 
struct  NERtcAudioLayerSendStats
 
struct  NERtcAudioSendStats
 
struct  NERtcAudioLayerRecvStats
 
struct  NERtcAudioRecvStats
 
struct  NERtcNetworkQualityInfo
 
struct  NERtcVideoConfig
 
struct  NERtcRectangle
 
struct  NERtcScreenCaptureSourceData
 
struct  NERtcVideoDimensions
 
struct  NERtcScreenCaptureParameters
 
struct  NERtcVideoCanvas
 
struct  NERtcAudioFrameRequestFormat
 
struct  NERtcAudioFormat
 
struct  NERtcAudioFrame
 
struct  NERtcAudioEncodedFrame
 
class  INERtcAudioFrameObserver
 
struct  NERtcVideoFrame
 
struct  NERtcVideoEncodedFrame
 
struct  NERtcCreateAudioMixingOption
 
struct  NERtcCreateAudioEffectOption
 
struct  NERtcChannelMediaRelayInfo
 
struct  NERtcChannelMediaRelayConfiguration
 
struct  NERtcVideoWatermarkImageConfig
 
struct  NERtcVideoWatermarkTextConfig
 
struct  NERtcVideoWatermarkTimestampConfig
 
struct  NERtcVideoWatermarkConfig
 
class  NERtcTakeSnapshotCallback
 
struct  NERtcServerAddresses
 
struct  NERtcAudioRecordingConfiguration
 
struct  NERtcMediaPacket
 
class  INERtcPacketObserver
 
struct  NERtcEncryptionConfig
 
struct  NERtcLastmileProbeConfig
 
struct  NERtcLastmileProbeOneWayResult
 
struct  NERtcLastmileProbeResult
 
struct  VirtualBackgroundSource
 
struct  NERtcReverbParam
 
struct  NERtcJoinChannelOptions
 
struct  NERtcJoinChannelOptionsEx
 
struct  NERtcUserJoinExtraInfo
 
struct  NERtcSize
 
struct  NERtcThumbImageBuffer
 
struct  NERtcScreenCaptureSourceInfo
 
class  IScreenCaptureSourceList
 
struct  NERtcPositionInfo
 
struct  NERtcSpatializerRoomProperty
 
class  IRtcEngineEventHandler
 
class  IRtcEngineEventHandlerEx
 
class  IRtcEngineEx
 
class  IRtcMediaStatsObserver
 
struct  NERtcPreDecodeVideoInfo
 
struct  NERtcPreDecodeAudioInfo
 
struct  NERtcPreDecodeFrameInfo
 
class  INERtcPreDecodeObserver
 
class  INERtcVideoEncoderQosObserver
 
class  IVideoDeviceManager
 

类型定义

typedef uint64_t uid_t
 
typedef uint64_t channel_id_t
 
typedef void * source_id_t
 
typedef void(* onFrameDataCallback) (uid_t uid, void *data, uint32_t type, uint32_t width, uint32_t height, uint32_t count, uint32_t offset[4], uint32_t stride[4], uint32_t rotation, void *user_data)
 
typedef NERtcVideoDimensions NERtcDimensions
 

枚举

enum  NERtcInterfaceIdType { kNERtcIIDAudioDeviceManager = 1 , kNERtcIIDVideoDeviceManager = 2 }
 
enum  NERtcClientRole { kNERtcClientRoleBroadcaster = 0 , kNERtcClientRoleAudience = 1 }
 
enum  NERtcChannelProfileType {
  kNERtcChannelProfileCommunication = 0 , kNERtcChannelProfileLiveBroadcasting = 1 , kNERtcChannelProfileVideoCall = 3 , kNERtcChannelProfileHighQualityVideoCall = 4 ,
  kNERtcChannelProfileChatroom = 5 , kNERtcChannelProfileHighQualityChatroom = 6 , kNERtcChannelProfileMeeting = 7
}
 
enum  NERtcMediaPriorityType { kNERtcMediaPriorityHigh = 50 , kNERtcMediaPriorityNormal = 100 }
 
enum  NERtcLiveStreamLayoutMode {
  kNERtcLayoutFloatingRightVertical = 0 , kNERtcLayoutFloatingLeftVertical , kNERtcLayoutSplitScreen , kNERtcLayoutSplitScreenScaling ,
  kNERtcLayoutCustom , kNERtcLayoutAudioOnly
}
 
enum  NERtcLiveStreamMode { kNERtcLsModeVideo = 0 , kNERtcLsModeAudio = 1 }
 
enum  NERtcLiveStreamVideoScaleMode { kNERtcLsModeVideoScaleFit = 0 , kNERtcLsModeVideoScaleCropFill = 1 }
 
enum  NERtcLiveStreamAudioSampleRate { kNERtcLiveStreamAudioSampleRate32000 = 32000 , kNERtcLiveStreamAudioSampleRate44100 = 44100 , kNERtcLiveStreamAudioSampleRate48000 = 48000 }
 
enum  NERtcLiveStreamAudioCodecProfile { kNERtcLiveStreamAudioCodecProfileLCAAC = 0 , kNERtcLiveStreamAudioCodecProfileHEAAC = 1 }
 
enum  NERtcLiveStreamStateCode { kNERtcLsStatePushing = 505 , kNERtcLsStatePushFail = 506 , kNERtcLsStatePushStopped = 511 , kNERtcLsStateImageError = 512 }
 
enum  NERtcOSCategory { kNERtcOSiOS = 1 , kNERtcOSAndroid = 2 , kNERtcOSPC = 3 , kNERtcOSWebRTC = 4 }
 
enum  NERtcAudioProfileType {
  kNERtcAudioProfileDefault = 0 , kNERtcAudioProfileStandard = 1 , kNERtcAudioProfileStandardExtend = 2 , kNERtcAudioProfileMiddleQuality = 3 ,
  kNERtcAudioProfileMiddleQualityStereo = 4 , kNERtcAudioProfileHighQuality = 5 , kNERtcAudioProfileHighQualityStereo = 6
}
 
enum  NERtcAudioScenarioType { kNERtcAudioScenarioDefault = 0 , kNERtcAudioScenarioSpeech = 1 , kNERtcAudioScenarioMusic = 2 }
 
enum  NERtcVoiceChangerType {
  kNERtcVoiceChangerOff = 0 , kNERtcVoiceChangerRobot = 1 , kNERtcVoiceChangerGaint = 2 , kNERtcVoiceChangerHorror = 3 ,
  kNERtcVoiceChangerMature = 4 , kNERtcVoiceChangerManToWoman = 5 , kNERtcVoiceChangerWomanToMan = 6 , kNERtcVoiceChangerManToLoli = 7 ,
  kNERtcVoiceChangerWomanToLoli = 8
}
 
enum  NERtcVoiceBeautifierType {
  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  NERtcVoiceEqualizationBand {
  kNERtcVoiceEqualizationBand_31 = 0 , kNERtcVoiceEqualizationBand_62 = 1 , kNERtcVoiceEqualizationBand_125 = 2 , kNERtcVoiceEqualizationBand_250 = 3 ,
  kNERtcVoiceEqualizationBand_500 = 4 , kNERtcVoiceEqualizationBand_1K = 5 , kNERtcVoiceEqualizationBand_2K = 6 , kNERtcVoiceEqualizationBand_4K = 7 ,
  kNERtcVoiceEqualizationBand_8K = 8 , kNERtcVoiceEqualizationBand_16K = 9
}
 
enum  NERtcVideoProfileType {
  kNERtcVideoProfileLowest = 0 , kNERtcVideoProfileLow = 1 , kNERtcVideoProfileStandard = 2 , kNERtcVideoProfileHD720P = 3 ,
  kNERtcVideoProfileHD1080P = 4 , kNERtcVideoProfileNone = 5 , kNERtcVideoProfileMAX = kNERtcVideoProfileHD1080P
}
 
enum  NERtcRemoteVideoStreamType { kNERtcRemoteVideoStreamTypeHigh = 0 , kNERtcRemoteVideoStreamTypeLow = 1 , kNERtcRemoteVideoStreamTypeNone = 2 }
 
enum  NERtcAudioDeviceType { kNERtcAudioDeviceUnknown = 0 , kNERtcAudioDeviceRecord , kNERtcAudioDevicePlayout }
 
enum  NERtcAudioDeviceState { kNERtcAudioDeviceActive = 0 , kNERtcAudioDeviceUnactive }
 
enum  NERtcAudioDeviceTransportType {
  kNERtcAudioDeviceTransportTypeUnknown = 0 , kNERtcAudioDeviceTransportTypeBluetooth = 1 , kNERtcAudioDeviceTransportTypeBluetoothA2DP = 2 , kNERtcAudioDeviceTransportTypeBluetoothLE = 3 ,
  kNERtcAudioDeviceTransportTypeUSB = 4 , kNERtcAudioDeviceTransportTypeHDMI = 5 , kNERtcAudioDeviceTransportTypeBuiltIn = 6 , kNERtcAudioDeviceTransportTypeThunderbolt = 7 ,
  kNERtcAudioDeviceTransportTypeAirPlay = 8 , kNERtcAudioDeviceTransportTypeVirtual = 9 , kNERtcAudioDeviceTransportTypeOther = 10
}
 
enum  NERtcVideoDeviceTransportType { kNERtcVideoDeviceTransportTypeUnknown = 0 , kNERtcVideoDeviceTransportTypeUSB = 1 , kNERtcVideoDeviceTransportTypeVirtual = 2 , kNERtcVideoDeviceTransportTypeOther = 3 }
 
enum  NERtcVideoDeviceType { kNERtcVideoDeviceUnknown = 0 , kNERtcVideoDeviceCapture }
 
enum  NERtcVideoDeviceState { kNERtcVideoDeviceAdded = 0 , kNERtcVideoDeviceRemoved }
 
enum  NERtcVideoScalingMode { kNERtcVideoScaleFit = 0 , kNERtcVideoScaleFullFill = 1 , kNERtcVideoScaleCropFill = 2 }
 
enum  NERtcVideoMirrorMode { kNERtcVideoMirrorModeAuto = 0 , kNERtcVideoMirrorModeEnabled = 1 , kNERtcVideoMirrorModeDisabled = 2 }
 
enum  NERtcVideoOutputOrientationMode { kNERtcVideoOutputOrientationModeAdaptative = 0 , kNERtcVideoOutputOrientationModeFixedLandscape = 1 , kNERtcVideoOutputOrientationModeFixedPortrait = 2 }
 
enum  NERtcConnectionStateType {
  kNERtcConnectionStateDisconnected = 1 , kNERtcConnectionStateConnecting = 2 , kNERtcConnectionStateConnected = 3 , kNERtcConnectionStateReconnecting = 4 ,
  kNERtcConnectionStateFailed = 5
}
 
enum  NERtcReasonConnectionChangedType {
  kNERtcReasonConnectionChangedLeaveChannel = 1 , kNERtcReasonConnectionChangedChannelClosed = 2 , kNERtcReasonConnectionChangedBeKicked = 3 , kNERtcReasonConnectionChangedTimeOut = 4 ,
  kNERtcReasonConnectionChangedJoinChannel = 5 , kNERtcReasonConnectionChangedJoinSucceed = 6 , kNERtcReasonConnectionChangedReJoinSucceed = 7 , kNERtcReasonConnectionChangedMediaConnectionDisconnected = 8 ,
  kNERtcReasonConnectionChangedSignalDisconnected = 9 , kNERtcReasonConnectionChangedRequestChannelFailed = 10 , kNERtcReasonConnectionChangedJoinChannelFailed = 11 , kNERtcReasonConnectionChangedReDispatch = 12 ,
  kNERtcReasonConnectionChangedSettingProxyServer = 13
}
 
enum  NERtcAudioStreamType { kNERtcAudioStreamTypeMain = 0 , kNERtcAudioStreamTypeSub = 1 }
 
enum  NERtcNetworkQualityType {
  kNERtcNetworkQualityUnknown = 0 , kNERtcNetworkQualityExcellent = 1 , kNERtcNetworkQualityGood = 2 , kNERtcNetworkQualityPoor = 3 ,
  kNERtcNetworkQualityBad = 4 , kNERtcNetworkQualityVeryBad = 5 , kNERtcNetworkQualityDown = 6
}
 
enum  NERtcVideoCropMode { kNERtcVideoCropModeDefault = 0 , kNERtcVideoCropMode16x9 = 1 , kNERtcVideoCropMode4x3 = 2 , kNERtcVideoCropMode1x1 = 3 }
 
enum  NERtcVideoFramerateType {
  kNERtcVideoFramerateFpsDefault = 0 , kNERtcVideoFramerateFps_7 = 7 , kNERtcVideoFramerateFps_10 = 10 , kNERtcVideoFramerateFps_15 = 15 ,
  kNERtcVideoFramerateFps_24 = 24 , kNERtcVideoFramerateFps_30 = 30 , kNERtcVideoFramerateFps_60 = 60
}
 
enum  NERtcDegradationPreference { kNERtcDegradationDefault = 0 , kNERtcDegradationMaintainFramerate = 1 , kNERtcDegradationMaintainQuality = 2 , kNERtcDegradationBalanced = 3 }
 
enum  NERtcScreenProfileType {
  kNERtcScreenProfile480P = 0 , kNERtcScreenProfileHD720P = 1 , kNERtcScreenProfileHD1080P = 2 , kNERtcScreenProfileCustom = 3 ,
  kNERtcScreenProfileNone = 4 , kNERtcScreenProfileMAX = kNERtcScreenProfileHD1080P
}
 
enum  NERtcScreenCaptureStatus {
  kScreenCaptureStatusStart = 1 , kScreenCaptureStatusPause = 2 , kScreenCaptureStatusResume = 3 , kScreenCaptureStatusStop = 4 ,
  kScreenCaptureStatusCovered = 5 , kScreenCaptureStatusAbort = 6
}
 
enum  NERtcScreenCaptureSourceType { kUnknown = -1 , kWindow = 0 , kScreen = 1 , kCustom = 2 }
 
enum  NERtcScreenCaptureCustomHLBorderAction {
  kSetPos = 0 , kSetAbove = 1 , kSetBelow = 2 , kHide = 3 ,
  kShow = 4
}
 
enum  NERtcSubStreamContentPrefer { kNERtcSubStreamContentPreferMotion = 0 , kNERtcSubStreamContentPreferDetails = 1 }
 
enum  NERtcRecordType { kNERtcRecordTypeAll = 0 , kNERtcRecordTypeMix = 1 , kNERtcRecordTypeSingle = 2 }
 
enum  NERtcAudioType { kNERtcAudioTypePCM16 = 0 }
 
enum  NERtcRawAudioFrameOpModeType { kNERtcRawAudioFrameOpModeReadOnly = 0 , kNERtcRawAudioFrameOpModeReadWrite }
 
enum  NERtcAudioPayloadType { kNERtcAudioPayloadTypeOPUS = 111 }
 
enum  NERtcVideoType {
  kNERtcVideoTypeI420 = 0 , kNERtcVideoTypeNV12 = 1 , kNERtcVideoTypeNV21 = 2 , kNERtcVideoTypeBGRA = 3 ,
  kNERtcVideoTypeCVPixelBuffer = 4
}
 
enum  NERtcVideoRotation { kNERtcVideoRotation_0 = 0 , kNERtcVideoRotation_90 = 90 , kNERtcVideoRotation_180 = 180 , kNERtcVideoRotation_270 = 270 }
 
enum  NERtcVideoCodecType { kNERtcVideoCodecTypeH264 = 3 }
 
enum  NERtcNalFrameType { kNERtcNalFrameTypeIDR = 1 , kNERtcNalFrameTypeI = 2 , kNERtcNalFrameTypeP = 3 }
 
enum  NERtcSessionLeaveReason {
  kNERtcSessionLeaveNormal = 0 , kNERtcSessionLeaveForFailOver = 1 , kNERtcSessionLeaveUpdate = 2 , kNERtcSessionLeaveForKick = 3 ,
  kNERtcSessionLeaveTimeOut = 4
}
 
enum  NERtcAudioMixingState { kNERtcAudioMixingStateFinished = 0 , kNERtcAudioMixingStateFailed = 1 }
 
enum  NERtcVideoStreamType { kNERTCVideoStreamMain = 0 , kNERTCVideoStreamSub = 1 }
 
enum  NERtcFeatureType { kNERTCVirtualBackground = 0 }
 
enum  NERtcChannelMediaRelayState { kNERtcChannelMediaRelayStateIdle = 0 , kNERtcChannelMediaRelayStateConnecting = 1 , kNERtcChannelMediaRelayStateRunning = 2 , kNERtcChannelMediaRelayStateFailure = 3 }
 
enum  NERtcChannelMediaRelayEvent {
  kNERtcChannelMediaRelayEventDisconnect = 0 , kNERtcChannelMediaRelayEventConnecting = 1 , kNERtcChannelMediaRelayEventConnected = 2 , kNERtcChannelMediaRelayEventVideoSentToDestChannelSuccess = 3 ,
  kNERtcChannelMediaRelayEventAudioSentToDestChannelSuccess = 4 , kNERtcChannelMediaRelayEventOtherStreamSentToDestChannelSuccess = 5 , kNERtcChannelMediaRelayEventFailure = 100
}
 
enum  NERtcLocalVideoWatermarkState {
  kNERtcLocalWatermarkStateSetSuccess , kNERtcLocalWatermarkStateDeviceNotSupported , kNERtcLocalWatermarkStateImgFormatNotSupported , kNERtcLocalWatermarkStateImgNumError ,
  kNERtcLocalWatermarkStateImgSizeError , kNERtcLocalWatermarkStateFPSError , kNERtcLocalWatermarkStateFontError , kNERtcLocalWatermarkStateWmAlphaError ,
  kNERtcLocalWatermarkStateTextContentEmptyError , kNERtcLocalWatermarkStateCancel = 20
}
 
enum  NERtcLogLevel {
  kNERtcLogLevelFatal = 0 , kNERtcLogLevelError = 1 , kNERtcLogLevelWarning = 2 , kNERtcLogLevelInfo = 3 ,
  kNERtcLogLevelDetailInfo = 4 , kNERtcLogLevelVerbos = 5 , kNERtcLogLevelDebug = 6 , kNERtcLogLevelOff = 7
}
 
enum  NERtcAreaCodeType { kNERtcAreaCodeTypeDefault = 0 , kNERtcAreaCodeTypeCN = 1 , kNERtcAreaCodeTypeOverseaDefault = 2 }
 
enum  NERtcSendOnPubType { kNERtcSendOnPubNone = 0 , kNERtcSendOnPubHigh = 1 , kNERtcSendOnPubLow = 1 << 1 , kNERtcSendOnPubAll = kNERtcSendOnPubLow | kNERtcSendOnPubHigh }
 
enum  NERtcAudioRecordingQuality { kNERtcAudioRecordingQualityLow = 0 , kNERtcAudioRecordingQualityMedium = 1 , kNERtcAudioRecordingQualityHigh = 2 }
 
enum  NERtcAudioRecordingPosition { kNERtcAudioRecordingPositionMixedRecordingAndPlayback = 0 , kNERtcAudioRecordingPositionRecording = 1 , kNERtcAudioRecordingPositionMixedPlayback = 2 }
 
enum  NERtcAudioRecordingCycleTime {
  kNERtcAudioRecordingCycleTime0 = 0 , kNERtcAudioRecordingCycleTime10 = 10 , kNERtcAudioRecordingCycleTime60 = 60 , kNERtcAudioRecordingCycleTime360 = 360 ,
  kNERtcAudioRecordingCycleTime900 = 900
}
 
enum  NERtcAudioRecordingCode {
  kNERtcAudioRecordErrorSuffix = 1 , kNERtcAudioRecordOpenFileFailed = 2 , kNERtcAudioRecordStart = 3 , kNERtcAudioRecordError = 4 ,
  kNERtcAudioRecordFinish = 5
}
 
enum  NERtcStreamFallbackOption { kNERtcStreamFallbackDisabled = 0 , kNERtcStreamFallbackVideoStreamLow = 1 , kNERtcStreamFallbackAudioOnly = 2 }
 
enum  NERtcEncryptionMode { kNERtcGMCryptoSM4ECB = 0 , NERtcEncryptionModeCustom }
 
enum  NERtcLastmileProbeResultState { kNERtcLastmileProbeResultComplete = 1 , kNERtcLastmileProbeResultIncompleteNoBwe = 2 , kNERtcLastmileProbeResultUnavailable = 3 }
 
enum  NERtcTransportType { kNERtcTransportTypeNoneProxy = 0 , kNERtcTransportTypeUDPProxy = 1 }
 
enum  NERtcInstallCastAudioDriverResult { kNERtcInstallCastAudioDriverSuccess = 0 , kNERtcInstallCastAudioDriverNotAuthorized = 1 , kNERtcInstallCastAudioDriverFailed = 2 }
 
enum  NERtcVirtualBackgroundSourceStateReason {
  kNERtcVirtualBackgroundSourceStateReasonSuccess = 0 , kNERtcVirtualBackgroundSourceStateReasonImageNotExist = 1 , kNERtcVirtualBackgroundSourceStateReasonImageFormatNotSupported = 2 , kNERtcVirtualBackgroundSourceStateReasonColorFormatNotSupported = 3 ,
  kNERtcVirtualBackgroundSourceStateReasonDeviceNotSupported = 4
}
 
enum  NERtcAudioDumpType { NERtcAudioDumpTypePCM = 0 , NERtcAudioDumpTypeAll = 1 , NERtcAudioDumpTypeWAV = 2 }
 
enum  NERtcRangeAudioMode { NERtcRangeAudioModeDefault = 0 , NERtcRangeAudioModeTeam = 1 }
 
enum  NERtcMediaPubType { NERtcMediaPubTypeAudio }
 
enum  NERtcBeautyEffectType {
  kNERtcBeautyWhiteTeeth = 0 , kNERtcBeautyLightEye , kNERtcBeautyWhiten , kNERtcBeautySmooth ,
  kNERtcBeautySmallNose , kNERtcBeautyEyeDis , kNERtcBeautyEyeAngle , kNERtcBeautyMouth ,
  kNERtcBeautyBigEye , kNERtcBeautySmallFace , kNERtcBeautyJaw , kNERtcBeautyThinFace ,
  kNERtcBeautyFaceRuddy , kNERtcBeautyLongNose , kNERtcBeautyRenZhong , kNERtcBeautyMouthAngle ,
  kNERtcBeautyRoundEye , kNERtcBeautyOpenEyeAngle , kNERtcBeautyVFace , kNERtcBeautyThinUnderjaw ,
  kNERtcBeautyNarrowFace , kNERtcBeautyCheekBone , kNERtcBeautyFaceSharpen , kNERtcBeautyMouthWider ,
  kNERtcBeautyForeheadWrinkles , kNERtcBeautyDarkCircles , kNERtcBeautySmileLines , kNERtcBeautyShortFace
}
 
enum  NERtcSpatializerRoomCapacity {
  kNERtcSpatializerRoomCapacitySmall = 0 , kNERtcSpatializerRoomCapacityMedium = 1 , kNERtcSpatializerRoomCapacityLarge = 2 , kNERtcSpatializerRoomCapacityHuge = 3 ,
  kNERtcSpatializerRoomCapacityNone = 4
}
 
enum  NERtcSpatializerMaterialName {
  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  NERtcSpatializerRenderMode {
  kNERtcSpatializerRenderStereoPanning = 0 , kNERtcSpatializerRenderBinauralLowQuality , kNERtcSpatializerRenderBinauralMediumQuality , kNERtcSpatializerRenderBinauralHighQuality ,
  kNERtcSpatializerRenderRoomEffectsOnly
}
 
enum  NERtcDistanceRolloffModel { kNERtcDistanceRolloffLogarithmic = 0 , kNERtcDistanceRolloffLinear , kNERtcDistanceRolloffNone , kNERtcDistanceRolloffLinearOnly }
 
enum  NERtcPreDecodeMediaType { kNERtcPreDecodeMediaTypeAudio = 0 , kNERtcPreDecodeMediaTypeVideo = 1 , kNERtcPreDecodeMediaTypeUnknown = 100 }
 
enum  NERtcErrorCode {
  kNERtcNoError = 0 , kNERtcErrChannelReservePermissionDenied = 403 , kNERtcErrChannelReserveTimeOut = 408 , kNERtcErrChannelReserveErrorParam = 414 ,
  kNERtcErrChannelReserveErrorAppKey = 417 , kNERtcErrChannelReserveServerFail = 500 , kNERtcErrChannelReserveMoreThanTwoUser = 600 , kNERtcErrChannelPermissionKeyError = 901 ,
  kNERtcErrChannelPermissionKeyTimeout = 902 , kNERtcErrLsTaskRequestInvalid = 1301 , kNERtcErrLsTaskIsInvaild = 1400 , kNERtcErrLsTaskRoomExited = 1401 ,
  kNERtcErrLsTaskNumLimit = 1402 , kNERtcErrLsTaskDuplicateId = 1403 , kNERtcErrLsTaskNotFound = 1404 , kNERtcErrLsTaskRequestErr = 1417 ,
  kNERtcErrLsTaskInternalServerErr = 1500 , kNERtcErrLsTaskInvalidLayout = 1501 , kNERtcErrLsTaskUserPicErr = 1512 , kNERtcErrChannelNoPublishPermission = 1620 ,
  kNERtcErrChannelNoSubscribePermission = 2803 , kNERtcErrServerBroadcasterReachedTheLimit = 4001 , kNERtcErrServerPersonsInRoomReachedTheLimit = 4003 , 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 , kNERtcErrDeviceOccupied = 30027 ,
  kNERtcErrJoinInterruptedDueToLeaveAction = 30028 , kNERtcErrJoinInterruptedDueToDestroyAction = 30029 , kNERtcErrJoinInterruptedDueToAppTermination = 30030 , 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 , kNERtcErrUserPermKeyAuthFailed = 30121 , kNERtcErrSEIExceedMaxDataLimit = 30122 , kNERtcErrDataChannelExceedMaxDataLimit = 30123 ,
  kNERtcErrConnectionNotFound = 30200 , kNERtcErrStreamNotFound = 30201 , kNERtcErrAddTrackFail = 30202 , kNERtcErrTrackNotFound = 30203 ,
  kNERtcErrMediaConnectionDisconnected = 30204 , kNERtcErrSignalDisconnected = 30205 , kNERtcErrServerKicked = 30206 , kNERtcErrKickedForRoomClosed = 30207 ,
  kNERtcErrChannelLeaveBySwitchAction = 30208 , kNERtcErrChannelLeaveByDuplicateUidLogin = 30209 , kNERtcRuntimeErrADMNoAuthorize = 40000 , kNERtcRuntimeErrADMInitRecording = 40001 ,
  kNERtcRuntimeErrADMStartRecording = 40002 , kNERtcRuntimeErrADMStopRecording = 40003 , kNERtcRuntimeErrADMInitPlayout = 40004 , kNERtcRuntimeErrADMStartPlayout = 40005 ,
  kNERtcRuntimeErrADMStopPlayout = 40006 , kNERtcRuntimeErrADMRecordingFailed = 40007 , kNERtcRuntimeErrADMPlayoutFailed = 40008 , kNERtcRuntimeErrVDMNoAuthorize = 50000 ,
  kNERtcRuntimeErrVDMNotScreenUseSubStream = 50001 , kNERtcRuntimeErrVDMCameraDisconnect = 50303 , kNERtcRuntimeErrVDMCameraFreezed = 50304 , kNERtcRuntimeErrVDMCameraUnknownError = 50305 ,
  kNERtcRuntimeErrVDMCameraNoFrame = 50306 , kNERtcRuntimeErrVDMCameraCreateFail = 50307 , kNERtcRuntimeErrScreenCaptureNoAuthorize = 50400
}
 
enum  NERtcRoomServerErrorCode {
  kNERtcRoomServerErrOK = 200 , kNERtcRoomServerErrAuthError = 401 , kNERtcRoomServerErrChannelNotExist = 404 , kNERtcRoomServerErrUidNotExist = 405 ,
  kNERtcRoomServerErrDataError = 417 , kNERtcRoomServerErrUnknown = 500 , kNERtcRoomServerErrServerError = 600 , kNERtcRoomServerErrInvilid = 11403
}
 
enum  NERtcAudioMixingErrorCode {
  kNERtcAudioMixingErrorOK = 0 , kNERtcAudioMixingErrorFatal = 1 , kNERtcAudioMixingErrorCanNotOpen , kNERtcAudioMixingErrorDecode ,
  kNERtcAudioMixingErrorInterrupt , kNERtcAudioMixingErrorHttpNotFound , kNERtcAudioMixingErrorOpen , kNERtcAudioMixingErrorNInfo ,
  kNERtcAudioMixingErrorNStream , kNERtcAudioMixingErrorNCodec , kNERtcAudioMixingErrorNMem , kNERtcAudioMixingErrorCodecOpen ,
  kNERtcAudioMixingErrorInvalidInfo , kNERtcAudioMixingErrorOpenTimeout , kNERtcAudioMixingErrorIoTimeout , kNERtcAudioMixingErrorIo
}
 
enum  NERtcWarnCode { kLiteSDKNoWarning = 0 , kNERtcWarningChannelAbilityNotMatch = 406 , kNERtcWarningASLAudioFallback = 407 }
 

详细描述

namespace nertc

类型定义说明

◆ channel_id_t

typedef uint64_t nertc::channel_id_t

64位无符号整数。建议设置范围:1到 263-1,并保证唯一性。

◆ onFrameDataCallback

typedef void(* nertc::onFrameDataCallback) (uid_t uid, void *data, uint32_t type, uint32_t width, uint32_t height, uint32_t count, uint32_t offset[4], uint32_t stride[4], uint32_t rotation, void *user_data)

视频帧数据回调

参数
uid用户id
data数据指针
type数据类型NERtcVideoType
width宽度
height高度
count数据类型个数,即offset及stride的数目
offset每类数据偏移
stride每类数据步进
rotation画面旋转角度NERtcVideoRotation
user_data用户透传数据

◆ source_id_t

typedef void* nertc::source_id_t

用于标识屏幕捕捉的源,代表某个窗口或屏幕。源为窗口时, Windows上该类型会转换为HWND, MAC上转换为整形。源为屏幕时会转换为整形。

◆ uid_t

typedef uint64_t nertc::uid_t

64位无符号整数。建议设置范围:1到 263-1,并保证唯一性。

枚举类型说明

◆ NERtcAreaCodeType

区域类型。

枚举值
kNERtcAreaCodeTypeDefault 

默认未指定区域。

kNERtcAreaCodeTypeCN 

中国大陆。

kNERtcAreaCodeTypeOverseaDefault 

海外通用。

◆ NERtcAudioDeviceState

音频设备类型状态。

枚举值
kNERtcAudioDeviceActive 

音频设备已激活

kNERtcAudioDeviceUnactive 

音频设备未激活

kNERtcAudioDeviceSelectChanged 

音频设备被选中的状态,固定值为 100

◆ NERtcAudioDeviceTransportType

音频设备连接类型。

枚举值
kNERtcAudioDeviceTransportTypeUnknown 

未知设备

kNERtcAudioDeviceTransportTypeBluetooth 

蓝牙设备

kNERtcAudioDeviceTransportTypeBluetoothA2DP 

蓝牙立体声设备

kNERtcAudioDeviceTransportTypeBluetoothLE 

蓝牙低功耗设备

kNERtcAudioDeviceTransportTypeUSB 

USB设备

kNERtcAudioDeviceTransportTypeHDMI 

HDMI设备

kNERtcAudioDeviceTransportTypeBuiltIn 

内置设备

kNERtcAudioDeviceTransportTypeThunderbolt 

雷电接口设备

kNERtcAudioDeviceTransportTypeAirPlay 

AirPlay设备

kNERtcAudioDeviceTransportTypeVirtual 

虚拟设备

kNERtcAudioDeviceTransportTypeOther 

其他设备

◆ NERtcAudioDeviceType

音频设备类型。

枚举值
kNERtcAudioDeviceUnknown 

未知音频设备

kNERtcAudioDeviceRecord 

音频采集设备

kNERtcAudioDevicePlayout 

音频播放设备

◆ NERtcAudioDumpType

音频dump类型

枚举值
NERtcAudioDumpTypePCM 

仅输出.dump文件

NERtcAudioDumpTypeAll 

输出.dump和.wav文件

NERtcAudioDumpTypeWAV 

仅输出.wav文件 (默认)

◆ NERtcAudioMixingErrorCode

混音音乐文件错误码。

枚举值
kNERtcAudioMixingErrorOK 

没有错误。

kNERtcAudioMixingErrorFatal 

通用错误。

kNERtcAudioMixingErrorCanNotOpen 

伴音不能正常打开

kNERtcAudioMixingErrorDecode 

音频解码错误

kNERtcAudioMixingErrorInterrupt 

操作中断码

kNERtcAudioMixingErrorHttpNotFound 

404 file not found,only for http /

kNERtcAudioMixingErrorOpen 

打开流 / 文件失败

kNERtcAudioMixingErrorNInfo 

获取解码信息失败 / 超时

kNERtcAudioMixingErrorNStream 

无音频流

kNERtcAudioMixingErrorNCodec 

无解码器

kNERtcAudioMixingErrorNMem 

无内存

kNERtcAudioMixingErrorCodecOpen 

解码器打开失败 / 超时

kNERtcAudioMixingErrorInvalidInfo 

无效音频参数(声道、采样率)

kNERtcAudioMixingErrorOpenTimeout 

打开流 / 文件超时

kNERtcAudioMixingErrorIoTimeout 

网络io超时

kNERtcAudioMixingErrorIo 

网络io错误

◆ NERtcAudioMixingState

音乐文件播放状态。

枚举值
kNERtcAudioMixingStateFinished 

音乐文件播放结束。

kNERtcAudioMixingStateFailed 

音乐文件报错。详见: NERtcAudioMixingErrorCode

◆ NERtcAudioPayloadType

音频payload类型。

枚举值
kNERtcAudioPayloadTypeOPUS 

OPUS音频格式。

◆ NERtcAudioProfileType

音频属性。设置采样率,码率,编码模式和声道数。

枚举值
kNERtcAudioProfileDefault 

0: 默认设置。Speech 场景下为 kNERtcAudioProfileStandardExtend,Music 场景下为 kNERtcAudioProfileHighQuality。

kNERtcAudioProfileStandard 

1: 普通质量的音频编码,16000Hz,20Kbps

kNERtcAudioProfileStandardExtend 

2: 普通质量的音频编码,16000Hz,32Kbps

kNERtcAudioProfileMiddleQuality 

3: 中等质量的音频编码,48000Hz,48Kbps

kNERtcAudioProfileMiddleQualityStereo 

4: 中等质量的立体声编码,48000Hz * 2,80Kbps

kNERtcAudioProfileHighQuality 

5: 高质量的音频编码,48000Hz,96Kbps

kNERtcAudioProfileHighQualityStereo 

6: 高质量的立体声编码,48000Hz * 2,128Kbps

◆ NERtcAudioRecordingCode

录音回调事件错误码

枚举值
kNERtcAudioRecordErrorSuffix 

不支持的录音文件格式。

kNERtcAudioRecordOpenFileFailed 

无法创建录音文件,原因通常包括:

  • 应用没有磁盘写入权限。
  • 文件路径不存在。
kNERtcAudioRecordStart 

开始录制。

kNERtcAudioRecordError 

录制错误。原因通常为磁盘空间已满,无法写入。

kNERtcAudioRecordFinish 

完成录制。

◆ NERtcAudioRecordingQuality

录音音质

枚举值
kNERtcAudioRecordingQualityLow 

低音质

kNERtcAudioRecordingQualityMedium 

中音质

kNERtcAudioRecordingQualityHigh 

高音质

◆ NERtcAudioScenarioType

音频应用场景。不同的场景设置对应不同的音频采集模式、播放模式。

枚举值
kNERtcAudioScenarioDefault 

0: 默认设置

  • kNERtcChannelProfileCommunication下为kNERtcAudioScenarioSpeech,
  • kNERtcChannelProfileLiveBroadcasting下为kNERtcAudioScenarioMusic。
kNERtcAudioScenarioSpeech 

1: 语音场景. NERtcAudioProfileType 推荐使用 kNERtcAudioProfileMiddleQuality 及以下

kNERtcAudioScenarioMusic 

2: 音乐场景。NERtcAudioProfileType 推荐使用 kNERtcAudioProfileMiddleQualityStereo 及以上

◆ NERtcAudioStreamType

音频流类型。

枚举值
kNERtcAudioStreamTypeMain 

主流。

kNERtcAudioStreamTypeSub 

辅流。

◆ NERtcAudioType

音频类型。

枚举值
kNERtcAudioTypePCM16 

PCM 音频格式。

◆ NERtcBeautyEffectType

美颜类型。

枚举值
kNERtcBeautyWhiteTeeth 

美牙。强度默认值为 0.0。

kNERtcBeautyLightEye 

亮眼。强度默认值为 0.0。

kNERtcBeautyWhiten 

美白。强度默认值为 0.0。

kNERtcBeautySmooth 

磨皮。强度默认值为 0.0。

kNERtcBeautySmallNose 

小鼻。强度默认值为 0.0。

kNERtcBeautyEyeDis 

眼距调整。强度默认值为 0.5。

kNERtcBeautyEyeAngle 

眼角调整。强度默认值为 0.5。

kNERtcBeautyMouth 

嘴型调整。强度默认值为 0.5。

kNERtcBeautyBigEye 

大眼。强度默认值为 0.0。

kNERtcBeautySmallFace 

小脸。强度默认值为 0.0。

kNERtcBeautyJaw 

下巴调整。强度默认值为 0.0。

kNERtcBeautyThinFace 

瘦脸。强度默认值为 0.0。

kNERtcBeautyFaceRuddy 

红润。强度默认值为 0.0。

kNERtcBeautyLongNose 

长鼻。强度默认值为 0.5。

kNERtcBeautyRenZhong 

人中。强度默认值为 0.5。

kNERtcBeautyMouthAngle 

嘴角。强度默认值为 0.5。

kNERtcBeautyRoundEye 

圆眼。强度默认值为 0.0。

kNERtcBeautyOpenEyeAngle 

开眼角。强度默认值为 0.0。

kNERtcBeautyVFace 

V 脸。强度默认值为 0.0。

kNERtcBeautyThinUnderjaw 

瘦下颚。强度默认值为 0.0。

kNERtcBeautyNarrowFace 

窄脸。强度默认值为 0.0。

kNERtcBeautyCheekBone 

瘦颧骨。强度默认值为 0.0。

kNERtcBeautyFaceSharpen 

锐化。强度默认值为 0.0。

kNERtcBeautyMouthWider 

调整嘴巴宽度。强度默认值为 0.5。

kNERtcBeautyForeheadWrinkles 

祛抬头纹。强度默认值为 0.0。

kNERtcBeautyDarkCircles 

祛黑眼圈。强度默认值为 0.0。

kNERtcBeautySmileLines 

祛法令纹。强度默认值为 0.0。

kNERtcBeautyShortFace 

短脸。强度默认值为 0.0。

◆ NERtcChannelMediaRelayEvent

媒体流转发回调事件。

枚举值
kNERtcChannelMediaRelayEventDisconnect 

媒体流转发停止。

kNERtcChannelMediaRelayEventConnecting 

SDK 正在连接服务器,开始尝试转发媒体流。

kNERtcChannelMediaRelayEventConnected 

连接服务器成功。

kNERtcChannelMediaRelayEventVideoSentToDestChannelSuccess 

视频音频媒体流成功转发到目标房间。

kNERtcChannelMediaRelayEventAudioSentToDestChannelSuccess 

音频媒体流成功转发到目标房间。

kNERtcChannelMediaRelayEventOtherStreamSentToDestChannelSuccess 

媒体流屏幕共享等其他流成功转发到目标房间。

kNERtcChannelMediaRelayEventFailure 

媒体流转发失败。原因包括:

  • kNERtcErrChannelReserveErrorParam(414):请求参数错误。
  • kNERtcErrChannelMediaRelayInvalidState(30110):重复调用 startChannelMediaRelay。
  • kNERtcErrChannelMediaRelayPermissionDenied(30111):媒体流转发权限不足。例如调用 startChannelMediaRelay 的房间成员为主播角色、或房间为双人通话房间,不支持转发媒体流。
  • kNERtcErrChannelMediaRelayStopFailed(30112):调用 stopChannelMediaRelay 前,未调用 startChannelMediaRelay。

◆ NERtcChannelMediaRelayState

媒体流转发状态

枚举值
kNERtcChannelMediaRelayStateIdle 

初始状态。在成功调用 stopChannelMediaRelay 停止跨房间媒体流转发后, onMediaRelayStateChanged 会回调该状态。

kNERtcChannelMediaRelayStateConnecting 

SDK 尝试跨房间转发媒体流。

kNERtcChannelMediaRelayStateRunning 

源房间主播角色成功加入目标房间。

kNERtcChannelMediaRelayStateFailure 

发生异常,详见 onMediaRelayEvent 的 error 中提示的错误信息。

◆ NERtcChannelProfileType

场景模式。

枚举值
kNERtcChannelProfileCommunication 

通话场景

kNERtcChannelProfileLiveBroadcasting 

直播推流场景

kNERtcChannelProfileVideoCall 

视频 1对1 呼叫场景。该场景会关闭视频大小流模式、自动打开视频、自动订阅视频、视频格式为 640x360/480 @ 15 fps、传输策略为保清晰度,高码流、音频编码采样率为16k,码率为20kbps。

自从
V5.6.0
kNERtcChannelProfileHighQualityVideoCall 

清晰度较高的 1对1 呼叫场景。该场景会关闭视频大小流模式、自动打开视频、自动订阅视频、视频格式为 960x540 @ 15 fps、传输策略为保清晰度,高码流、音频编码采样率为24k,码率为48kbps。

自从
V5.5.40
kNERtcChannelProfileChatroom 

语聊房场景。该场景会关闭视频大小流模式、关闭自动打开视频、关闭自动订阅视频、视频格式为 640x360/480 @ 15 fps、传输策略为保清晰度,高码流、音频编码采样率为48k,码率为48kbps。

自从
V5.5.40
kNERtcChannelProfileHighQualityChatroom 

高品质语聊房场景。该场景会关闭视频大小流模式、关闭自动打开视频、关闭自动订阅视频、视频格式为 640x360/480 @ 15 fps、传输策略为保清晰度,高码流、音频编码采样率为48k,码率为96kbps。

自从
V5.5.40
kNERtcChannelProfileMeeting 

会议场景。该场景会打开视频大小流模式、关闭自动打开视频、关闭自动订阅视频、视频格式为 1280x720/ @ 30 fps、传输策略为清晰度和帧率平衡,低码流、音频编码采样率为24k,码率为48kbps。

自从
V5.5.40

◆ NERtcClientRole

参会者角色类型

枚举值
kNERtcClientRoleBroadcaster 

(默认)直播模式中的主播,可以操作摄像头等音视频设备、发布流、配置互动直播推流任务、上下线对房间内其他用户可见。

kNERtcClientRoleAudience 

直播模式中的观众,观众只能接收音视频流,不支持操作音视频设备、配置互动直播推流任务、上下线不通知其他用户。

◆ NERtcConnectionStateType

当前房间的连接状态。

枚举值
kNERtcConnectionStateDisconnected 

尚未加入房间。
该状态表示当前处于:

  • 调用 initialize 接口之后、调用 joinChannel 接口之前的阶段。
  • 调用 leaveChannel 后离开房间的阶段。
kNERtcConnectionStateConnecting 

正在加入房间。
该状态表示 SDK 处于调用 joinChannel 接口之后,正在建立房间连接的阶段。如果加入房间成功 App 会收到 onConnectionStateChange 回调,当前状态变为 kNERtcConnectionStateConnected。

kNERtcConnectionStateConnected 

加入房间成功。
该状态表示用户已经加入房间,如果因网络断开或切换而导致 SDK 与房间的连接中断,SDK 会自动重连,此时 App 会收到 onConnectionStateChange 回调 ,当前状态变为 kNERtcConnectionStateReconnecting。

kNERtcConnectionStateReconnecting 

正在尝试重新加入房间。
该状态表示 SDK 之前曾加入过房间,但因为网络原因中断了,此时 SDK 会自动尝试重新加入房间。如果重连还是没能加入房间会触发 onConnectionStateChange 回调, 当前状态变为 kNERtcConnectionStateFailed,SDK 停止尝试重连。

kNERtcConnectionStateFailed 

加入房间失败。
该状态表示 SDK 已经不再尝试重新加入房间。如果用户还想重新加入房间,则需要再次调用 joinChannel。

◆ NERtcDegradationPreference

NERtcDegradationPreference 视频编码策略。

枚举值
kNERtcDegradationDefault 
  • (默认)根据场景模式调整适应性偏好。
  • 通信场景中,选择kNERtcDegradationBalanced 模式,在编码帧率和视频质量之间保持平衡。
  • 直播场景中,选择kNERtcDegradationMaintainQuality 模式,降低编码帧率以保证视频质量。
kNERtcDegradationMaintainFramerate 

流畅优先,降低视频质量以保证编码帧率。在弱网环境下,降低视频清晰度以保证视频流畅,此时画质降低,画面会变得模糊,但可以保持视频流畅。

kNERtcDegradationMaintainQuality 

清晰优先,降低编码帧率以保证视频质量。在弱网环境下,降低视频帧率以保证视频清晰,此时可能会出现一定卡顿。

kNERtcDegradationBalanced 

在编码帧率和视频质量之间保持平衡。

◆ NERtcDistanceRolloffModel

空间音效衰减模式

枚举值
kNERtcDistanceRolloffLogarithmic 

指数模式

kNERtcDistanceRolloffLinear 

线性模式

kNERtcDistanceRolloffNone 

无衰减

kNERtcDistanceRolloffLinearOnly 

仅线性衰减,没有方位效果

◆ NERtcEncryptionMode

媒体流加密模式。

枚举值
kNERtcGMCryptoSM4ECB 

128 位 SM4 加密,ECB 模式。

NERtcEncryptionModeCustom 

自定义加密模式。

◆ NERtcErrorCode

错误代码。
错误代码意味着 SDK 遇到不可恢复的错误,需要应用程序干预。

枚举值
kNERtcNoError 

没有错误

kNERtcErrChannelReservePermissionDenied 
  • 权限不足。原因包括:
  • 未开通音视频通话 2.0 服务,或试用期已过、未及时续费等。
  • 安全模式下加入房间时未设置 Token。
  • 其他权限问题。
kNERtcErrChannelReserveTimeOut 

请求超时

kNERtcErrChannelReserveErrorParam 

服务器请求参数错误

kNERtcErrChannelReserveErrorAppKey 

非法的APP KEY

kNERtcErrChannelReserveServerFail 

分配房间的服务器未知错误

kNERtcErrChannelReserveMoreThanTwoUser 

登录房间的用户数超过限制的两人

kNERtcErrChannelPermissionKeyError 

登录房间时权限密钥错误

kNERtcErrChannelPermissionKeyTimeout 

登录房间时权限密钥过期

kNERtcErrLsTaskRequestInvalid 

task请求无效,被后续操作覆盖

kNERtcErrLsTaskIsInvaild 

task参数格式错误

kNERtcErrLsTaskRoomExited 

房间已经退出

kNERtcErrLsTaskNumLimit 

推流任务超出上限

kNERtcErrLsTaskDuplicateId 

推流 ID 重复

kNERtcErrLsTaskNotFound 

taskId任务不存在,或房间不存在

kNERtcErrLsTaskRequestErr 

请求失败

kNERtcErrLsTaskInternalServerErr 

服务器内部错误

kNERtcErrLsTaskInvalidLayout 

布局参数错误

kNERtcErrLsTaskUserPicErr 

布局的图片错误

kNERtcErrChannelNoPublishPermission 

用户无发流权限

kNERtcErrChannelNoSubscribePermission 

用户无订阅权限

kNERtcErrServerBroadcasterReachedTheLimit 

主播人数达到限制

kNERtcErrServerPersonsInRoomReachedTheLimit 

加入房间的人数达到限制

kNERtcErrFatal 

内部错误

kNERtcErrOutOfMemory 

内存溢出

kNERtcErrInvalidParam 

参数错误

kNERtcErrNotSupported 

不支持的操作

kNERtcErrInvalidState 

状态错误

kNERtcErrLackOfResource 

缺乏资源

kNERtcErrInvalidIndex 

index 序号不符合要求

kNERtcErrDeviceNotFound 

设备未找到

kNERtcErrInvalidDeviceSourceID 

设备 ID 不存在

kNERtcErrInvalidVideoProfile 

视频能力profile type不符合要求

kNERtcErrCreateDeviceSourceFail 

创建设备错误

kNERtcErrInvalidRender 

画布非法

kNERtcErrDevicePreviewAlreadyStarted 

本地视频预览已打开

kNERtcErrTransmitPendding 

传输错误

kNERtcErrConnectFail 

连接服务器失败

kNERtcErrCreateDumpFileFail 

创建Audio dump文件失败

kNERtcErrStartDumpFail 

开启Audio dump失败

kNERtcErrDesktopCaptureInvalidState 

启动桌面录屏失败,不能与摄像头同时启动;或者已经开始了一次屏幕分享

kNERtcErrDesktopCaptureInvalidParam 

桌面录屏传入参数无效

kNERtcErrDesktopCaptureNotReady 

桌面录屏未就绪

kNERtcErrDeviceOccupied 

所选设备已被占用

kNERtcErrJoinInterruptedDueToLeaveAction 

join 流程因外部调用 leave API 而中断

kNERtcErrJoinInterruptedDueToDestroyAction 

join 流程因外部调用 destroy API 而中断

kNERtcErrJoinInterruptedDueToAppTermination 

join 流程因 App 进程退出而中断

kNERtcErrChannelAlreadyJoined 

重复加入房间

kNERtcErrChannelNotJoined 

用户尚未加入房间

kNERtcErrChannelRepleatedlyLeave 

重复离开房间

kNERtcErrRequestJoinChannelFail 

请求加入房间失败

kNERtcErrSessionNotFound 

会话未找到

kNERtcErrUserNotFound 

用户不存在

kNERtcErrInvalidUserID 

非法的用户 ID

kNERtcErrMediaNotStarted 

用户多媒体数据未连接

kNERtcErrSourceNotFound 

媒体源未找到

kNERtcErrSwitchChannelInvalidState 

切换房间状态无效

kNERtcErrChannelMediaRelayInvalidState 

媒体流转发状态无效。例如重复调用 startChannelMediaRelay。

kNERtcErrChannelMediaRelayPermissionDenied 

没有权限转发媒体流。例如调用 startChannelMediaRelay 的房间成员为主播角色、或房间为双人通话房间,不支持转发媒体流。

kNERtcErrChannelMediaRelayStopFailed 

停止媒体流转发操作失败。例如调用 stopChannelMediaRelay 前,未调用 startChannelMediaRelay。

kNERtcErrEncryptNotSuitable 

设置的媒体流加密密钥与房间中其他成员不一致,加入房间失败。请通过 enableEncryption 重新设置加密密钥。

kNERtcErrUserPermKeyAuthFailed 

高级 Token 鉴权失败,用户权限验证错误

kNERtcErrSEIExceedMaxDataLimit 

SEI 超过最大数据限制

kNERtcErrDataChannelExceedMaxDataLimit 

数据通道发送大小超过最大限制

kNERtcErrConnectionNotFound 

连接未找到

kNERtcErrStreamNotFound 

媒体流未找到

kNERtcErrAddTrackFail 

添加媒体播放器音轨失败

kNERtcErrTrackNotFound 

媒体播放器音轨未找到

kNERtcErrMediaConnectionDisconnected 

媒体连接断开

kNERtcErrSignalDisconnected 

信令断开

kNERtcErrServerKicked 

用户被管理员移出房间

kNERtcErrKickedForRoomClosed 

房间已关闭

kNERtcErrChannelLeaveBySwitchAction 

因为切换房间而离开房间

kNERtcErrChannelLeaveByDuplicateUidLogin 

因为重复 UID 登录而离开房间

kNERtcRuntimeErrADMNoAuthorize 

没有音频设备权限

kNERtcRuntimeErrADMInitRecording 

初始化音频采集设备(麦克风)失败。请检查录音设备是否正常或者权限限制,或者尝试重新进入房间。

kNERtcRuntimeErrADMStartRecording 

启动音频采集设备(麦克风)失败。请检查录音设备是否正常,或者尝试重新进入房间。

kNERtcRuntimeErrADMStopRecording 

停止音频采集设备(麦克风)失败。请检查录音设备是否正常,或者尝试重新进入房间。

kNERtcRuntimeErrADMInitPlayout 

初始化音频播放设备失败。请检查播放设备是否异常或者权限限制,或者尝试重新进入房间。

kNERtcRuntimeErrADMStartPlayout 

音频播放设备启动失败。请检查播放设备是否正常,或者尝试重新进入房间。

kNERtcRuntimeErrADMStopPlayout 

音频播放设备停止失败。请检查播放设备是否正常,或者尝试重新进入房间。

kNERtcRuntimeErrADMRecordingFailed 

音频采集设备运行异常

kNERtcRuntimeErrADMPlayoutFailed 

音频播放设备运行异常

kNERtcRuntimeErrVDMNoAuthorize 

没有视频设备权限

kNERtcRuntimeErrVDMNotScreenUseSubStream 

非屏幕共享使用辅流

kNERtcRuntimeErrVDMCameraDisconnect 

摄像头断开

kNERtcRuntimeErrVDMCameraFreezed 

摄像头死机

kNERtcRuntimeErrVDMCameraUnknownError 

未知摄像头错误

kNERtcRuntimeErrVDMCameraNoFrame 

摄像头无数据帧

kNERtcRuntimeErrVDMCameraCreateFail 

摄像头启动失败

kNERtcRuntimeErrScreenCaptureNoAuthorize 

没有录制视频权限

◆ NERtcFeatureType

功能类型

枚举值
kNERTCVirtualBackground 

虚拟背景

◆ NERtcInstallCastAudioDriverResult

安装音频驱动插件结果(仅适用于 Mac 系统)

枚举值
kNERtcInstallCastAudioDriverSuccess 

安装音频驱动插件成功

kNERtcInstallCastAudioDriverNotAuthorized 

安装音频驱动插件未授

kNERtcInstallCastAudioDriverFailed 

安装音频驱动插件失败

◆ NERtcInterfaceIdType

接口ID类型。

枚举值
kNERtcIIDAudioDeviceManager 

获取音频设备管理器的接口ID

kNERtcIIDVideoDeviceManager 

获取视频设备管理器的接口ID

◆ NERtcLastmileProbeResultState

Last mile 质量探测结果的状态。

枚举值
kNERtcLastmileProbeResultComplete 

表示本次 last mile 质量探测的结果是完整的。

kNERtcLastmileProbeResultIncompleteNoBwe 

表示本次 last mile 质量探测未进行带宽预测,因此结果不完整。通常原因为测试资源暂时受限。

kNERtcLastmileProbeResultUnavailable 

未进行 last mile 质量探测。通常原因为网络连接中断。

◆ NERtcLiveStreamAudioCodecProfile

直播推流音频编码规格

枚举值
kNERtcLiveStreamAudioCodecProfileLCAAC 

(默认)LC-AAC 规格,表示基本音频编码规格。

kNERtcLiveStreamAudioCodecProfileHEAAC 

HE-AAC 规格,表示高效音频编码规格。

◆ NERtcLiveStreamAudioSampleRate

直播推流音频采样率

枚举值
kNERtcLiveStreamAudioSampleRate32000 

采样率为 32 kHz。

kNERtcLiveStreamAudioSampleRate44100 

采样率为 44.1 kHz。

kNERtcLiveStreamAudioSampleRate48000 

(默认)采样率为 48 kHz。

◆ NERtcLiveStreamLayoutMode

连麦方式。

◆ NERtcLiveStreamMode

直播推流模式

枚举值
kNERtcLsModeVideo 

推流带视频

kNERtcLsModeAudio 

推流纯音频

◆ NERtcLiveStreamStateCode

直播推流状态。

枚举值
kNERtcLsStatePushing 

推流中

kNERtcLsStatePushFail 

互动直播推流失败

kNERtcLsStatePushStopped 

推流结束

kNERtcLsStateImageError 

背景图片设置出错

◆ NERtcLiveStreamVideoScaleMode

直播推流视频裁剪模式

枚举值
kNERtcLsModeVideoScaleFit 

0: 视频尺寸等比缩放。优先保证视频内容全部显示。因视频尺寸与显示视窗尺寸不一致造成的视窗未被填满的区域填充背景色。

kNERtcLsModeVideoScaleCropFill 

1: 视频尺寸等比缩放。优先保证视窗被填满。因视频尺寸与显示视窗尺寸不一致而多出的视频将被截掉。

◆ NERtcLocalVideoWatermarkState

视频水印状态。

枚举值
kNERtcLocalWatermarkStateSetSuccess 

水印设置成功。

kNERtcLocalWatermarkStateDeviceNotSupported 

设备不支持。

kNERtcLocalWatermarkStateImgFormatNotSupported 

图片格式不支持。

kNERtcLocalWatermarkStateImgNumError 

图片数量设置错误。

kNERtcLocalWatermarkStateImgSizeError 

图片分辨率设置错误。

kNERtcLocalWatermarkStateFPSError 

播放帧率设置错误。

kNERtcLocalWatermarkStateFontError 

字体设置错误。

kNERtcLocalWatermarkStateWmAlphaError 

整体水印透明度设置错误。

kNERtcLocalWatermarkStateTextContentEmptyError 

文本内容为空。

kNERtcLocalWatermarkStateCancel 

取消水印。

◆ NERtcLogLevel

日志级别。

枚举值
kNERtcLogLevelFatal 

Fatal 级别日志信息。

kNERtcLogLevelError 

Error 级别日志信息。

kNERtcLogLevelWarning 

Warning 级别日志信息。默认级别

kNERtcLogLevelInfo 

Info 级别日志信息。

kNERtcLogLevelDetailInfo 

Detail Info 级别日志信息。

kNERtcLogLevelVerbos 

Verbos 级别日志信息。

kNERtcLogLevelDebug 

Debug 级别日志信息。如果你想获取最完整的日志,可以将日志级别设为该等级。

kNERtcLogLevelOff 

不输出日志信息。

◆ NERtcMediaPriorityType

媒体优先级类型。

枚举值
kNERtcMediaPriorityHigh 

高优先级

kNERtcMediaPriorityNormal 

(默认)普通优先级

◆ NERtcMediaPubType

自从
v4.6.10 媒体 pub 类型。
枚举值
NERtcMediaPubTypeAudio 

音频 pub 类型。

◆ NERtcNalFrameType

视频编码帧类型。

枚举值
kNERtcNalFrameTypeIDR 

IDR 帧。

kNERtcNalFrameTypeI 

I 帧。

kNERtcNalFrameTypeP 

P 帧。

◆ NERtcNetworkQualityType

网络质量类型。

枚举值
kNERtcNetworkQualityUnknown 

0: 网络质量未知。

kNERtcNetworkQualityExcellent 

1: 网络质量极好。

kNERtcNetworkQualityGood 

2: 用户主观感觉和 kNERtcNetworkQualityExcellent 类似,但码率可能略低于 kNERtcNetworkQualityExcellent

kNERtcNetworkQualityPoor 

3: 用户主观感受有瑕疵但不影响沟通。

kNERtcNetworkQualityBad 

4: 勉强能沟通但不顺畅。

kNERtcNetworkQualityVeryBad 

5: 网络质量非常差,基本不能沟通。

kNERtcNetworkQualityDown 

6: 完全无法沟通。

◆ NERtcOSCategory

系统分类。

枚举值
kNERtcOSiOS 

iOS 通用设备

kNERtcOSAndroid 

Android 通用设备

kNERtcOSPC 

PC device.

kNERtcOSWebRTC 

WebRTC

◆ NERtcPreDecodeMediaType

解码前媒体类型。

枚举值
kNERtcPreDecodeMediaTypeAudio 

Audio 媒体类型。

kNERtcPreDecodeMediaTypeVideo 

Video 媒体类型。

kNERtcPreDecodeMediaTypeUnknown 

Unknown 媒体类型。

◆ NERtcRangeAudioMode

枚举值
NERtcRangeAudioModeDefault 

默认模式

注解
  • 设置后玩家附近一定范围的人都能听到该玩家讲话,如果范围内也有玩家设置为此模式,则也可以互相通话。
  • TeamID相同的队友可以互相听到
NERtcRangeAudioModeTeam 

小组模式

注解
仅TeamID相同的队友可以互相听到

◆ NERtcRawAudioFrameOpModeType

音频帧请求数据的读写模式。

枚举值
kNERtcRawAudioFrameOpModeReadOnly 

返回数据只读模式

kNERtcRawAudioFrameOpModeReadWrite 

返回数据可读写

◆ NERtcReasonConnectionChangedType

连接状态变更原因

枚举值
kNERtcReasonConnectionChangedLeaveChannel 

kNERtcConnectionStateDisconnected 离开房间

kNERtcReasonConnectionChangedChannelClosed 

kNERtcConnectionStateDisconnected 房间被关闭

kNERtcReasonConnectionChangedBeKicked 

kNERtcConnectionStateDisconnected 用户被踢

kNERtcReasonConnectionChangedTimeOut 

kNERtcConnectionStateDisconnected 服务超时

kNERtcReasonConnectionChangedJoinChannel 

kNERtcConnectionStateConnected 加入房间

kNERtcReasonConnectionChangedJoinSucceed 

kNERtcConnectionStateConnected 加入房间成功

kNERtcReasonConnectionChangedReJoinSucceed 

kNERtcConnectionStateConnected 重新加入房间成功(重连)

kNERtcReasonConnectionChangedMediaConnectionDisconnected 

kNERtcConnectionStateReconnecting 媒体连接断开

kNERtcReasonConnectionChangedSignalDisconnected 

kNERtcConnectionStateReconnecting 信令连接断开

kNERtcReasonConnectionChangedRequestChannelFailed 

kNERtcConnectionStateFailed 请求房间失败

kNERtcReasonConnectionChangedJoinChannelFailed 

kNERtcConnectionStateFailed 加入房间失败

kNERtcReasonConnectionChangedReDispatch 

kNERtcConnectionStateReconnecting 重新分配了服务端IP

kNERtcReasonConnectionChangedSettingProxyServer 

开始使用云代理进行连接。

◆ NERtcRecordType

录制类型。

枚举值
kNERtcRecordTypeAll 

参与合流+单流录制。

kNERtcRecordTypeMix 

参与合流录制模式。

kNERtcRecordTypeSingle 

参与单流录制模式。

◆ NERtcRemoteVideoStreamType

视频流类型。

注解
大流的分辨率及参数配置高,小流的分辨率及参数配置低。
枚举值
kNERtcRemoteVideoStreamTypeHigh 

默认大流

kNERtcRemoteVideoStreamTypeLow 

小流

kNERtcRemoteVideoStreamTypeNone 

不订阅

◆ NERtcRoomServerErrorCode

room server相关错误码。TODO:NERtcErrorCode Will be deprecated, please use NERtcError instead

枚举值
kNERtcRoomServerErrOK 

操作成功

kNERtcRoomServerErrAuthError 

认证错误

kNERtcRoomServerErrChannelNotExist 

房间不存在

kNERtcRoomServerErrUidNotExist 

房间下的uid不存在

kNERtcRoomServerErrDataError 

请求数据不对

kNERtcRoomServerErrUnknown 

内部错误(TurnServer请求异常)

kNERtcRoomServerErrServerError 

服务器内部错误

kNERtcRoomServerErrInvilid 

无效的操作

◆ NERtcScreenCaptureCustomHLBorderAction

The type of the shared target.

自从
v5.4.0
枚举值
kSetPos 

0: The shared target is a window.

kSetAbove 

1: The shared target is a screen of a particular monitor.

kSetBelow 

2: Reserved parameter.

kHide 

3: The shared target is a window.

kShow 

4: The shared target is a window.

◆ NERtcScreenCaptureSourceType

The type of the shared target.

自从
v5.4.0
枚举值
kUnknown 

-1: Unknown type.

kWindow 

0: The shared target is a window.

kScreen 

1: The shared target is a screen of a particular monitor.

kCustom 

2: Reserved parameter.

◆ NERtcScreenCaptureStatus

屏幕分享状态

枚举值
kScreenCaptureStatusStart 

开始屏幕共享。

kScreenCaptureStatusPause 

暂停屏幕共享。

注解
当处于共享进程中的窗口发生大小调整、位置调整、最小化以及隐藏等变化时,会触发此回调。
kScreenCaptureStatusResume 

恢复屏幕共享。

注解
当处于共享进程中的窗口停止大小调整、位置调整、最小化以及隐藏等变化时,会触发此回调。
kScreenCaptureStatusStop 

停止屏幕共享。

kScreenCaptureStatusCovered 

屏幕共享的目标窗口被覆盖。

注解
在 Windows 平台中,某些共享目标窗口可能会因处于图层下层被屏蔽,此窗口图像可能会黑屏并触发此回调。建议应用层在触发此回调时提醒用户将待分享的窗口置于最上层。
kScreenCaptureStatusAbort 

屏幕共享异常结束。

自从
V4.6.0
注解
由于屏幕共享的目标窗口被关闭或者被分享的进程崩溃等原因导致目标窗口无效时,会触发此回调。用户需要在这个事件的响应函数中调用停止屏幕共享接口结束共享。

◆ NERtcScreenProfileType

屏幕共享编码参数配置。

枚举值
kNERtcScreenProfile480P 

640x480, 5fps

kNERtcScreenProfileHD720P 

1280x720, 5fps

kNERtcScreenProfileHD1080P 

1920x1080, 5fps。默认

kNERtcScreenProfileCustom 

自定义

kNERtcScreenProfileNone 

无效果。

kNERtcScreenProfileMAX 

1920x1080, 5fps。

◆ NERtcSendOnPubType

视频推流后发送策略。

枚举值
kNERtcSendOnPubNone 

不主动发送数据流,被订阅后发送。

kNERtcSendOnPubHigh 

主动发送大流。

kNERtcSendOnPubLow 

主动发送小流。

kNERtcSendOnPubAll 

主动发送大小流。

◆ NERtcSessionLeaveReason

用户离开原因。

枚举值
kNERtcSessionLeaveNormal 

正常离开。

kNERtcSessionLeaveForFailOver 

用户断线导致离开。

kNERtcSessionLeaveUpdate 

用户 Failover 过程中产生的 leave。

kNERtcSessionLeaveForKick 

用户被踢导致离开。

kNERtcSessionLeaveTimeOut 

用户超时导致离开。

◆ NERtcSpatializerMaterialName

空间音效中房间材质名称

枚举值
kNERtcSpatializerMaterialTransparent 

透明的

kNERtcSpatializerMaterialAcousticCeilingTiles 

声学天花板,未开放

kNERtcSpatializerMaterialBrickBare 

砖块,未开放

kNERtcSpatializerMaterialBrickPainted 

涂漆的砖块,未开放

kNERtcSpatializerMaterialConcreteBlockCoarse 

粗糙的混凝土块,未开放

kNERtcSpatializerMaterialConcreteBlockPainted 

涂漆的混凝土块,未开放

kNERtcSpatializerMaterialCurtainHeavy 

厚重的窗帘

kNERtcSpatializerMaterialFiberGlassInsulation 

隔音的玻璃纤维,未开放

kNERtcSpatializerMaterialGlassThin 

薄的的玻璃,未开放

kNERtcSpatializerMaterialGlassThick 

茂密的草地,未开放

kNERtcSpatializerMaterialGrass 

草地

kNERtcSpatializerMaterialLinoleumOnConcrete 

铺装了油毡的混凝土,未开放

kNERtcSpatializerMaterialMarble 

大理石

kNERtcSpatializerMaterialMetal 

金属,未开放

kNERtcSpatializerMaterialParquetOnConcrete 

镶嵌木板的混凝土,未开放

kNERtcSpatializerMaterialPlasterRough 

石膏,未开放

kNERtcSpatializerMaterialPlasterSmooth 

粗糙石膏,未开放

kNERtcSpatializerMaterialPlywoodPanel 

光滑石膏,未开放

kNERtcSpatializerMaterialPolishedConcreteOrTile 

木板,未开放

kNERtcSpatializerMaterialSheetrock 

石膏灰胶纸板,未开放

kNERtcSpatializerMaterialWaterOrIceSurface 

水面或者冰面,未开放

kNERtcSpatializerMaterialWoodCeiling 

木头天花板,未开放

kNERtcSpatializerMaterialWoodPanel 

木头枪板,未开放

kNERtcSpatializerMaterialUniform 

均匀分布,未开放

◆ NERtcSpatializerRenderMode

空间音效渲染模式

枚举值
kNERtcSpatializerRenderStereoPanning 

立体声

kNERtcSpatializerRenderBinauralLowQuality 

双声道低

kNERtcSpatializerRenderBinauralMediumQuality 

双声道中

kNERtcSpatializerRenderBinauralHighQuality 

双声道高

kNERtcSpatializerRenderRoomEffectsOnly 

仅房间音效

◆ NERtcSpatializerRoomCapacity

空间音效房间大小

枚举值
kNERtcSpatializerRoomCapacitySmall 

小房间

kNERtcSpatializerRoomCapacityMedium 

中等大小房间

kNERtcSpatializerRoomCapacityLarge 

大房间

kNERtcSpatializerRoomCapacityHuge 

巨大房间

kNERtcSpatializerRoomCapacityNone 

无房间效果

◆ NERtcStreamFallbackOption

上行、下行弱网时的回退选项。

枚举值
kNERtcStreamFallbackDisabled 

上行或下行网络较弱时,不对音视频流作回退处理,但不能保证音视频流的质量。

注解
该选项只对 setLocalPublishFallbackOption 方法有效,对 setRemoteSubscribeFallbackOption 方法无效。
kNERtcStreamFallbackVideoStreamLow 

在下行网络条件较差的情况下,SDK 将只接收视频小流,即低分辨率、低码率视频流。

注解
该选项只对 setRemoteSubscribeFallbackOption 方法有效,对 setLocalPublishFallbackOption 方法无效。
kNERtcStreamFallbackAudioOnly 
  • 上行网络较弱时,只发布音频流。
  • 下行网络较弱时,先尝试只接收视频小流,即低分辨率、低码率视频流。如果网络环境无法显示视频,则再回退到只接收音频流。

◆ NERtcSubStreamContentPrefer

屏幕共享功能的编码策略倾向。

  • kNERtcSubStreamContentPreferMotion: 内容类型为动画。当共享的内容是视频、电影或游戏时,推荐选择该内容类型。当用户设置内容类型为动画时,按用户设置的帧率处理。
  • kNERtcSubStreamContentPreferDetails: 内容类型为细节。当共享的内容是图片或文字时,推荐选择该内容类型。当用户设置内容类型为细节时,最高允许用户设置到10帧,设置超过 10 帧时,不生效,按 10 帧处理。
枚举值
kNERtcSubStreamContentPreferMotion 

动画模式。

kNERtcSubStreamContentPreferDetails 

细节模式。

◆ NERtcTransportType

枚举值
kNERtcTransportTypeNoneProxy 

0:关闭已设置的云代理。

kNERtcTransportTypeUDPProxy 

1: 开启 UDP 协议的云代理。

◆ NERtcVideoCodecType

视频编解码器类型。

枚举值
kNERtcVideoCodecTypeH264 

H264 编解码器。

◆ NERtcVideoCropMode

视频画面裁剪模式。

枚举值
kNERtcVideoCropModeDefault 

设备默认裁剪模式。

kNERtcVideoCropMode16x9 

16:9

kNERtcVideoCropMode4x3 

4:3

kNERtcVideoCropMode1x1 

1:1

◆ NERtcVideoDeviceState

视频设备类型状态。

枚举值
kNERtcVideoDeviceAdded 

视频设备已添加

kNERtcVideoDeviceRemoved 

视频设备已拔除

◆ NERtcVideoDeviceTransportType

摄像头设备链接类型。

枚举值
kNERtcVideoDeviceTransportTypeUnknown 

未知设备

kNERtcVideoDeviceTransportTypeUSB 

USB device.

kNERtcVideoDeviceTransportTypeVirtual 

虚拟设备

kNERtcVideoDeviceTransportTypeOther 

其他设备

◆ NERtcVideoDeviceType

视频设备类型。

枚举值
kNERtcVideoDeviceUnknown 

Video capture device.

kNERtcVideoDeviceCapture 

视频采集设备

◆ NERtcVideoFramerateType

视频帧率。

枚举值
kNERtcVideoFramerateFpsDefault 

默认帧率

kNERtcVideoFramerateFps_7 

7帧每秒

kNERtcVideoFramerateFps_10 

10帧每秒

kNERtcVideoFramerateFps_15 

15帧每秒

kNERtcVideoFramerateFps_24 

24帧每秒

kNERtcVideoFramerateFps_30 

30帧每秒

kNERtcVideoFramerateFps_60 

60帧每秒

◆ NERtcVideoMirrorMode

视频镜像模式。

枚举值
kNERtcVideoMirrorModeAuto 

0: 由 SDK 决定镜像模式。

kNERtcVideoMirrorModeEnabled 

1: 启用镜像模式。

kNERtcVideoMirrorModeDisabled 

2: 关闭镜像模式。

◆ NERtcVideoOutputOrientationMode

视频旋转的方向模式。

枚举值
kNERtcVideoOutputOrientationModeAdaptative 

(默认)该模式下 SDK 输出的视频方向与采集到的视频方向一致。接收端会根据收到的视频旋转信息对视频进行旋转。
该模式适用于接收端可以调整视频方向的场景。

  • 如果采集的视频是横屏模式,则输出的视频也是横屏模式。
  • 如果采集的视频是竖屏模式,则输出的视频也是竖屏模式。
kNERtcVideoOutputOrientationModeFixedLandscape 

该模式下 SDK 固定输出横屏模式的视频。如果采集到的视频是竖屏模式,则视频编码器会对其进行裁剪。
该模式适用于接收端无法调整视频方向的场景,例如旁路推流。

kNERtcVideoOutputOrientationModeFixedPortrait 

该模式下 SDK 固定输出竖屏模式的视频,如果采集到的视频是横屏模式,则视频编码器会对其进行裁剪。
该模式适用于接收端无法调整视频方向的场景,例如旁路推流。

◆ NERtcVideoProfileType

视频编码配置。用于衡量编码质量。

枚举值
kNERtcVideoProfileLowest 

普清(160x90/120, 15fps)

kNERtcVideoProfileLow 

标清(320x180/240, 15fps)

kNERtcVideoProfileStandard 

高清(640x360/480, 30fps)

kNERtcVideoProfileHD720P 

超清(1280x720, 30fps)

kNERtcVideoProfileHD1080P 

1080P(1920x1080, 30fps)

kNERtcVideoProfileNone 

无效果。

◆ NERtcVideoRotation

视频旋转角度。

枚举值
kNERtcVideoRotation_0 

kNERtcVideoRotation_90 

90 度。

kNERtcVideoRotation_180 

180 度。

kNERtcVideoRotation_270 

270 度。

◆ NERtcVideoScalingMode

设置视频缩放模式。

枚举值
kNERtcVideoScaleFit 

0:适应视频,视频尺寸等比缩放。优先保证视频内容全部显示。若视频尺寸与显示视窗尺寸不一致,视窗未被填满的区域填充背景色。

kNERtcVideoScaleFullFill 

1:视频尺寸非等比缩放。保证视频内容全部显示,且填满视窗。

kNERtcVideoScaleCropFill 

2:适应区域,视频尺寸等比缩放。保证所有区域被填满,视频超出部分会被裁剪。

◆ NERtcVideoStreamType

视频流类型

枚举值
kNERTCVideoStreamMain 

主流

kNERTCVideoStreamSub 

辅流

◆ NERtcVideoType

视频类型。

枚举值
kNERtcVideoTypeI420 

I420 视频格式。

kNERtcVideoTypeNV12 

NV12 视频格式。

kNERtcVideoTypeNV21 

NV21 视频格式。

kNERtcVideoTypeBGRA 

BGRA 视频格式。

kNERtcVideoTypeCVPixelBuffer 

oc capture native视频格式。不支持外部视频输入

◆ NERtcVirtualBackgroundSourceStateReason

虚拟背景未成功启用的原因或确认成功的信息。

自从
v4.6.0
枚举值
kNERtcVirtualBackgroundSourceStateReasonSuccess 

0: 虚拟背景开启成功。

kNERtcVirtualBackgroundSourceStateReasonImageNotExist 

1:自定义背景图片不存在。 请检查 VirtualBackgroundSourcesource 的值。

kNERtcVirtualBackgroundSourceStateReasonImageFormatNotSupported 

2:自定义背景图片的图片格式无效。 请检查 VirtualBackgroundSourcesource 的值。

kNERtcVirtualBackgroundSourceStateReasonColorFormatNotSupported 

3:自定义背景图片的颜色格式无效。 请检查 VirtualBackgroundSourcecolor 的值。

kNERtcVirtualBackgroundSourceStateReasonDeviceNotSupported 

4:该设备不支持使用虚拟背景。

◆ NERtcVoiceBeautifierType

预设的美声效果

枚举值
kNERtcVoiceBeautifierOff 

默认关闭

kNERtcVoiceBeautifierMuffled 

低沉

kNERtcVoiceBeautifierMellow 

圆润

kNERtcVoiceBeautifierClear 

清澈

kNERtcVoiceBeautifierMagnetic 

磁性

kNERtcVoiceBeautifierRecordingstudio 

录音棚

kNERtcVoiceBeautifierNature 

天籁

kNERtcVoiceBeautifierKTV 

KTV

kNERtcVoiceBeautifierRemote 

悠远

kNERtcVoiceBeautifierChurch 

教堂

kNERtcVoiceBeautifierBedroom 

卧室

kNERtcVoiceBeautifierLive 

Live

◆ NERtcVoiceChangerType

变声 预设值

枚举值
kNERtcVoiceChangerOff 

默认关闭

kNERtcVoiceChangerRobot 

机器人

kNERtcVoiceChangerGaint 

巨人

kNERtcVoiceChangerHorror 

恐怖

kNERtcVoiceChangerMature 

成熟

kNERtcVoiceChangerManToWoman 

男变女

kNERtcVoiceChangerWomanToMan 

女变男

kNERtcVoiceChangerManToLoli 

男变萝莉

kNERtcVoiceChangerWomanToLoli 

女变萝莉

◆ NERtcVoiceEqualizationBand

音效均衡波段的中心频率

枚举值
kNERtcVoiceEqualizationBand_31 

31 Hz

kNERtcVoiceEqualizationBand_62 

62 Hz

kNERtcVoiceEqualizationBand_125 

125 Hz

kNERtcVoiceEqualizationBand_250 

250 Hz

kNERtcVoiceEqualizationBand_500 

500 Hz

kNERtcVoiceEqualizationBand_1K 

1 kHz

kNERtcVoiceEqualizationBand_2K 

2 kHz

kNERtcVoiceEqualizationBand_4K 

4 kHz

kNERtcVoiceEqualizationBand_8K 

8 kHz

kNERtcVoiceEqualizationBand_16K 

16 kHz

◆ NERtcWarnCode

警告代码。 警告代码意味着 SDK 遇到问题,但有可能恢复,警告代码仅起告知作用,一般情况下应用程序可以忽略警告代码。

枚举值
kLiteSDKNoWarning 

未发生警告。

kNERtcWarningChannelAbilityNotMatch 

当前客户端设备视频编解码能力与房间不匹配,例如设备不支持 VP8 等编码类型。在此房间中可能无法成功进行视频编解码,即本端可能无法正常显示某些远端的视频画面,同样远端也可能无法显示本端画面。

kNERtcWarningASLAudioFallback 

音频自动选路回退