Agora RTC Objective-C API Reference  Refactor
Data Structures | Typedefs | Enumerations | Variables
agora::rtc Namespace Reference

Data Structures

class  AAudioDeviceManager
 
struct  AlphaChannel
 
struct  AudioEncodedFrameObserverConfig
 
struct  AudioEncoderConfiguration
 
struct  AudioOptionsExternal
 
struct  AudioParameters
 
struct  AudioPcmDataInfo
 
struct  AudioRecordingConfiguration
 
struct  AudioSinkWants
 
struct  AudioSubscriptionOptions
 
struct  AudioTrackConfig
 
struct  AudioVolumeInfo
 
struct  AudioVolumeInformation
 
class  AVideoDeviceManager
 
struct  BeautyOptions
 
struct  CameraCapturerConfiguration
 
struct  ChannelMediaInfo
 
struct  ChannelMediaOptions
 
struct  ChannelMediaRelayConfiguration
 
struct  ClientRoleOptions
 
struct  ColorSpace
 
struct  DataStreamConfig
 
struct  DeviceInfo
 
struct  DirectCdnStreamingMediaOptions
 
struct  DirectCdnStreamingStats
 
struct  DownlinkNetworkInfo
 
struct  EncodedAudioFrameAdvancedSettings
 
struct  EncodedAudioFrameInfo
 
struct  EncodedVideoFrameInfo
 
struct  EncryptionConfig
 
struct  ExtensionInterfaceVersion
 
struct  ExtensionInterfaceVersion< IAudioFilter >
 
struct  ExtensionInterfaceVersion< IExtensionProvider >
 
struct  ExtensionInterfaceVersion< IExtensionProviderV2 >
 
struct  ExtensionInterfaceVersion< IExtensionVideoFilter >
 
struct  ExtensionVersion
 
struct  FishCorrectionParams
 
class  IAudioDeviceManagerObserver
 
class  IAudioEncodedFrameObserver
 
class  IAudioEncodedFrameReceiver
 
class  IAudioEncodedFrameSender
 
class  IAudioFilter
 
class  IAudioFilterBase
 
class  IAudioPcmDataSender
 
class  IAudioSinkBase
 
class  IAudioTrack
 
class  ICameraCaptureObserver
 
class  ICameraCapturer
 
class  IDirectCdnStreamingEventHandler
 
class  IExtensionControl
 
class  IExtensionProvider
 
class  IExtensionProviderV2
 
class  IExtensionVideoFilter
 
class  IFileUploaderService
 
class  ILocalAudioTrack
 
class  ILocalUser
 
class  ILocalUserObserver
 
class  ILocalVideoTrack
 
struct  ImagePayloadData
 
class  IMediaControlPacketReceiver
 
class  IMediaControlPacketSender
 
class  IMediaExtensionObserver
 
class  IMediaNodeFactory
 
class  IMediaPacketReceiver
 
class  IMediaPacketSender
 
class  IMediaPlayerCustomDataProvider
 
class  IMediaPlayerSource
 
class  IMediaPlayerSourceObserver
 
class  IMediaRelayObserver
 
class  IMediaRelayService
 
class  IMediaStreamingSource
 
class  IMediaStreamingSourceObserver
 
class  IMetadataObserver
 
class  INetworkObserver
 
class  INGAudioDeviceManager
 
struct  InjectStreamConfig
 
struct  InputSeiData
 
class  IPacketObserver
 
class  IRecordingDeviceSource
 
class  IRemoteAudioMixerSource
 
class  IRemoteAudioTrack
 
class  IRemoteVideoTrack
 
class  IRtcConnection
 
class  IRtcConnectionObserver
 
class  IRtcEngine
 
class  IRtcEngineEventHandler
 
class  IRtcEngineEventHandlerEx
 
class  IRtcEngineEx
 
class  IRtcEngineParameter
 
class  IRtmpConnection
 
class  IRtmpConnectionObserver
 
class  IRtmpLocalUser
 
class  IRtmpLocalUserObserver
 
class  IRtmpStreamingObserver
 
class  IRtmpStreamingService
 
class  IScreenCapturer
 
class  IVideoBeautyFilter
 
class  IVideoDeviceCollection
 
class  IVideoDeviceManager
 
class  IVideoEncodedImageReceiver
 
class  IVideoEncodedImageSender
 
class  IVideoFilter
 
class  IVideoFilterBase
 
class  IVideoFrame
 
class  IVideoFrameMemoryPool
 
class  IVideoFrameObserver2
 
class  IVideoFrameSender
 
class  IVideoFrameTransceiver
 
class  IVideoMixerSource
 
class  IVideoRenderer
 
class  IVideoSinkBase
 
class  IVideoTrack
 
struct  LastmileProbeConfig
 
struct  LastmileProbeOneWayResult
 
struct  LastmileProbeResult
 
struct  LeaveChannelOptions
 
struct  LiveStreamAdvancedFeature
 
struct  LiveTranscoding
 
struct  LocalAccessPointConfiguration
 
struct  LocalAudioStats
 
struct  LocalTranscoderConfiguration
 
struct  LocalVideoStats
 
struct  LocalVideoTrackStats
 
struct  MixerLayoutConfig
 
struct  PaddedRawPixelBuffer
 
struct  PublisherConfiguration
 
struct  RawPixelBuffer
 
struct  Rectangle
 
struct  RemoteAudioStats
 
struct  RemoteAudioTrackStats
 
struct  RemoteVideoStats
 
struct  RemoteVideoTrackStats
 
struct  RtcConnection
 
struct  RtcConnectionConfiguration
 
struct  RtcEngineContext
 
struct  RtcImage
 
struct  RtcStats
 
struct  RtmpConnectionConfiguration
 
struct  RtmpConnectionInfo
 
struct  RtmpStreamingAudioConfiguration
 
struct  RtmpStreamingVideoConfiguration
 
struct  ScreenCaptureConfiguration
 
struct  ScreenCaptureParameters
 
struct  SimulcastStreamConfig
 
struct  TConnectionInfo
 
struct  TextureInfo
 
struct  TranscodingUser
 
struct  TranscodingVideoStream
 
struct  UplinkNetworkInfo
 
struct  UserInfo
 
struct  VideoCanvas
 
struct  VideoCompositingLayout
 
struct  VideoDimensions
 
struct  VideoEncoderConfiguration
 
struct  VideoFormat
 
struct  VideoFrameData
 
struct  VideoFrameDataV2
 
struct  VideoTrackInfo
 
struct  VirtualBackgroundSource
 
struct  WatermarkOptions
 
struct  WatermarkRatio
 

Typedefs

typedef struct agora::rtc::RtcImage RtcImage
 

Enumerations

enum  RTMP_CHANNEL_EVENT { RTMP_CHANNEL_EVENT_DISCONNECT = 0, RTMP_CHANNEL_EVENT_LEAVE_CHANNEL = 1, RTMP_CHANNEL_EVENT_BANNED_BY_SERVER = 2 }
 
enum  RTMP_CONNECTION_ERROR { RTMP_CONNECTION_ERR_OK = 0, RTMP_CONNECTION_ERR_FAILED = 1, RTMP_CONNECTION_ERR_INVALID_URL = 2, RTMP_CONNECTION_ERR_BAD_NAME = 3 }
 
enum  RTMP_CONNECTION_STATE {
  STATE_DISCONNECTED = 1, STATE_CONNECTING = 2, STATE_CONNECTED = 3, STATE_RECONNECTING = 4,
  STATE_FAILED = 5, STATE_RECONNECTED = 6
}
 
enum  PublishAudioError { PUBLISH_AUDIO_ERR_OK = 0, PUBLISH_AUDIO_ERR_FAILED = 1 }
 
enum  PublishVideoError { PUBLISH_VIDEO_ERR_OK = 0, PUBLISH_VIDEO_ERR_FAILED = 1 }
 
enum  USER_OFFLINE_REASON_TYPE { USER_OFFLINE_QUIT = 0, USER_OFFLINE_DROPPED = 1, USER_OFFLINE_BECOME_AUDIENCE = 2 }
 
enum  QUALITY_TYPE {
  QUALITY_UNKNOWN = 0, QUALITY_EXCELLENT = 1, QUALITY_GOOD = 2, QUALITY_POOR = 3,
  QUALITY_BAD = 4, QUALITY_VBAD = 5, QUALITY_DOWN = 6, QUALITY_UNSUPPORTED = 7,
  QUALITY_DETECTING
}
 
enum  FIT_MODE_TYPE { MODE_COVER = 1, MODE_CONTAIN = 2 }
 
enum  VIDEO_ORIENTATION { VIDEO_ORIENTATION_0 = 0, VIDEO_ORIENTATION_90 = 90, VIDEO_ORIENTATION_180 = 180, VIDEO_ORIENTATION_270 = 270 }
 
enum  FRAME_RATE {
  FRAME_RATE_FPS_1 = 1, FRAME_RATE_FPS_7 = 7, FRAME_RATE_FPS_10 = 10, FRAME_RATE_FPS_15 = 15,
  FRAME_RATE_FPS_24 = 24, FRAME_RATE_FPS_30 = 30, FRAME_RATE_FPS_60 = 60
}
 
enum  VIDEO_FRAME_TYPE {
  VIDEO_FRAME_TYPE_BLANK_FRAME = 0, VIDEO_FRAME_TYPE_KEY_FRAME = 3, VIDEO_FRAME_TYPE_DELTA_FRAME = 4, VIDEO_FRAME_TYPE_B_FRAME = 5,
  VIDEO_FRAME_TYPE_DROPPABLE_FRAME = 6, VIDEO_FRAME_TYPE_UNKNOW
}
 
enum  ORIENTATION_MODE { ORIENTATION_MODE_ADAPTIVE = 0, ORIENTATION_MODE_FIXED_LANDSCAPE = 1, ORIENTATION_MODE_FIXED_PORTRAIT = 2 }
 
enum  DEGRADATION_PREFERENCE {
  MAINTAIN_QUALITY = 0, MAINTAIN_FRAMERATE = 1, MAINTAIN_BALANCED = 2, MAINTAIN_RESOLUTION = 3,
  DISABLED = 100
}
 
enum  VIDEO_CODEC_TYPE { ,
  VIDEO_CODEC_VP8 = 1, VIDEO_CODEC_H264 = 2, VIDEO_CODEC_H265 = 3, VIDEO_CODEC_VP9 = 5,
  VIDEO_CODEC_GENERIC = 6, VIDEO_CODEC_GENERIC_H264 = 7, VIDEO_CODEC_AV1 = 12, VIDEO_CODEC_GENERIC_JPEG = 20
}
 
enum  AUDIO_CODEC_TYPE {
  AUDIO_CODEC_OPUS = 1, AUDIO_CODEC_PCMA = 3, AUDIO_CODEC_PCMU = 4, AUDIO_CODEC_G722 = 5,
  AUDIO_CODEC_AACLC = 8, AUDIO_CODEC_HEAAC = 9, AUDIO_CODEC_JC1 = 10 , AUDIO_CODEC_LPCNET = 12
}
 
enum  AUDIO_ENCODING_TYPE {
  AUDIO_ENCODING_TYPE_AAC_16000_LOW = 0x010101, AUDIO_ENCODING_TYPE_AAC_16000_MEDIUM = 0x010102, AUDIO_ENCODING_TYPE_AAC_32000_LOW = 0x010201, AUDIO_ENCODING_TYPE_AAC_32000_MEDIUM = 0x010202,
  AUDIO_ENCODING_TYPE_AAC_32000_HIGH = 0x010203, AUDIO_ENCODING_TYPE_AAC_48000_MEDIUM = 0x010302, AUDIO_ENCODING_TYPE_AAC_48000_HIGH = 0x010303, AUDIO_ENCODING_TYPE_OPUS_16000_LOW = 0x020101,
  AUDIO_ENCODING_TYPE_OPUS_16000_MEDIUM = 0x020102, AUDIO_ENCODING_TYPE_OPUS_48000_MEDIUM = 0x020302, AUDIO_ENCODING_TYPE_OPUS_48000_HIGH = 0x020303
}
 
enum  WATERMARK_FIT_MODE { FIT_MODE_COVER_POSITION, FIT_MODE_USE_IMAGE_RATIO }
 
enum  H264PacketizeMode { NonInterleaved = 0, SingleNalUnit }
 
enum  VIDEO_STREAM_TYPE { VIDEO_STREAM_HIGH = 0, VIDEO_STREAM_LOW = 1 }
 
enum  VIDEO_MIRROR_MODE_TYPE { VIDEO_MIRROR_MODE_AUTO = 0, VIDEO_MIRROR_MODE_ENABLED = 1, VIDEO_MIRROR_MODE_DISABLED = 2 }
 
enum  VIDEO_SOURCE_TYPE {
  VIDEO_SOURCE_CAMERA_PRIMARY , VIDEO_SOURCE_CAMERA_SECONDARY, VIDEO_SOURCE_SCREEN_PRIMARY , VIDEO_SOURCE_SCREEN_SECONDARY,
  VIDEO_SOURCE_CUSTOM, VIDEO_SOURCE_MEDIA_PLAYER, VIDEO_SOURCE_RTC_IMAGE_PNG, VIDEO_SOURCE_RTC_IMAGE_JPEG,
  VIDEO_SOURCE_RTC_IMAGE_GIF, VIDEO_SOURCE_REMOTE, VIDEO_SOURCE_TRANSCODED
}
 
enum  CLIENT_ROLE_TYPE { CLIENT_ROLE_BROADCASTER = 1, CLIENT_ROLE_AUDIENCE = 2 }
 
enum  QUALITY_ADAPT_INDICATION { ADAPT_NONE = 0, ADAPT_UP_BANDWIDTH = 1, ADAPT_DOWN_BANDWIDTH = 2 }
 
enum  AUDIENCE_LATENCY_LEVEL_TYPE { AUDIENCE_LATENCY_LEVEL_LOW_LATENCY = 1, AUDIENCE_LATENCY_LEVEL_ULTRA_LOW_LATENCY = 2, AUDIENCE_LATENCY_LEVEL_HIGH_LATENCY = 3 }
 
enum  EXPERIENCE_QUALITY_TYPE { EXPERIENCE_QUALITY_GOOD = 0, EXPERIENCE_QUALITY_BAD = 1 }
 
enum  AUDIO_PROFILE_TYPE {
  AUDIO_PROFILE_DEFAULT = 0, AUDIO_PROFILE_SPEECH_STANDARD = 1, AUDIO_PROFILE_MUSIC_STANDARD = 2, AUDIO_PROFILE_MUSIC_STANDARD_STEREO = 3,
  AUDIO_PROFILE_MUSIC_HIGH_QUALITY = 4, AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO = 5, AUDIO_PROFILE_IOT = 6
}
 
enum  AUDIO_SCENARIO_TYPE {
  AUDIO_SCENARIO_DEFAULT = 0, AUDIO_SCENARIO_GAME_STREAMING = 3, AUDIO_SCENARIO_CHATROOM = 5, AUDIO_SCENARIO_HIGH_DEFINITION = 6,
  AUDIO_SCENARIO_CHORUS = 7, AUDIO_SCENARIO_NUM = 8
}
 
enum  VIDEO_CONTENT_HINT { CONTENT_HINT_NONE, CONTENT_HINT_MOTION, CONTENT_HINT_DETAILS }
 
enum  LOCAL_AUDIO_STREAM_STATE { LOCAL_AUDIO_STREAM_STATE_STOPPED = 0, LOCAL_AUDIO_STREAM_STATE_RECORDING = 1, LOCAL_AUDIO_STREAM_STATE_ENCODING = 2, LOCAL_AUDIO_STREAM_STATE_FAILED = 3 }
 
enum  LOCAL_AUDIO_STREAM_ERROR {
  LOCAL_AUDIO_STREAM_ERROR_OK = 0, LOCAL_AUDIO_STREAM_ERROR_FAILURE = 1, LOCAL_AUDIO_STREAM_ERROR_DEVICE_NO_PERMISSION = 2, LOCAL_AUDIO_STREAM_ERROR_DEVICE_BUSY = 3,
  LOCAL_AUDIO_STREAM_ERROR_RECORD_FAILURE = 4, LOCAL_AUDIO_STREAM_ERROR_ENCODE_FAILURE = 5
}
 
enum  LOCAL_VIDEO_STREAM_STATE { LOCAL_VIDEO_STREAM_STATE_STOPPED = 0, LOCAL_VIDEO_STREAM_STATE_CAPTURING = 1, LOCAL_VIDEO_STREAM_STATE_ENCODING = 2, LOCAL_VIDEO_STREAM_STATE_FAILED = 3 }
 
enum  LOCAL_VIDEO_STREAM_ERROR {
  LOCAL_VIDEO_STREAM_ERROR_OK = 0, LOCAL_VIDEO_STREAM_ERROR_FAILURE = 1, LOCAL_VIDEO_STREAM_ERROR_DEVICE_NO_PERMISSION = 2, LOCAL_VIDEO_STREAM_ERROR_DEVICE_BUSY = 3,
  LOCAL_VIDEO_STREAM_ERROR_CAPTURE_FAILURE = 4, LOCAL_VIDEO_STREAM_ERROR_ENCODE_FAILURE = 5, LOCAL_VIDEO_STREAM_ERROR_CAPTURE_INBACKGROUND = 6, LOCAL_VIDEO_STREAM_ERROR_CAPTURE_MULTIPLE_FOREGROUND_APPS = 7,
  LOCAL_VIDEO_STREAM_ERROR_DEVICE_NOT_FOUND = 8, LOCAL_VIDEO_STREAM_ERROR_DEVICE_DISCONNECTED = 9, LOCAL_VIDEO_STREAM_ERROR_DEVICE_INVALID_ID = 10, LOCAL_VIDEO_STREAM_ERROR_DEVICE_SYSTEM_PRESSURE = 101,
  LOCAL_VIDEO_STREAM_ERROR_SCREEN_CAPTURE_WINDOW_MINIMIZED = 11, LOCAL_VIDEO_STREAM_ERROR_SCREEN_CAPTURE_WINDOW_CLOSED = 12, LOCAL_VIDEO_STREAM_ERROR_SCREEN_CAPTURE_WINDOW_OCCLUDED = 13, LOCAL_VIDEO_STREAM_ERROR_SCREEN_CAPTURE_WINDOW_NOT_SUPPORTED = 20
}
 
enum  REMOTE_AUDIO_STATE {
  REMOTE_AUDIO_STATE_STOPPED = 0, REMOTE_AUDIO_STATE_STARTING = 1, REMOTE_AUDIO_STATE_DECODING = 2, REMOTE_AUDIO_STATE_FROZEN = 3,
  REMOTE_AUDIO_STATE_FAILED = 4
}
 
enum  REMOTE_AUDIO_STATE_REASON {
  REMOTE_AUDIO_REASON_INTERNAL = 0, REMOTE_AUDIO_REASON_NETWORK_CONGESTION = 1, REMOTE_AUDIO_REASON_NETWORK_RECOVERY = 2, REMOTE_AUDIO_REASON_LOCAL_MUTED = 3,
  REMOTE_AUDIO_REASON_LOCAL_UNMUTED = 4, REMOTE_AUDIO_REASON_REMOTE_MUTED = 5, REMOTE_AUDIO_REASON_REMOTE_UNMUTED = 6, REMOTE_AUDIO_REASON_REMOTE_OFFLINE = 7
}
 
enum  REMOTE_VIDEO_STATE {
  REMOTE_VIDEO_STATE_STOPPED = 0, REMOTE_VIDEO_STATE_STARTING = 1, REMOTE_VIDEO_STATE_DECODING = 2, REMOTE_VIDEO_STATE_FROZEN = 3,
  REMOTE_VIDEO_STATE_FAILED = 4
}
 
enum  REMOTE_VIDEO_STATE_REASON {
  REMOTE_VIDEO_STATE_REASON_INTERNAL = 0, REMOTE_VIDEO_STATE_REASON_NETWORK_CONGESTION = 1, REMOTE_VIDEO_STATE_REASON_NETWORK_RECOVERY = 2, REMOTE_VIDEO_STATE_REASON_LOCAL_MUTED = 3,
  REMOTE_VIDEO_STATE_REASON_LOCAL_UNMUTED = 4, REMOTE_VIDEO_STATE_REASON_REMOTE_MUTED = 5, REMOTE_VIDEO_STATE_REASON_REMOTE_UNMUTED = 6, REMOTE_VIDEO_STATE_REASON_REMOTE_OFFLINE = 7,
  REMOTE_VIDEO_STATE_REASON_AUDIO_FALLBACK = 8, REMOTE_VIDEO_STATE_REASON_AUDIO_FALLBACK_RECOVERY = 9, REMOTE_VIDEO_STATE_REASON_VIDEO_STREAM_TYPE_CHANGE_TO_LOW = 10, REMOTE_VIDEO_STATE_REASON_VIDEO_STREAM_TYPE_CHANGE_TO_HIGH = 11
}
 
enum  REMOTE_USER_STATE { USER_STATE_MUTE_AUDIO = (1 << 0), USER_STATE_MUTE_VIDEO = (1 << 1), USER_STATE_ENABLE_VIDEO = (1 << 4), USER_STATE_ENABLE_LOCAL_VIDEO = (1 << 8) }
 
enum  REMOTE_VIDEO_DOWNSCALE_LEVEL {
  REMOTE_VIDEO_DOWNSCALE_LEVEL_NONE, REMOTE_VIDEO_DOWNSCALE_LEVEL_1, REMOTE_VIDEO_DOWNSCALE_LEVEL_2, REMOTE_VIDEO_DOWNSCALE_LEVEL_3,
  REMOTE_VIDEO_DOWNSCALE_LEVEL_4
}
 
enum  AUDIO_SAMPLE_RATE_TYPE { AUDIO_SAMPLE_RATE_32000 = 32000, AUDIO_SAMPLE_RATE_44100 = 44100, AUDIO_SAMPLE_RATE_48000 = 48000 }
 
enum  VIDEO_CODEC_PROFILE_TYPE { VIDEO_CODEC_PROFILE_BASELINE = 66, VIDEO_CODEC_PROFILE_MAIN = 77, VIDEO_CODEC_PROFILE_HIGH = 100 }
 
enum  AUDIO_CODEC_PROFILE_TYPE { AUDIO_CODEC_PROFILE_LC_AAC = 0, AUDIO_CODEC_PROFILE_HE_AAC = 1, AUDIO_CODEC_PROFILE_HE_AAC_V2 = 2 }
 
enum  RTMP_STREAM_PUBLISH_STATE {
  RTMP_STREAM_PUBLISH_STATE_IDLE = 0, RTMP_STREAM_PUBLISH_STATE_CONNECTING = 1, RTMP_STREAM_PUBLISH_STATE_RUNNING = 2, RTMP_STREAM_PUBLISH_STATE_RECOVERING = 3,
  RTMP_STREAM_PUBLISH_STATE_FAILURE = 4, RTMP_STREAM_PUBLISH_STATE_DISCONNECTING = 5
}
 
enum  RTMP_STREAM_PUBLISH_ERROR_TYPE {
  RTMP_STREAM_PUBLISH_ERROR_OK = 0, RTMP_STREAM_PUBLISH_ERROR_INVALID_ARGUMENT = 1, RTMP_STREAM_PUBLISH_ERROR_ENCRYPTED_STREAM_NOT_ALLOWED = 2, RTMP_STREAM_PUBLISH_ERROR_CONNECTION_TIMEOUT = 3,
  RTMP_STREAM_PUBLISH_ERROR_INTERNAL_SERVER_ERROR = 4, RTMP_STREAM_PUBLISH_ERROR_RTMP_SERVER_ERROR = 5, RTMP_STREAM_PUBLISH_ERROR_TOO_OFTEN = 6, RTMP_STREAM_PUBLISH_ERROR_REACH_LIMIT = 7,
  RTMP_STREAM_PUBLISH_ERROR_NOT_AUTHORIZED = 8, RTMP_STREAM_PUBLISH_ERROR_STREAM_NOT_FOUND = 9, RTMP_STREAM_PUBLISH_ERROR_FORMAT_NOT_SUPPORTED = 10, RTMP_STREAM_PUBLISH_ERROR_NOT_BROADCASTER = 11,
  RTMP_STREAM_PUBLISH_ERROR_TRANSCODING_NO_MIX_STREAM = 13, RTMP_STREAM_PUBLISH_ERROR_NET_DOWN = 14, RTMP_STREAM_PUBLISH_ERROR_INVALID_APPID = 15, RTMP_STREAM_UNPUBLISH_ERROR_OK = 100
}
 
enum  RTMP_STREAMING_EVENT { RTMP_STREAMING_EVENT_FAILED_LOAD_IMAGE = 1, RTMP_STREAMING_EVENT_URL_ALREADY_IN_USE = 2, RTMP_STREAMING_EVENT_ADVANCED_FEATURE_NOT_SUPPORT = 3, RTMP_STREAMING_EVENT_REQUEST_TOO_OFTEN = 4 }
 
enum  LASTMILE_PROBE_RESULT_STATE { LASTMILE_PROBE_RESULT_COMPLETE = 1, LASTMILE_PROBE_RESULT_INCOMPLETE_NO_BWE = 2, LASTMILE_PROBE_RESULT_UNAVAILABLE = 3 }
 
enum  CONNECTION_CHANGED_REASON_TYPE {
  CONNECTION_CHANGED_CONNECTING = 0, CONNECTION_CHANGED_JOIN_SUCCESS = 1, CONNECTION_CHANGED_INTERRUPTED = 2, CONNECTION_CHANGED_BANNED_BY_SERVER = 3,
  CONNECTION_CHANGED_JOIN_FAILED = 4, CONNECTION_CHANGED_LEAVE_CHANNEL = 5, CONNECTION_CHANGED_INVALID_APP_ID = 6, CONNECTION_CHANGED_INVALID_CHANNEL_NAME = 7,
  CONNECTION_CHANGED_INVALID_TOKEN = 8, CONNECTION_CHANGED_TOKEN_EXPIRED = 9, CONNECTION_CHANGED_REJECTED_BY_SERVER = 10, CONNECTION_CHANGED_SETTING_PROXY_SERVER = 11,
  CONNECTION_CHANGED_RENEW_TOKEN = 12, CONNECTION_CHANGED_CLIENT_IP_ADDRESS_CHANGED = 13, CONNECTION_CHANGED_KEEP_ALIVE_TIMEOUT = 14, CONNECTION_CHANGED_REJOIN_SUCCESS = 15,
  CONNECTION_CHANGED_LOST = 16, CONNECTION_CHANGED_ECHO_TEST = 17, CONNECTION_CHANGED_CLIENT_IP_ADDRESS_CHANGED_BY_USER = 18, CONNECTION_CHANGED_SAME_UID_LOGIN = 19,
  CONNECTION_CHANGED_TOO_MANY_BROADCASTERS = 20
}
 
enum  CLIENT_ROLE_CHANGE_FAILED_REASON { CLIENT_ROLE_CHANGE_FAILED_TOO_MANY_BROADCASTERS = 1, CLIENT_ROLE_CHANGE_FAILED_NOT_AUTHORIZED = 2, CLIENT_ROLE_CHANGE_FAILED_REQUEST_TIME_OUT = 3, CLIENT_ROLE_CHANGE_FAILED_CONNECTION_FAILED = 4 }
 
enum  NETWORK_TYPE {
  NETWORK_TYPE_UNKNOWN = -1, NETWORK_TYPE_DISCONNECTED = 0, NETWORK_TYPE_LAN = 1, NETWORK_TYPE_WIFI = 2,
  NETWORK_TYPE_MOBILE_2G = 3, NETWORK_TYPE_MOBILE_3G = 4, NETWORK_TYPE_MOBILE_4G = 5
}
 
enum  VIDEO_VIEW_SETUP_MODE { VIDEO_VIEW_SETUP_REPLACE = 0, VIDEO_VIEW_SETUP_ADD = 1, VIDEO_VIEW_SETUP_REMOVE = 2 }
 
enum  VOICE_BEAUTIFIER_PRESET {
  VOICE_BEAUTIFIER_OFF = 0x00000000, CHAT_BEAUTIFIER_MAGNETIC = 0x01010100, CHAT_BEAUTIFIER_FRESH = 0x01010200, CHAT_BEAUTIFIER_VITALITY = 0x01010300,
  SINGING_BEAUTIFIER = 0x01020100, TIMBRE_TRANSFORMATION_VIGOROUS = 0x01030100, TIMBRE_TRANSFORMATION_DEEP = 0x01030200, TIMBRE_TRANSFORMATION_MELLOW = 0x01030300,
  TIMBRE_TRANSFORMATION_FALSETTO = 0x01030400, TIMBRE_TRANSFORMATION_FULL = 0x01030500, TIMBRE_TRANSFORMATION_CLEAR = 0x01030600, TIMBRE_TRANSFORMATION_RESOUNDING = 0x01030700,
  TIMBRE_TRANSFORMATION_RINGING = 0x01030800
}
 
enum  AUDIO_EFFECT_PRESET {
  AUDIO_EFFECT_OFF = 0x00000000, ROOM_ACOUSTICS_KTV = 0x02010100, ROOM_ACOUSTICS_VOCAL_CONCERT = 0x02010200, ROOM_ACOUSTICS_STUDIO = 0x02010300,
  ROOM_ACOUSTICS_PHONOGRAPH = 0x02010400, ROOM_ACOUSTICS_VIRTUAL_STEREO = 0x02010500, ROOM_ACOUSTICS_SPACIAL = 0x02010600, ROOM_ACOUSTICS_ETHEREAL = 0x02010700,
  ROOM_ACOUSTICS_3D_VOICE = 0x02010800, VOICE_CHANGER_EFFECT_UNCLE = 0x02020100, VOICE_CHANGER_EFFECT_OLDMAN = 0x02020200, VOICE_CHANGER_EFFECT_BOY = 0x02020300,
  VOICE_CHANGER_EFFECT_SISTER = 0x02020400, VOICE_CHANGER_EFFECT_GIRL = 0x02020500, VOICE_CHANGER_EFFECT_PIGKING = 0x02020600, VOICE_CHANGER_EFFECT_HULK = 0x02020700,
  STYLE_TRANSFORMATION_RNB = 0x02030100, STYLE_TRANSFORMATION_POPULAR = 0x02030200, PITCH_CORRECTION = 0x02040100
}
 
enum  VOICE_CONVERSION_PRESET {
  VOICE_CONVERSION_OFF = 0x00000000, VOICE_CHANGER_NEUTRAL = 0x03010100, VOICE_CHANGER_SWEET = 0x03010200, VOICE_CHANGER_SOLID = 0x03010300,
  VOICE_CHANGER_BASS = 0x03010400
}
 
enum  AUDIO_RECORDING_QUALITY_TYPE { AUDIO_RECORDING_QUALITY_LOW = 0, AUDIO_RECORDING_QUALITY_MEDIUM = 1, AUDIO_RECORDING_QUALITY_HIGH = 2 }
 
enum  AUDIO_FILE_RECORDING_TYPE { AUDIO_FILE_RECORDING_MIC = 1, AUDIO_FILE_RECORDING_PLAYBACK = 2, AUDIO_FILE_RECORDING_MIXED = 3 }
 
enum  AUDIO_ENCODED_FRAME_OBSERVER_POSITION { AUDIO_ENCODED_FRAME_OBSERVER_POSITION_RECORD = 1, AUDIO_ENCODED_FRAME_OBSERVER_POSITION_PLAYBACK = 2, AUDIO_ENCODED_FRAME_OBSERVER_POSITION_MIXED = 3 }
 
enum  AREA_CODE {
  AREA_CODE_CN = 0x00000001, AREA_CODE_NA = 0x00000002, AREA_CODE_EU = 0x00000004, AREA_CODE_AS = 0x00000008,
  AREA_CODE_JP = 0x00000010, AREA_CODE_IN = 0x00000020, AREA_CODE_GLOB = (0xFFFFFFFF)
}
 
enum  ENCRYPTION_MODE {
  AES_128_XTS = 1, AES_128_ECB = 2, AES_256_XTS = 3, SM4_128_ECB = 4,
  AES_128_GCM = 5, AES_256_GCM = 6, AES_128_GCM2 = 7, AES_256_GCM2 = 8,
  MODE_END
}
 
enum  ENCRYPTION_ERROR_TYPE
 
enum  PERMISSION_TYPE
 
enum  MAX_USER_ACCOUNT_LENGTH_TYPE { MAX_USER_ACCOUNT_LENGTH = 256 }
 
enum  STREAM_SUBSCRIBE_STATE
 
enum  STREAM_PUBLISH_STATE
 
enum  EAR_MONITORING_FILTER_TYPE { EAR_MONITORING_FILTER_NONE = (1<<0), EAR_MONITORING_FILTER_BUILT_IN_AUDIO_FILTERS = (1<<1), EAR_MONITORING_FILTER_NOISE_SUPPRESSION = (1<<2) }
 
enum  THREAD_PRIORITY_TYPE {
  LOWEST = 0, LOW = 1, NORMAL = 2, HIGH = 3,
  HIGHEST = 4, CRITICAL = 5
}
 
enum  AudioRoute {
  ROUTE_DEFAULT = -1, ROUTE_HEADSET, ROUTE_EARPIECE, ROUTE_HEADSETNOMIC,
  ROUTE_SPEAKERPHONE, ROUTE_LOUDSPEAKER, ROUTE_HEADSETBLUETOOTH, ROUTE_HDMI,
  ROUTE_USB
}
 
enum  BYTES_PER_SAMPLE { TWO_BYTES_PER_SAMPLE = 2 }
 
enum  MEDIA_DEVICE_TYPE {
  UNKNOWN_AUDIO_DEVICE = -1, AUDIO_PLAYOUT_DEVICE = 0, AUDIO_RECORDING_DEVICE = 1, VIDEO_RENDER_DEVICE = 2,
  VIDEO_CAPTURE_DEVICE = 3, AUDIO_APPLICATION_PLAYOUT_DEVICE = 4
}
 
enum  AUDIO_MIXING_STATE_TYPE {
  AUDIO_MIXING_STATE_PLAYING = 710, AUDIO_MIXING_STATE_PAUSED = 711, AUDIO_MIXING_STATE_STOPPED = 713, AUDIO_MIXING_STATE_FAILED = 714,
  AUDIO_MIXING_STATE_COMPLETED = 715, AUDIO_MIXING_STATE_ALL_LOOPS_COMPLETED = 716
}
 
enum  AUDIO_MIXING_ERROR_TYPE { AUDIO_MIXING_ERROR_CAN_NOT_OPEN = 701, AUDIO_MIXING_ERROR_TOO_FREQUENT_CALL = 702, AUDIO_MIXING_ERROR_INTERRUPTED_EOF = 703, AUDIO_MIXING_ERROR_OK = 0 }
 
enum  INJECT_STREAM_STATUS {
  INJECT_STREAM_STATUS_START_SUCCESS = 0, INJECT_STREAM_STATUS_START_ALREADY_EXISTS = 1, INJECT_STREAM_STATUS_START_UNAUTHORIZED = 2, INJECT_STREAM_STATUS_START_TIMEDOUT = 3,
  INJECT_STREAM_STATUS_START_FAILED = 4, INJECT_STREAM_STATUS_STOP_SUCCESS = 5, INJECT_STREAM_STATUS_STOP_NOT_FOUND = 6, INJECT_STREAM_STATUS_STOP_UNAUTHORIZED = 7,
  INJECT_STREAM_STATUS_STOP_TIMEDOUT = 8, INJECT_STREAM_STATUS_STOP_FAILED = 9, INJECT_STREAM_STATUS_BROKEN = 10
}
 
enum  AUDIO_EQUALIZATION_BAND_FREQUENCY {
  AUDIO_EQUALIZATION_BAND_31 = 0, AUDIO_EQUALIZATION_BAND_62 = 1, AUDIO_EQUALIZATION_BAND_125 = 2, AUDIO_EQUALIZATION_BAND_250 = 3,
  AUDIO_EQUALIZATION_BAND_500 = 4, AUDIO_EQUALIZATION_BAND_1K = 5, AUDIO_EQUALIZATION_BAND_2K = 6, AUDIO_EQUALIZATION_BAND_4K = 7,
  AUDIO_EQUALIZATION_BAND_8K = 8, AUDIO_EQUALIZATION_BAND_16K = 9
}
 
enum  AUDIO_REVERB_TYPE {
  AUDIO_REVERB_DRY_LEVEL = 0, AUDIO_REVERB_WET_LEVEL = 1, AUDIO_REVERB_ROOM_SIZE = 2, AUDIO_REVERB_WET_DELAY = 3,
  AUDIO_REVERB_STRENGTH = 4
}
 
enum  RTMP_STREAM_LIFE_CYCLE_TYPE { RTMP_STREAM_LIFE_CYCLE_BIND2CHANNEL = 1, RTMP_STREAM_LIFE_CYCLE_BIND2OWNER = 2 }
 
enum  CLOUD_PROXY_TYPE { NONE_PROXY = 0, UDP_PROXY = 1 }
 
enum  LOCAL_PROXY_MODE { kConnectivityFirst = 0, kLocalOnly = 1 }
 
enum  MEDIA_DEVICE_STATE_TYPE {
  MEDIA_DEVICE_STATE_IDLE = 0, MEDIA_DEVICE_STATE_ACTIVE = 1, MEDIA_DEVICE_STATE_DISABLED = 2, MEDIA_DEVICE_STATE_NOT_PRESENT = 4,
  MEDIA_DEVICE_STATE_UNPLUGGED = 8
}
 

Variables

const int STANDARD_BITRATE = 0
 
const int COMPATIBLE_BITRATE = -1
 
const int DEFAULT_MIN_BITRATE = -1
 
const int DEFAULT_MIN_BITRATE_EQUAL_TO_TARGET_BITRATE = -2
 

Typedef Documentation

◆ RtcImage

The definition of the RtcImage struct.

◆ uid_t

typedef unsigned int uid_t

◆ track_id_t

typedef unsigned int track_id_t

◆ conn_id_t

typedef unsigned int conn_id_t

Enumeration Type Documentation

◆ RTMP_CHANNEL_EVENT

The events in the RTMP channel.

Enumerator
RTMP_CHANNEL_EVENT_DISCONNECT 

0: The live stream service is disconnected.

RTMP_CHANNEL_EVENT_LEAVE_CHANNEL 

1: The live stream service has left the channel.

RTMP_CHANNEL_EVENT_BANNED_BY_SERVER 

2: The live stream service is banned by the server.

◆ RTMP_CONNECTION_ERROR

The RTMP Connection error codes.

Enumerator
RTMP_CONNECTION_ERR_OK 

0: No error occurs.

RTMP_CONNECTION_ERR_FAILED 

1: A general error occurs (no specified reason).

RTMP_CONNECTION_ERR_INVALID_URL 

2: The rtmp url is invalid.

RTMP_CONNECTION_ERR_BAD_NAME 

3: Already exist stream name.

◆ RTMP_CONNECTION_STATE

The connection state between the SDK and the RTMP server.

Enumerator
STATE_DISCONNECTED 

1: The SDK is disconnected from the RTMP server.

This is the initial state when an RTMP Connetion is created by the createRtmpConnection method.

The RTMP Connection also enters this state if you call the disconnect method when the SDK is in the STATE_CONNECTING(2), STATE_CONNECTED(3), STATE_RECONNECTING(4) or STATE_FAILED(5) state.

STATE_CONNECTING 

2: The SDK is connecting to the RTMP server.

The SDK goes to this state after you call the connect method, indicating that the SDK is in the process of establishing a connection to the RTMP server.

Once successfully connected, it enters the STATE_CONNECTED(3) state.

If the SDK fails to connect to RTMP server, the SDK goes to STATE_FAILED(5).

STATE_CONNECTED 

3: The SDK is connected to the RTMP server.

This state indicates that the SDK has established a connection to the RTMP server, and you can publish media streams through this connection.

Once the connection is interrupted, for example, due to network deterioration or network type change, the SDK tries to reconnect to the RTMP server and enters the STATE_RECONNECTING(4) state.

STATE_RECONNECTING 

4: The SDK is reconnecting to the RTMP server.

This state indicates that the connection is interrupted by some network issue. The SDK keeps trying connecting to the server. If the SDK fails to reconnect, the SDK goes to STATE_FAILED(5).

STATE_FAILED 

5: The SDK fails to connect to the RTMP server.

In this state, SDK stops connecting to the server. Call the

STATE_RECONNECTED 

6: The SDK is reconnected to the RTMP server.

This state indicates that the connection is interrupted by some network issue. The SDK keeps trying connecting to the server. If the SDK reconnected to server, the SDK goes to STATE_RECONNECTED(6).

◆ PublishAudioError

The error occurs while publising audio stream.

Enumerator
PUBLISH_AUDIO_ERR_OK 

0: No error occurs.

PUBLISH_AUDIO_ERR_FAILED 

1: A general error occurs (no specified reason).

◆ PublishVideoError

The error occurs while publising video stream.

Enumerator
PUBLISH_VIDEO_ERR_OK 

0: No error occurs.

PUBLISH_VIDEO_ERR_FAILED 

1: A general error occurs (no specified reason).

◆ ImageType

enum ImageType
Enumerator
kPng 
kJpeg 
kGif 

◆ VideoTrackType

Enumerator
LOCAL_VIDEO_TRACK 
REMOTE_VIDEO_TRACK 

◆ USER_OFFLINE_REASON_TYPE

Reasons for a user being offline.

Enumerator
USER_OFFLINE_QUIT 

0: The user leaves the current channel.

USER_OFFLINE_DROPPED 

1: The SDK times out and the user drops offline because no data packet was received within a certain period of time. If a user quits the call and the message is not passed to the SDK (due to an unreliable channel), the SDK assumes that the user drops offline.

USER_OFFLINE_BECOME_AUDIENCE 

2: (Live Broadcast only.) The user role switches from broadcaster to audience.

◆ INTERFACE_ID_TYPE

Enumerator
AGORA_IID_AUDIO_DEVICE_MANAGER 
AGORA_IID_VIDEO_DEVICE_MANAGER 
AGORA_IID_PARAMETER_ENGINE 
AGORA_IID_MEDIA_ENGINE 
AGORA_IID_AUDIO_ENGINE 
AGORA_IID_VIDEO_ENGINE 
AGORA_IID_RTC_CONNECTION 
AGORA_IID_SIGNALING_ENGINE 
AGORA_IID_MEDIA_ENGINE_REGULATOR 
AGORA_IID_CLOUD_SPATIAL_AUDIO 
AGORA_IID_LOCAL_SPATIAL_AUDIO 

◆ QUALITY_TYPE

The network quality types.

Enumerator
QUALITY_UNKNOWN 

0: The network quality is unknown.

Deprecated:
This member is deprecated.
QUALITY_EXCELLENT 

1: The quality is excellent.

QUALITY_GOOD 

2: The quality is quite good, but the bitrate may be slightly lower than excellent.

QUALITY_POOR 

3: Users can feel the communication slightly impaired.

QUALITY_BAD 

4: Users cannot communicate smoothly.

QUALITY_VBAD 

5: Users can barely communicate.

QUALITY_DOWN 

6: Users cannot communicate at all.

QUALITY_UNSUPPORTED 

7: (For future use) The network quality cannot be detected.

QUALITY_DETECTING 

8: Detecting the network quality.

◆ FIT_MODE_TYPE

Content fit modes.

Enumerator
MODE_COVER 

1: Uniformly scale the video until it fills the visible boundaries (cropped). One dimension of the video may have clipped contents.

MODE_CONTAIN 

2: Uniformly scale the video until one of its dimension fits the boundary (zoomed to fit). Areas that are not filled due to disparity in the aspect ratio are filled with black.

◆ VIDEO_ORIENTATION

The rotation information.

Enumerator
VIDEO_ORIENTATION_0 

0: Rotate the video by 0 degree clockwise.

VIDEO_ORIENTATION_90 

90: Rotate the video by 90 degrees clockwise.

VIDEO_ORIENTATION_180 

180: Rotate the video by 180 degrees clockwise.

VIDEO_ORIENTATION_270 

270: Rotate the video by 270 degrees clockwise.

◆ FRAME_RATE

enum FRAME_RATE

The video frame rate.

Enumerator
FRAME_RATE_FPS_1 

1: 1 fps.

FRAME_RATE_FPS_7 

7: 7 fps.

FRAME_RATE_FPS_10 

10: 10 fps.

FRAME_RATE_FPS_15 

15: 15 fps.

FRAME_RATE_FPS_24 

24: 24 fps.

FRAME_RATE_FPS_30 

30: 30 fps.

FRAME_RATE_FPS_60 

60: 60 fps. Applies to Windows and macOS only.

◆ FRAME_WIDTH

Enumerator
FRAME_WIDTH_640 

◆ FRAME_HEIGHT

Enumerator
FRAME_HEIGHT_360 

◆ VIDEO_FRAME_TYPE

Types of the video frame.

Enumerator
VIDEO_FRAME_TYPE_BLANK_FRAME 

(Default) Blank frame

VIDEO_FRAME_TYPE_KEY_FRAME 

(Default) Key frame

VIDEO_FRAME_TYPE_DELTA_FRAME 

(Default) Delta frame

VIDEO_FRAME_TYPE_B_FRAME 

(Default) B frame

VIDEO_FRAME_TYPE_DROPPABLE_FRAME 

(Default) Droppable frame

VIDEO_FRAME_TYPE_UNKNOW 

(Default) Unknown frame type

◆ ORIENTATION_MODE

Video output orientation modes.

Enumerator
ORIENTATION_MODE_ADAPTIVE 

0: (Default) Adaptive mode.

In this mode, the output video always follows the orientation of the captured video.

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

1: Landscape mode.

In this mode, the output video is always in landscape mode. If the captured video is in portrait mode, the video encoder crops it to fit the output. Applies to scenarios where the receiver cannot process the rotation information, for example, CDN live streaming.

ORIENTATION_MODE_FIXED_PORTRAIT 

2: Portrait mode.

In this mode, the output video is always in portrait mode. If the captured video is in landscape mode, the video encoder crops it to fit the output. Applies to scenarios where the receiver cannot process the rotation information, for example, CDN live streaming.

◆ DEGRADATION_PREFERENCE

(For future use) Video degradation preferences under limited bandwidth.

Enumerator
MAINTAIN_QUALITY 

0: (Default) Degrade the frame rate and keep resolution to guarantee the video quality.

MAINTAIN_FRAMERATE 

1: Degrade resolution in order to maintain framerate.

MAINTAIN_BALANCED 

2: Maintain resolution in video quality control process. Under limited bandwidth, degrade video quality first and then degrade frame rate.

MAINTAIN_RESOLUTION 

3: Degrade framerate in order to maintain resolution.

DISABLED 

4: Disable VQC adjustion.

◆ VIDEO_CODEC_TYPE

Video codec types.

Enumerator
VIDEO_CODEC_NONE 
VIDEO_CODEC_VP8 

1: VP8.

VIDEO_CODEC_H264 

2: H.264.

VIDEO_CODEC_H265 

3: H.265.

VIDEO_CODEC_VP9 

5: VP9.

VIDEO_CODEC_GENERIC 

6: Generic.

VIDEO_CODEC_GENERIC_H264 

7: Generic H264.

VIDEO_CODEC_AV1 

12: AV1.

VIDEO_CODEC_GENERIC_JPEG 

20: JPEG.

◆ AUDIO_CODEC_TYPE

Audio codec types.

Enumerator
AUDIO_CODEC_OPUS 

1: OPUS.

AUDIO_CODEC_PCMA 

3: PCMA.

AUDIO_CODEC_PCMU 

4: PCMU.

AUDIO_CODEC_G722 

5: G722.

AUDIO_CODEC_AACLC 

7: AAC. 8: AAC LC.

AUDIO_CODEC_HEAAC 

9: HE AAC.

AUDIO_CODEC_JC1 

10: JC1.

AUDIO_CODEC_HEAAC2 
AUDIO_CODEC_LPCNET 

12: LPCNET.

◆ AUDIO_ENCODING_TYPE

audio encoding type of audio encoded frame observer.

Enumerator
AUDIO_ENCODING_TYPE_AAC_16000_LOW 

1: codecType AAC; sampleRate 16000; quality low which around 1.2 MB after 10 minutes

AUDIO_ENCODING_TYPE_AAC_16000_MEDIUM 

1: codecType AAC; sampleRate 16000; quality medium which around 2 MB after 10 minutes

AUDIO_ENCODING_TYPE_AAC_32000_LOW 

1: codecType AAC; sampleRate 32000; quality low which around 1.2 MB after 10 minutes

AUDIO_ENCODING_TYPE_AAC_32000_MEDIUM 

1: codecType AAC; sampleRate 32000; quality medium which around 2 MB after 10 minutes

AUDIO_ENCODING_TYPE_AAC_32000_HIGH 

1: codecType AAC; sampleRate 32000; quality high which around 3.5 MB after 10 minutes

AUDIO_ENCODING_TYPE_AAC_48000_MEDIUM 

1: codecType AAC; sampleRate 48000; quality medium which around 2 MB after 10 minutes

AUDIO_ENCODING_TYPE_AAC_48000_HIGH 

1: codecType AAC; sampleRate 48000; quality high which around 3.5 MB after 10 minutes

AUDIO_ENCODING_TYPE_OPUS_16000_LOW 

1: codecType OPUS; sampleRate 16000; quality low which around 1.2 MB after 10 minutes

AUDIO_ENCODING_TYPE_OPUS_16000_MEDIUM 

1: codecType OPUS; sampleRate 16000; quality medium which around 2 MB after 10 minutes

AUDIO_ENCODING_TYPE_OPUS_48000_MEDIUM 

1: codecType OPUS; sampleRate 48000; quality medium which around 2 MB after 10 minutes

AUDIO_ENCODING_TYPE_OPUS_48000_HIGH 

1: codecType OPUS; sampleRate 48000; quality high which around 3.5 MB after 10 minutes

◆ WATERMARK_FIT_MODE

Watermark fit mode

Enumerator
FIT_MODE_COVER_POSITION 

Use the position of positionInLandscapeMode/positionInPortraitMode in WatermarkOptions the widthRatio will be invalid.

FIT_MODE_USE_IMAGE_RATIO 

Use width rotio of video, in this mode, positionInLandscapeMode/positionInPortraitMode in WatermarkOptions will be invalid, and watermarkRatio will valid.

◆ H264PacketizeMode

Packetization modes. Applies to H.264 only.

Enumerator
NonInterleaved 

Non-interleaved mode. See RFC 6184.

SingleNalUnit 

Single NAL unit mode. See RFC 6184.

◆ VIDEO_STREAM_TYPE

Video stream types.

Enumerator
VIDEO_STREAM_HIGH 

0: The high-quality video stream, which has a higher resolution and bitrate.

VIDEO_STREAM_LOW 

1: The low-quality video stream, which has a lower resolution and bitrate.

◆ VIDEO_MIRROR_MODE_TYPE

Video mirror mode types.

Enumerator
VIDEO_MIRROR_MODE_AUTO 

(Default) 0: The mirror mode determined by the SDK.

VIDEO_MIRROR_MODE_ENABLED 

1: Enable the mirror mode.

VIDEO_MIRROR_MODE_DISABLED 

2: Disable the mirror mode.

◆ VIDEO_SOURCE_TYPE

Video source types definition.

Enumerator
VIDEO_SOURCE_CAMERA_PRIMARY 

Video captured by the camera.

VIDEO_SOURCE_CAMERA 
VIDEO_SOURCE_CAMERA_SECONDARY 

Video captured by the secondary camera.

VIDEO_SOURCE_SCREEN_PRIMARY 

Video for screen sharing.

VIDEO_SOURCE_SCREEN 
VIDEO_SOURCE_SCREEN_SECONDARY 

Video for secondary screen sharing.

VIDEO_SOURCE_CUSTOM 

Not define.

VIDEO_SOURCE_MEDIA_PLAYER 

Video for media player sharing.

VIDEO_SOURCE_RTC_IMAGE_PNG 

Video for png image.

VIDEO_SOURCE_RTC_IMAGE_JPEG 

Video for png image.

VIDEO_SOURCE_RTC_IMAGE_GIF 

Video for png image.

VIDEO_SOURCE_REMOTE 

Remote video received from network.

VIDEO_SOURCE_TRANSCODED 

Video for transcoded.

VIDEO_SOURCE_UNKNOWN 

◆ CLIENT_ROLE_TYPE

User role types.

Enumerator
CLIENT_ROLE_BROADCASTER 

1: Broadcaster. A broadcaster can both send and receive streams.

CLIENT_ROLE_AUDIENCE 

2: Audience. An audience can only receive streams.

◆ QUALITY_ADAPT_INDICATION

Quality change of the local video in terms of target frame rate and target bit rate since last count.

Enumerator
ADAPT_NONE 

The quality of the local video stays the same.

ADAPT_UP_BANDWIDTH 

The quality improves because the network bandwidth increases.

ADAPT_DOWN_BANDWIDTH 

The quality worsens because the network bandwidth decreases.

◆ AUDIENCE_LATENCY_LEVEL_TYPE

Client role levels in a live broadcast.

Enumerator
AUDIENCE_LATENCY_LEVEL_LOW_LATENCY 

1: Low latency. A low latency audience's jitter buffer is 1.2 second.

AUDIENCE_LATENCY_LEVEL_ULTRA_LOW_LATENCY 

2: Ultra low latency. A default ultra low latency audience's jitter buffer is 0.5 second.

AUDIENCE_LATENCY_LEVEL_HIGH_LATENCY 

3: High latency. For RTLS2.0

◆ EXPERIENCE_QUALITY_TYPE

Quality of experience (QoE) of the local user when receiving a remote audio stream.

Enumerator
EXPERIENCE_QUALITY_GOOD 

0: QoE of the local user is good.

EXPERIENCE_QUALITY_BAD 

1: QoE of the local user is poor.

◆ AUDIO_PROFILE_TYPE

Audio profile types.

Enumerator
AUDIO_PROFILE_DEFAULT 

0: The default audio profile.

  • In the Communication profile, it represents a sample rate of 16 kHz, music encoding, mono, and a bitrate of up to 16 Kbps.
  • In the Live-broadcast profile, it represents a sample rate of 48 kHz, music encoding, mono, and a bitrate of up to 64 Kbps.
AUDIO_PROFILE_SPEECH_STANDARD 

1: A sample rate of 16 kHz, audio encoding, mono, and a bitrate up to 18 Kbps.

AUDIO_PROFILE_MUSIC_STANDARD 

2: A sample rate of 48 kHz, music encoding, mono, and a bitrate of up to 64 Kbps.

AUDIO_PROFILE_MUSIC_STANDARD_STEREO 

3: A sample rate of 48 kHz, music encoding, stereo, and a bitrate of up to 80 Kbps.

AUDIO_PROFILE_MUSIC_HIGH_QUALITY 

4: A sample rate of 48 kHz, music encoding, mono, and a bitrate of up to 96 Kbps.

AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO 

5: A sample rate of 48 kHz, music encoding, stereo, and a bitrate of up to 128 Kbps.

AUDIO_PROFILE_IOT 

6: A sample rate of 16 kHz, audio encoding, mono, and a bitrate of up to 64 Kbps.

AUDIO_PROFILE_NUM 

◆ AUDIO_SCENARIO_TYPE

Audio application scenarios.

Enumerator
AUDIO_SCENARIO_DEFAULT 

0: (Recommended) The default audio scenario.

AUDIO_SCENARIO_GAME_STREAMING 

3: (Recommended) The live gaming scenario, which needs to enable gaming audio effects in the speaker. Choose this scenario to achieve high-fidelity music playback.

AUDIO_SCENARIO_CHATROOM 

5: The chatroom scenario, which needs to keep recording when setClientRole to audience. Normally, app developer can also use mute api to achieve the same result, and we implement this 'non-orthogonal' behavior only to make API backward compatible.

AUDIO_SCENARIO_HIGH_DEFINITION 

6: (Recommended) The scenario requiring high-quality audio.

AUDIO_SCENARIO_CHORUS 

7: Chorus

AUDIO_SCENARIO_NUM 

8: Reserved.

◆ VIDEO_CONTENT_HINT

Video content hints.

Enumerator
CONTENT_HINT_NONE 

(Default) No content hint. In this case, the SDK balances smoothness with sharpness.

CONTENT_HINT_MOTION 

Choose this option if you prefer smoothness or when you are sharing motion-intensive content such as a video clip, movie, or video game.

CONTENT_HINT_DETAILS 

Choose this option if you prefer sharpness or when you are sharing montionless content such as a picture, PowerPoint slide, ot text.

◆ LOCAL_AUDIO_STREAM_STATE

States of the local audio.

Enumerator
LOCAL_AUDIO_STREAM_STATE_STOPPED 

0: The local audio is in the initial state.

LOCAL_AUDIO_STREAM_STATE_RECORDING 

1: The audio recording device starts successfully.

LOCAL_AUDIO_STREAM_STATE_ENCODING 

2: The first audio frame is encoded successfully.

LOCAL_AUDIO_STREAM_STATE_FAILED 

3: The local audio fails to start.

◆ LOCAL_AUDIO_STREAM_ERROR

Reasons for the local audio failure.

Enumerator
LOCAL_AUDIO_STREAM_ERROR_OK 

0: The local audio is normal.

LOCAL_AUDIO_STREAM_ERROR_FAILURE 

1: No specified reason for the local audio failure.

LOCAL_AUDIO_STREAM_ERROR_DEVICE_NO_PERMISSION 

2: No permission to use the local audio device.

LOCAL_AUDIO_STREAM_ERROR_DEVICE_BUSY 

3: The microphone is in use.

LOCAL_AUDIO_STREAM_ERROR_RECORD_FAILURE 

4: The local audio recording fails. Check whether the recording device is working properly.

LOCAL_AUDIO_STREAM_ERROR_ENCODE_FAILURE 

5: The local audio encoding fails.

◆ LOCAL_VIDEO_STREAM_STATE

Local video state types.

Enumerator
LOCAL_VIDEO_STREAM_STATE_STOPPED 

0: The local video is in the initial state.

LOCAL_VIDEO_STREAM_STATE_CAPTURING 

1: The capturer starts successfully.

LOCAL_VIDEO_STREAM_STATE_ENCODING 

2: The first video frame is successfully encoded.

LOCAL_VIDEO_STREAM_STATE_FAILED 

3: The local video fails to start.

◆ LOCAL_VIDEO_STREAM_ERROR

Local video state error codes.

Enumerator
LOCAL_VIDEO_STREAM_ERROR_OK 

0: The local video is normal.

LOCAL_VIDEO_STREAM_ERROR_FAILURE 

1: No specified reason for the local video failure.

LOCAL_VIDEO_STREAM_ERROR_DEVICE_NO_PERMISSION 

2: No permission to use the local video capturing device.

LOCAL_VIDEO_STREAM_ERROR_DEVICE_BUSY 

3: The local video capturing device is in use.

LOCAL_VIDEO_STREAM_ERROR_CAPTURE_FAILURE 

4: The local video capture fails. Check whether the capturing device is working properly.

LOCAL_VIDEO_STREAM_ERROR_ENCODE_FAILURE 

5: The local video encoding fails.

LOCAL_VIDEO_STREAM_ERROR_CAPTURE_INBACKGROUND 

6: The local video capturing device not avalible due to app did enter background.

LOCAL_VIDEO_STREAM_ERROR_CAPTURE_MULTIPLE_FOREGROUND_APPS 

7: The local video capturing device not avalible because the app is running in a multi-app layout (generally on the pad)

LOCAL_VIDEO_STREAM_ERROR_DEVICE_NOT_FOUND 

8: The local capture device cannot be found

LOCAL_VIDEO_STREAM_ERROR_DEVICE_DISCONNECTED 

9: The local capture device is disconnected

LOCAL_VIDEO_STREAM_ERROR_DEVICE_INVALID_ID 

10:The local captue device id is invalid, for Windows and Mac only

LOCAL_VIDEO_STREAM_ERROR_DEVICE_SYSTEM_PRESSURE 

101: The local video capturing device temporarily being made unavailable due to system pressure.

LOCAL_VIDEO_STREAM_ERROR_SCREEN_CAPTURE_WINDOW_MINIMIZED 

11: The local screen capture window is minimized.

LOCAL_VIDEO_STREAM_ERROR_SCREEN_CAPTURE_WINDOW_CLOSED 

12: The local screen capture window is closed.

LOCAL_VIDEO_STREAM_ERROR_SCREEN_CAPTURE_WINDOW_OCCLUDED 

13: The local screen capture window is occluded.

LOCAL_VIDEO_STREAM_ERROR_SCREEN_CAPTURE_WINDOW_NOT_SUPPORTED 

20: The local screen capture window is not supported.

◆ REMOTE_AUDIO_STATE

Remote audio states.

Enumerator
REMOTE_AUDIO_STATE_STOPPED 

0: The remote audio is in the default state, probably due to REMOTE_AUDIO_REASON_LOCAL_MUTED(3), REMOTE_AUDIO_REASON_REMOTE_MUTED(5), or REMOTE_AUDIO_REASON_REMOTE_OFFLINE(7).

REMOTE_AUDIO_STATE_STARTING 

1: The first remote audio packet is received.

REMOTE_AUDIO_STATE_DECODING 

2: The remote audio stream is decoded and plays normally, probably due to REMOTE_AUDIO_REASON_NETWORK_RECOVERY(2), REMOTE_AUDIO_REASON_LOCAL_UNMUTED(4), or REMOTE_AUDIO_REASON_REMOTE_UNMUTED(6).

REMOTE_AUDIO_STATE_FROZEN 

3: The remote audio is frozen, probably due to REMOTE_AUDIO_REASON_NETWORK_CONGESTION(1).

REMOTE_AUDIO_STATE_FAILED 

4: The remote audio fails to start, probably due to REMOTE_AUDIO_REASON_INTERNAL(0).

◆ REMOTE_AUDIO_STATE_REASON

Reasons for a remote audio state change.

Enumerator
REMOTE_AUDIO_REASON_INTERNAL 

0: Internal reasons.

REMOTE_AUDIO_REASON_NETWORK_CONGESTION 

1: Network congestion.

REMOTE_AUDIO_REASON_NETWORK_RECOVERY 

2: Network recovery.

REMOTE_AUDIO_REASON_LOCAL_MUTED 

3: The local user stops receiving the remote audio stream or disables the audio module.

REMOTE_AUDIO_REASON_LOCAL_UNMUTED 

4: The local user resumes receiving the remote audio stream or enables the audio module.

REMOTE_AUDIO_REASON_REMOTE_MUTED 

5: The remote user stops sending the audio stream or disables the audio module.

REMOTE_AUDIO_REASON_REMOTE_UNMUTED 

6: The remote user resumes sending the audio stream or enables the audio module.

REMOTE_AUDIO_REASON_REMOTE_OFFLINE 

7: The remote user leaves the channel.

◆ REMOTE_VIDEO_STATE

The state of the remote video.

Enumerator
REMOTE_VIDEO_STATE_STOPPED 

0: The remote video is in the default state, probably due to REMOTE_VIDEO_STATE_REASON_LOCAL_MUTED (3), REMOTE_VIDEO_STATE_REASON_REMOTE_MUTED (5), or REMOTE_VIDEO_STATE_REASON_REMOTE_OFFLINE (7).

REMOTE_VIDEO_STATE_STARTING 

1: The first remote video packet is received.

REMOTE_VIDEO_STATE_DECODING 

2: The remote video stream is decoded and plays normally, probably due to REMOTE_VIDEO_STATE_REASON_NETWORK_RECOVERY (2), REMOTE_VIDEO_STATE_REASON_LOCAL_UNMUTED (4), REMOTE_VIDEO_STATE_REASON_REMOTE_UNMUTED (6), or REMOTE_VIDEO_STATE_REASON_AUDIO_FALLBACK_RECOVERY (9).

REMOTE_VIDEO_STATE_FROZEN 

3: The remote video is frozen, probably due to REMOTE_VIDEO_STATE_REASON_NETWORK_CONGESTION (1) or REMOTE_VIDEO_STATE_REASON_AUDIO_FALLBACK (8).

REMOTE_VIDEO_STATE_FAILED 

4: The remote video fails to start, probably due to REMOTE_VIDEO_STATE_REASON_INTERNAL (0).

◆ REMOTE_VIDEO_STATE_REASON

The reason for the remote video state change.

Enumerator
REMOTE_VIDEO_STATE_REASON_INTERNAL 

0: Internal reasons.

REMOTE_VIDEO_STATE_REASON_NETWORK_CONGESTION 

1: Network congestion.

REMOTE_VIDEO_STATE_REASON_NETWORK_RECOVERY 

2: Network recovery.

REMOTE_VIDEO_STATE_REASON_LOCAL_MUTED 

3: The local user stops receiving the remote video stream or disables the video module.

REMOTE_VIDEO_STATE_REASON_LOCAL_UNMUTED 

4: The local user resumes receiving the remote video stream or enables the video module.

REMOTE_VIDEO_STATE_REASON_REMOTE_MUTED 

5: The remote user stops sending the video stream or disables the video module.

REMOTE_VIDEO_STATE_REASON_REMOTE_UNMUTED 

6: The remote user resumes sending the video stream or enables the video module.

REMOTE_VIDEO_STATE_REASON_REMOTE_OFFLINE 

7: The remote user leaves the channel.

REMOTE_VIDEO_STATE_REASON_AUDIO_FALLBACK 

8: The remote audio-and-video stream falls back to the audio-only stream due to poor network conditions.

REMOTE_VIDEO_STATE_REASON_AUDIO_FALLBACK_RECOVERY 

9: The remote audio-only stream switches back to the audio-and-video stream after the network conditions improve.

REMOTE_VIDEO_STATE_REASON_VIDEO_STREAM_TYPE_CHANGE_TO_LOW 

10: The remote video stream type change to low stream type just for internal use

REMOTE_VIDEO_STATE_REASON_VIDEO_STREAM_TYPE_CHANGE_TO_HIGH 

11: The remote video stream type change to high stream type just for internal use

◆ REMOTE_USER_STATE

The remote user state information.

Enumerator
USER_STATE_MUTE_AUDIO 

The remote user has muted the audio.

USER_STATE_MUTE_VIDEO 

The remote user has muted the video.

USER_STATE_ENABLE_VIDEO 

The remote user has enabled the video, which includes video capturing and encoding.

USER_STATE_ENABLE_LOCAL_VIDEO 

The remote user has enabled the local video capturing.

◆ REMOTE_VIDEO_DOWNSCALE_LEVEL

The downscale level of the remote video stream . The higher the downscale level, the more the video downscales.

Enumerator
REMOTE_VIDEO_DOWNSCALE_LEVEL_NONE 

No downscale.

REMOTE_VIDEO_DOWNSCALE_LEVEL_1 

Downscale level 1.

REMOTE_VIDEO_DOWNSCALE_LEVEL_2 

Downscale level 2.

REMOTE_VIDEO_DOWNSCALE_LEVEL_3 

Downscale level 3.

REMOTE_VIDEO_DOWNSCALE_LEVEL_4 

Downscale level 4.

◆ AUDIO_SAMPLE_RATE_TYPE

Audio sample rate types.

Enumerator
AUDIO_SAMPLE_RATE_32000 

32000: 32 KHz.

AUDIO_SAMPLE_RATE_44100 

44100: 44.1 KHz.

AUDIO_SAMPLE_RATE_48000 

48000: 48 KHz.

◆ VIDEO_CODEC_TYPE_FOR_STREAM

Enumerator
VIDEO_CODEC_H264_FOR_STREAM 

1: (Default) H.264

VIDEO_CODEC_H265_FOR_STREAM 

2: H.265

◆ VIDEO_CODEC_PROFILE_TYPE

Video codec profile types.

Enumerator
VIDEO_CODEC_PROFILE_BASELINE 

66: Baseline video codec profile. Generally used in video calls on mobile phones.

VIDEO_CODEC_PROFILE_MAIN 

77: Main video codec profile. Generally used in mainstream electronics, such as MP4 players, portable video players, PSP, and iPads.

VIDEO_CODEC_PROFILE_HIGH 

100: (Default) High video codec profile. Generally used in high-resolution broadcasts or television.

◆ AUDIO_CODEC_PROFILE_TYPE

Audio codec profile types.

Enumerator
AUDIO_CODEC_PROFILE_LC_AAC 

0: (Default) LC-AAC, which is the low-complexity audio codec type.

AUDIO_CODEC_PROFILE_HE_AAC 

1: HE-AAC, which is the high-efficiency audio codec type.

AUDIO_CODEC_PROFILE_HE_AAC_V2 

2: HE-AACv2, which is the high-efficiency audio codec type.

◆ RTMP_STREAM_PUBLISH_STATE

States of the RTMP or RTMPS streaming.

Enumerator
RTMP_STREAM_PUBLISH_STATE_IDLE 

The RTMP or RTMPS streaming has not started or has ended. This state is also triggered after you remove an RTMP or RTMPS stream from the CDN by calling removePublishStreamUrl.

RTMP_STREAM_PUBLISH_STATE_CONNECTING 

The SDK is connecting to Agora's streaming server and the CDN server. This state is triggered after you call the addPublishStreamUrl method.

RTMP_STREAM_PUBLISH_STATE_RUNNING 

The RTMP or RTMPS streaming publishes. The SDK successfully publishes the RTMP or RTMPS streaming and returns this state.

RTMP_STREAM_PUBLISH_STATE_RECOVERING 

The RTMP or RTMPS streaming is recovering. When exceptions occur to the CDN, or the streaming is interrupted, the SDK tries to resume RTMP or RTMPS streaming and returns this state.

RTMP_STREAM_PUBLISH_STATE_FAILURE 

The RTMP or RTMPS streaming fails. See the errCode parameter for the detailed error information. You can also call the addPublishStreamUrl method to publish the RTMP or RTMPS streaming again.

RTMP_STREAM_PUBLISH_STATE_DISCONNECTING 

The SDK is disconnecting to Agora's streaming server and the CDN server. This state is triggered after you call the removePublishStreamUrl method.

◆ RTMP_STREAM_PUBLISH_ERROR_TYPE

Error codes of the RTMP or RTMPS streaming.

Enumerator
RTMP_STREAM_PUBLISH_ERROR_OK 

The RTMP or RTMPS streaming publishes successfully.

RTMP_STREAM_PUBLISH_ERROR_INVALID_ARGUMENT 

Invalid argument used. If, for example, you do not call the setLiveTranscoding method to configure the LiveTranscoding parameters before calling the addPublishStreamUrl method, the SDK returns this error. Check whether you set the parameters in the setLiveTranscoding method properly.

RTMP_STREAM_PUBLISH_ERROR_ENCRYPTED_STREAM_NOT_ALLOWED 

The RTMP or RTMPS streaming is encrypted and cannot be published.

RTMP_STREAM_PUBLISH_ERROR_CONNECTION_TIMEOUT 

Timeout for the RTMP or RTMPS streaming. Call the addPublishStreamUrl method to publish the streaming again.

RTMP_STREAM_PUBLISH_ERROR_INTERNAL_SERVER_ERROR 

An error occurs in Agora's streaming server. Call the addPublishStreamUrl method to publish the streaming again.

RTMP_STREAM_PUBLISH_ERROR_RTMP_SERVER_ERROR 

An error occurs in the CDN server.

RTMP_STREAM_PUBLISH_ERROR_TOO_OFTEN 

The RTMP or RTMPS streaming publishes too frequently.

RTMP_STREAM_PUBLISH_ERROR_REACH_LIMIT 

The host publishes more than 10 URLs. Delete the unnecessary URLs before adding new ones.

RTMP_STREAM_PUBLISH_ERROR_NOT_AUTHORIZED 

The host manipulates other hosts' URLs. Check your app logic.

RTMP_STREAM_PUBLISH_ERROR_STREAM_NOT_FOUND 

Agora's server fails to find the RTMP or RTMPS streaming.

RTMP_STREAM_PUBLISH_ERROR_FORMAT_NOT_SUPPORTED 

The format of the RTMP or RTMPS streaming URL is not supported. Check whether the URL format is correct.

RTMP_STREAM_PUBLISH_ERROR_NOT_BROADCASTER 

Current role is not broadcaster. Check whether the role of the current channel.

RTMP_STREAM_PUBLISH_ERROR_TRANSCODING_NO_MIX_STREAM 

Call updateTranscoding, but no mix stream.

RTMP_STREAM_PUBLISH_ERROR_NET_DOWN 

Network error.

RTMP_STREAM_PUBLISH_ERROR_INVALID_APPID 

User AppId have not authorized to push stream.

RTMP_STREAM_UNPUBLISH_ERROR_OK 

100: The streaming has been stopped normally. After you call removePublishStreamUrl to stop streaming, the SDK returns this value.

Since
v3.4.5

◆ RTMP_STREAMING_EVENT

Events during the RTMP or RTMPS streaming.

Enumerator
RTMP_STREAMING_EVENT_FAILED_LOAD_IMAGE 

An error occurs when you add a background image or a watermark image to the RTMP or RTMPS stream.

RTMP_STREAMING_EVENT_URL_ALREADY_IN_USE 

2: The streaming URL is already being used for CDN live streaming. If you want to start new streaming, use a new streaming URL.

Since
v3.4.5
RTMP_STREAMING_EVENT_ADVANCED_FEATURE_NOT_SUPPORT 

advanced feature not support

RTMP_STREAMING_EVENT_REQUEST_TOO_OFTEN 

Client request too frequently.

◆ LASTMILE_PROBE_RESULT_STATE

States of the last mile network probe result.

Enumerator
LASTMILE_PROBE_RESULT_COMPLETE 

1: The probe result is complete.

LASTMILE_PROBE_RESULT_INCOMPLETE_NO_BWE 

2: The probe result is incomplete and bandwidth estimation is not available, probably due to temporary limited test resources.

LASTMILE_PROBE_RESULT_UNAVAILABLE 

3: The probe result is not available, probably due to poor network conditions.

◆ CONNECTION_CHANGED_REASON_TYPE

Reasons for a connection state change.

Enumerator
CONNECTION_CHANGED_CONNECTING 

0: The SDK is connecting to the server.

CONNECTION_CHANGED_JOIN_SUCCESS 

1: The SDK has joined the channel successfully.

CONNECTION_CHANGED_INTERRUPTED 

2: The connection between the SDK and the server is interrupted.

CONNECTION_CHANGED_BANNED_BY_SERVER 

3: The connection between the SDK and the server is banned by the server.

CONNECTION_CHANGED_JOIN_FAILED 

4: The SDK fails to join the channel for more than 20 minutes and stops reconnecting to the channel.

CONNECTION_CHANGED_LEAVE_CHANNEL 

5: The SDK has left the channel.

CONNECTION_CHANGED_INVALID_APP_ID 

6: The connection fails because the App ID is not valid.

CONNECTION_CHANGED_INVALID_CHANNEL_NAME 

7: The connection fails because the channel name is not valid.

CONNECTION_CHANGED_INVALID_TOKEN 

8: The connection fails because the token is not valid.

CONNECTION_CHANGED_TOKEN_EXPIRED 

9: The connection fails because the token has expired.

CONNECTION_CHANGED_REJECTED_BY_SERVER 

10: The connection is rejected by the server.

CONNECTION_CHANGED_SETTING_PROXY_SERVER 

11: The connection changes to reconnecting because the SDK has set a proxy server.

CONNECTION_CHANGED_RENEW_TOKEN 

12: When the connection state changes because the app has renewed the token.

CONNECTION_CHANGED_CLIENT_IP_ADDRESS_CHANGED 

13: The IP Address of the app has changed. A change in the network type or IP/Port changes the IP address of the app.

CONNECTION_CHANGED_KEEP_ALIVE_TIMEOUT 

14: A timeout occurs for the keep-alive of the connection between the SDK and the server.

CONNECTION_CHANGED_REJOIN_SUCCESS 

15: The SDK has rejoined the channel successfully.

CONNECTION_CHANGED_LOST 

16: The connection between the SDK and the server is lost.

CONNECTION_CHANGED_ECHO_TEST 

17: The change of connection state is caused by echo test.

CONNECTION_CHANGED_CLIENT_IP_ADDRESS_CHANGED_BY_USER 

18: The local IP Address is changed by user.

CONNECTION_CHANGED_SAME_UID_LOGIN 

19: The connection is failed due to join the same channel on another device with the same uid.

CONNECTION_CHANGED_TOO_MANY_BROADCASTERS 

19: The connection is failed due to too many broadcasters in the channel.

◆ CLIENT_ROLE_CHANGE_FAILED_REASON

The reason of changing role's failure.

Enumerator
CLIENT_ROLE_CHANGE_FAILED_TOO_MANY_BROADCASTERS 

1: Too many broadcasters in the channel.

CLIENT_ROLE_CHANGE_FAILED_NOT_AUTHORIZED 

2: The operation of changing role is not authorized.

CLIENT_ROLE_CHANGE_FAILED_REQUEST_TIME_OUT 

3: The operation of changing role is timeout.

CLIENT_ROLE_CHANGE_FAILED_CONNECTION_FAILED 

4: The operation of changing role is interrupted since we lost connection with agora service.

◆ NETWORK_TYPE

The network type.

Enumerator
NETWORK_TYPE_UNKNOWN 

-1: The network type is unknown.

NETWORK_TYPE_DISCONNECTED 

0: The network type is disconnected.

NETWORK_TYPE_LAN 

1: The network type is LAN.

NETWORK_TYPE_WIFI 

2: The network type is Wi-Fi.

NETWORK_TYPE_MOBILE_2G 

3: The network type is mobile 2G.

NETWORK_TYPE_MOBILE_3G 

4: The network type is mobile 3G.

NETWORK_TYPE_MOBILE_4G 

5: The network type is mobile 4G.

◆ VIDEO_VIEW_SETUP_MODE

The mode of setting up video views.

Enumerator
VIDEO_VIEW_SETUP_REPLACE 

0: replace one view

VIDEO_VIEW_SETUP_ADD 

1: add one view

VIDEO_VIEW_SETUP_REMOVE 

2: remove one view

◆ VOICE_BEAUTIFIER_PRESET

Preset local voice reverberation options. bitmap allocation:

bit31 bit30 - bit24 bit23 - bit16 bit15 - bit8 bit7 - bit0
reserved 0x1: voice beauty 0x1: chat beautification effect types effect settings
0x2: singing beautification
0x3: timbre transform
0x4: ultra high_quality
-----------------— --------------------------—
0x2: audio effect 0x1: space construction
0x2: voice changer effect
0x3: style transform
0x4: electronic sound
0x5: magic tone
-----------------— --------------------------—
0x3: voice changer 0x1: voice transform

The options for SDK preset voice beautifier effects.

Enumerator
VOICE_BEAUTIFIER_OFF 

Turn off voice beautifier effects and use the original voice.

CHAT_BEAUTIFIER_MAGNETIC 

A more magnetic voice.

Note
Agora recommends using this enumerator to process a male-sounding voice; otherwise, you may experience vocal distortion.
CHAT_BEAUTIFIER_FRESH 

A fresher voice.

Note
Agora recommends using this enumerator to process a female-sounding voice; otherwise, you may experience vocal distortion.
CHAT_BEAUTIFIER_VITALITY 

A more vital voice.

Note
Agora recommends using this enumerator to process a female-sounding voice; otherwise, you may experience vocal distortion.
SINGING_BEAUTIFIER 
Since
v3.3.0

Singing beautifier effect.

  • If you call setVoiceBeautifierPreset (SINGING_BEAUTIFIER), you can beautify a male-sounding voice and add a reverberation effect that sounds like singing in a small room. Agora recommends not using setVoiceBeautifierPreset (SINGING_BEAUTIFIER) to process a female-sounding voice; otherwise, you may experience vocal distortion.
  • If you call setVoiceBeautifierParameters(SINGING_BEAUTIFIER, param1, param2), you can beautify a male- or female-sounding voice and add a reverberation effect.
TIMBRE_TRANSFORMATION_VIGOROUS 

A more vigorous voice.

TIMBRE_TRANSFORMATION_DEEP 

A deeper voice.

TIMBRE_TRANSFORMATION_MELLOW 

A mellower voice.

TIMBRE_TRANSFORMATION_FALSETTO 

A falsetto voice.

TIMBRE_TRANSFORMATION_FULL 

A fuller voice.

TIMBRE_TRANSFORMATION_CLEAR 

A clearer voice.

TIMBRE_TRANSFORMATION_RESOUNDING 

A more resounding voice.

TIMBRE_TRANSFORMATION_RINGING 

A more ringing voice.

ULTRA_HIGH_QUALITY_VOICE 

◆ AUDIO_EFFECT_PRESET

The options for SDK preset audio effects.

Enumerator
AUDIO_EFFECT_OFF 

Turn off audio effects and use the original voice.

ROOM_ACOUSTICS_KTV 

An audio effect typical of a KTV venue.

Note
To achieve better audio effect quality, Agora recommends calling setAudioProfile and setting the profile parameter to AUDIO_PROFILE_MUSIC_HIGH_QUALITY(4) or AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO(5) before setting this enumerator.
ROOM_ACOUSTICS_VOCAL_CONCERT 

An audio effect typical of a concert hall.

Note
To achieve better audio effect quality, Agora recommends calling setAudioProfile and setting the profile parameter to AUDIO_PROFILE_MUSIC_HIGH_QUALITY(4) or AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO(5) before setting this enumerator.
ROOM_ACOUSTICS_STUDIO 

An audio effect typical of a recording studio.

Note
To achieve better audio effect quality, Agora recommends calling setAudioProfile and setting the profile parameter to AUDIO_PROFILE_MUSIC_HIGH_QUALITY(4) or AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO(5) before setting this enumerator.
ROOM_ACOUSTICS_PHONOGRAPH 

An audio effect typical of a vintage phonograph.

Note
To achieve better audio effect quality, Agora recommends calling setAudioProfile and setting the profile parameter to AUDIO_PROFILE_MUSIC_HIGH_QUALITY(4) or AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO(5) before setting this enumerator.
ROOM_ACOUSTICS_VIRTUAL_STEREO 

A virtual stereo effect that renders monophonic audio as stereo audio.

Note
Call setAudioProfile and set the profile parameter to AUDIO_PROFILE_MUSIC_STANDARD_STEREO(3) or AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO(5) before setting this enumerator; otherwise, the enumerator setting does not take effect.
ROOM_ACOUSTICS_SPACIAL 

A more spatial audio effect.

Note
To achieve better audio effect quality, Agora recommends calling setAudioProfile and setting the profile parameter to AUDIO_PROFILE_MUSIC_HIGH_QUALITY(4) or AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO(5) before setting this enumerator.
ROOM_ACOUSTICS_ETHEREAL 

A more ethereal audio effect.

Note
To achieve better audio effect quality, Agora recommends calling setAudioProfile and setting the profile parameter to AUDIO_PROFILE_MUSIC_HIGH_QUALITY(4) or AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO(5) before setting this enumerator.
ROOM_ACOUSTICS_3D_VOICE 

A 3D voice effect that makes the voice appear to be moving around the user. The default cycle period of the 3D voice effect is 10 seconds. To change the cycle period, call setAudioEffectParameters after this method.

Note
  • Call setAudioProfile and set the profile parameter to AUDIO_PROFILE_MUSIC_STANDARD_STEREO(3) or AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO(5) before setting this enumerator; otherwise, the enumerator setting does not take effect.
  • If the 3D voice effect is enabled, users need to use stereo audio playback devices to hear the anticipated voice effect.
VOICE_CHANGER_EFFECT_UNCLE 

The voice of an uncle.

Note
  • Agora recommends using this enumerator to process a male-sounding voice; otherwise, you may not hear the anticipated voice effect.
  • To achieve better audio effect quality, Agora recommends calling setAudioProfile and setting the profile parameter to AUDIO_PROFILE_MUSIC_HIGH_QUALITY(4) or AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO(5) before setting this enumerator.
VOICE_CHANGER_EFFECT_OLDMAN 

The voice of an old man.

Note
  • Agora recommends using this enumerator to process a male-sounding voice; otherwise, you may not hear the anticipated voice effect.
  • To achieve better audio effect quality, Agora recommends calling setAudioProfile and setting the profile parameter to AUDIO_PROFILE_MUSIC_HIGH_QUALITY(4) or AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO(5) before setting this enumerator.
VOICE_CHANGER_EFFECT_BOY 

The voice of a boy.

Note
  • Agora recommends using this enumerator to process a male-sounding voice; otherwise, you may not hear the anticipated voice effect.
  • To achieve better audio effect quality, Agora recommends calling setAudioProfile and setting the profile parameter to AUDIO_PROFILE_MUSIC_HIGH_QUALITY(4) or AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO(5) before setting this enumerator.
VOICE_CHANGER_EFFECT_SISTER 

The voice of a young woman.

Note
  • Agora recommends using this enumerator to process a female-sounding voice; otherwise, you may not hear the anticipated voice effect.
  • To achieve better audio effect quality, Agora recommends calling setAudioProfile and setting the profile parameter to AUDIO_PROFILE_MUSIC_HIGH_QUALITY(4) or AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO(5) before setting this enumerator.
VOICE_CHANGER_EFFECT_GIRL 

The voice of a girl.

Note
  • Agora recommends using this enumerator to process a female-sounding voice; otherwise, you may not hear the anticipated voice effect.
  • To achieve better audio effect quality, Agora recommends calling setAudioProfile and setting the profile parameter to AUDIO_PROFILE_MUSIC_HIGH_QUALITY(4) or AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO(5) before setting this enumerator.
VOICE_CHANGER_EFFECT_PIGKING 

The voice of Pig King, a character in Journey to the West who has a voice like a growling bear.

Note
To achieve better audio effect quality, Agora recommends calling setAudioProfile and setting the profile parameter to AUDIO_PROFILE_MUSIC_HIGH_QUALITY(4) or AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO(5) before setting this enumerator.
VOICE_CHANGER_EFFECT_HULK 

The voice of Hulk.

Note
To achieve better audio effect quality, Agora recommends calling setAudioProfile and setting the profile parameter to AUDIO_PROFILE_MUSIC_HIGH_QUALITY(4) or AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO(5) before setting this enumerator.
STYLE_TRANSFORMATION_RNB 

An audio effect typical of R&B music.

Note
To achieve better audio effect quality, Agora recommends calling setAudioProfile and setting the profile parameter to AUDIO_PROFILE_MUSIC_HIGH_QUALITY(4) or AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO(5) before setting this enumerator.
STYLE_TRANSFORMATION_POPULAR 

An audio effect typical of popular music.

Note
To achieve better audio effect quality, Agora recommends calling setAudioProfile and setting the profile parameter to AUDIO_PROFILE_MUSIC_HIGH_QUALITY(4) or AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO(5) before setting this enumerator.
PITCH_CORRECTION 

A pitch correction effect that corrects the user's pitch based on the pitch of the natural C major scale. To change the basic mode and tonic pitch, call setAudioEffectParameters after this method.

Note
To achieve better audio effect quality, Agora recommends calling setAudioProfile and setting the profile parameter to AUDIO_PROFILE_MUSIC_HIGH_QUALITY(4) or AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO(5) before setting this enumerator.

◆ VOICE_CONVERSION_PRESET

The options for SDK preset voice conversion.

Enumerator
VOICE_CONVERSION_OFF 

Turn off voice conversion and use the original voice.

VOICE_CHANGER_NEUTRAL 

A neutral voice.

VOICE_CHANGER_SWEET 

A sweet voice.

VOICE_CHANGER_SOLID 

A solid voice.

VOICE_CHANGER_BASS 

A bass voice.

◆ AUDIO_RECORDING_QUALITY_TYPE

The audio recording quality type.

Enumerator
AUDIO_RECORDING_QUALITY_LOW 

0: Low audio recording quality.

AUDIO_RECORDING_QUALITY_MEDIUM 

1: Medium audio recording quality.

AUDIO_RECORDING_QUALITY_HIGH 

2: High audio recording quality.

◆ AUDIO_FILE_RECORDING_TYPE

The audio file record type.

Enumerator
AUDIO_FILE_RECORDING_MIC 

1: mic audio file recording.

AUDIO_FILE_RECORDING_PLAYBACK 

2: playback audio file recording.

AUDIO_FILE_RECORDING_MIXED 

3: mixed audio file recording, include mic and playback.

◆ AUDIO_ENCODED_FRAME_OBSERVER_POSITION

audio encoded frame observer position.

Enumerator
AUDIO_ENCODED_FRAME_OBSERVER_POSITION_RECORD 

1: mic

AUDIO_ENCODED_FRAME_OBSERVER_POSITION_PLAYBACK 

2: playback audio file recording.

AUDIO_ENCODED_FRAME_OBSERVER_POSITION_MIXED 

3: mixed audio file recording, include mic and playback.

◆ AREA_CODE

enum AREA_CODE

IP areas.

Enumerator
AREA_CODE_CN 

Mainland China.

AREA_CODE_NA 

North America.

AREA_CODE_EU 

Europe.

AREA_CODE_AS 

Asia, excluding Mainland China.

AREA_CODE_JP 

Japan.

AREA_CODE_IN 

India.

AREA_CODE_GLOB 

(Default) Global.

◆ AREA_CODE_EX

Enumerator
AREA_CODE_OC 

Oceania

AREA_CODE_SA 

South-American

AREA_CODE_AF 

Africa

AREA_CODE_KR 

South Korea

AREA_CODE_OVS 

The global area (except China)

◆ CHANNEL_MEDIA_RELAY_ERROR

Enumerator
RELAY_OK 

0: The state is normal.

RELAY_ERROR_SERVER_ERROR_RESPONSE 

1: An error occurs in the server response.

RELAY_ERROR_SERVER_NO_RESPONSE 

2: No server response. You can call the leaveChannel method to leave the channel.

RELAY_ERROR_NO_RESOURCE_AVAILABLE 

3: The SDK fails to access the service, probably due to limited resources of the server.

RELAY_ERROR_FAILED_JOIN_SRC 

4: Fails to send the relay request.

RELAY_ERROR_FAILED_JOIN_DEST 

5: Fails to accept the relay request.

RELAY_ERROR_FAILED_PACKET_RECEIVED_FROM_SRC 

6: The server fails to receive the media stream.

RELAY_ERROR_FAILED_PACKET_SENT_TO_DEST 

7: The server fails to send the media stream.

RELAY_ERROR_SERVER_CONNECTION_LOST 

8: The SDK disconnects from the server due to poor network connections. You can call the leaveChannel method to leave the channel.

RELAY_ERROR_INTERNAL_ERROR 

9: An internal error occurs in the server.

RELAY_ERROR_SRC_TOKEN_EXPIRED 

10: The token of the source channel has expired.

RELAY_ERROR_DEST_TOKEN_EXPIRED 

11: The token of the destination channel has expired.

◆ CHANNEL_MEDIA_RELAY_EVENT

Enumerator
RELAY_EVENT_NETWORK_DISCONNECTED 

0: The user disconnects from the server due to poor network connections.

RELAY_EVENT_NETWORK_CONNECTED 

1: The network reconnects.

RELAY_EVENT_PACKET_JOINED_SRC_CHANNEL 

2: The user joins the source channel.

RELAY_EVENT_PACKET_JOINED_DEST_CHANNEL 

3: The user joins the destination channel.

RELAY_EVENT_PACKET_SENT_TO_DEST_CHANNEL 

4: The SDK starts relaying the media stream to the destination channel.

RELAY_EVENT_PACKET_RECEIVED_VIDEO_FROM_SRC 

5: The server receives the video stream from the source channel.

RELAY_EVENT_PACKET_RECEIVED_AUDIO_FROM_SRC 

6: The server receives the audio stream from the source channel.

RELAY_EVENT_PACKET_UPDATE_DEST_CHANNEL 

7: The destination channel is updated.

RELAY_EVENT_PACKET_UPDATE_DEST_CHANNEL_REFUSED 

8: The destination channel update fails due to internal reasons.

RELAY_EVENT_PACKET_UPDATE_DEST_CHANNEL_NOT_CHANGE 

9: The destination channel does not change, which means that the destination channel fails to be updated.

RELAY_EVENT_PACKET_UPDATE_DEST_CHANNEL_IS_NULL 

10: The destination channel name is NULL.

RELAY_EVENT_VIDEO_PROFILE_UPDATE 

11: The video profile is sent to the server.

RELAY_EVENT_PAUSE_SEND_PACKET_TO_DEST_CHANNEL_SUCCESS 

12: pause send packet to dest channel success.

RELAY_EVENT_PAUSE_SEND_PACKET_TO_DEST_CHANNEL_FAILED 

13: pause send packet to dest channel failed.

RELAY_EVENT_RESUME_SEND_PACKET_TO_DEST_CHANNEL_SUCCESS 

14: resume send packet to dest channel success.

RELAY_EVENT_RESUME_SEND_PACKET_TO_DEST_CHANNEL_FAILED 

15: pause send packet to dest channel failed.

◆ CHANNEL_MEDIA_RELAY_STATE

Enumerator
RELAY_STATE_IDLE 

0: The SDK is initializing.

RELAY_STATE_CONNECTING 

1: The SDK tries to relay the media stream to the destination channel.

RELAY_STATE_RUNNING 

2: The SDK successfully relays the media stream to the destination channel.

RELAY_STATE_FAILURE 

3: A failure occurs. See the details in code.

◆ ENCRYPTION_MODE

Encryption mode.

Enumerator
AES_128_XTS 

1: 128-bit AES encryption, XTS mode.

AES_128_ECB 

2: 128-bit AES encryption, ECB mode.

AES_256_XTS 

3: 256-bit AES encryption, XTS mode.

SM4_128_ECB 

4: 128-bit SM4 encryption, ECB mode.

AES_128_GCM 

5: 128-bit AES encryption, GCM mode.

AES_256_GCM 

6: 256-bit AES encryption, GCM mode.

AES_128_GCM2 

7: (Default) 128-bit AES encryption, GCM mode, with KDF salt.

AES_256_GCM2 

8: 256-bit AES encryption, GCM mode, with KDF salt.

MODE_END 

Enumerator boundary.

◆ ENCRYPTION_ERROR_TYPE

Encryption error type.

Enumerator
ENCRYPTION_ERROR_INTERNAL_FAILURE 
ENCRYPTION_ERROR_DECRYPTION_FAILURE 
ENCRYPTION_ERROR_ENCRYPTION_FAILURE 

◆ UPLOAD_ERROR_REASON

Enumerator
UPLOAD_SUCCESS 
UPLOAD_NET_ERROR 
UPLOAD_SERVER_ERROR 

◆ PERMISSION_TYPE

Type of permission.

Enumerator
RECORD_AUDIO 
CAMERA 

◆ MAX_USER_ACCOUNT_LENGTH_TYPE

Maximum length of user account.

Enumerator
MAX_USER_ACCOUNT_LENGTH 

The maximum length of user account is 255 bytes.

◆ STREAM_SUBSCRIBE_STATE

The stream subscribe state.

Enumerator
SUB_STATE_IDLE 
SUB_STATE_NO_SUBSCRIBED 
SUB_STATE_SUBSCRIBING 
SUB_STATE_SUBSCRIBED 

◆ STREAM_PUBLISH_STATE

The stream publish state.

Enumerator
PUB_STATE_IDLE 
PUB_STATE_NO_PUBLISHED 
PUB_STATE_PUBLISHING 
PUB_STATE_PUBLISHED 

◆ EAR_MONITORING_FILTER_TYPE

Type of ear monitoring filter.

Enumerator
EAR_MONITORING_FILTER_NONE 

1: Do not add an audio filter to the in-ear monitor.

EAR_MONITORING_FILTER_BUILT_IN_AUDIO_FILTERS 

2: Enable audio filters to the in-ear monitor.

EAR_MONITORING_FILTER_NOISE_SUPPRESSION 

4: Enable noise suppression to the in-ear monitor.

◆ THREAD_PRIORITY_TYPE

Thread priority type.

Enumerator
LOWEST 

0: Lowest priority.

LOW 

1: Low priority.

NORMAL 

2: Normal priority.

HIGH 

3: High priority.

HIGHEST 
  1. Highest priority.
CRITICAL 
  1. Critical priority.

◆ AudioRoute

enum AudioRoute

Audio routes.

Enumerator
ROUTE_DEFAULT 

-1: The default audio route.

ROUTE_HEADSET 

The headset.

ROUTE_EARPIECE 

The earpiece.

ROUTE_HEADSETNOMIC 

The headset with no microphone.

ROUTE_SPEAKERPHONE 

The speakerphone.

ROUTE_LOUDSPEAKER 

The loudspeaker.

ROUTE_HEADSETBLUETOOTH 

The Bluetooth headset.

ROUTE_HDMI 

The HDMI

ROUTE_USB 

The USB

◆ NLP_AGGRESSIVENESS

Enumerator
NLP_NOT_SPECIFIED 
NLP_MILD 
NLP_NORMAL 
NLP_AGGRESSIVE 
NLP_SUPER_AGGRESSIVE 
NLP_EXTREME 

◆ BYTES_PER_SAMPLE

Bytes per sample

Enumerator
TWO_BYTES_PER_SAMPLE 

two bytes per sample

◆ RAW_AUDIO_FRAME_OP_MODE_TYPE

Enumerator
RAW_AUDIO_FRAME_OP_MODE_READ_ONLY 

0: Read-only mode: Users only read the agora::media::IAudioFrameObserver::AudioFrame data without modifying anything. For example, when users acquire data with the Agora SDK then push the RTMP streams.

RAW_AUDIO_FRAME_OP_MODE_READ_WRITE 

2: Read and write mode: Users read the data from AudioFrame, modify it, and then play it. For example, when users have their own sound-effect processing module and do some voice pre-processing such as a voice change.

◆ STREAMING_SRC_ERR

The error code of streaming source.

Enumerator
STREAMING_SRC_ERR_NONE 

no error

STREAMING_SRC_ERR_UNKNOWN 

unknown error

STREAMING_SRC_ERR_INVALID_PARAM 

invalid parameter

STREAMING_SRC_ERR_BAD_STATE 

bad status

STREAMING_SRC_ERR_NO_MEM 

not enough memory

STREAMING_SRC_ERR_BUFFER_OVERFLOW 

buffer overflow

STREAMING_SRC_ERR_BUFFER_UNDERFLOW 

buffer underflow

STREAMING_SRC_ERR_NOT_FOUND 

buffer underflow

STREAMING_SRC_ERR_TIMEOUT 

buffer underflow

STREAMING_SRC_ERR_EXPIRED 

expired

STREAMING_SRC_ERR_UNSUPPORTED 

unsupported

STREAMING_SRC_ERR_NOT_EXIST 

component not exist

STREAMING_SRC_ERR_EXIST 

component already exist

STREAMING_SRC_ERR_OPEN 

fail to IO open

STREAMING_SRC_ERR_CLOSE 

fail to IO close

STREAMING_SRC_ERR_READ 

fail to IO read

STREAMING_SRC_ERR_WRITE 

fail to IO write

STREAMING_SRC_ERR_SEEK 

fail to IO seek

STREAMING_SRC_ERR_EOF 

reach to IO EOF, can do nothing

STREAMING_SRC_ERR_CODECOPEN 

fail to codec open

STREAMING_SRC_ERR_CODECCLOSE 

fail to codec close

STREAMING_SRC_ERR_CODECPROC 

fail to codec process

◆ STREAMING_SRC_STATE

The state machine of Streaming Source.

Enumerator
STREAMING_SRC_STATE_CLOSED 

streaming source still closed, can do nothing

STREAMING_SRC_STATE_OPENING 

after call open() method and start parsing streaming source

STREAMING_SRC_STATE_IDLE 

streaming source is ready waiting for play

STREAMING_SRC_STATE_PLAYING 

after call play() method, playing & pushing the AV data

STREAMING_SRC_STATE_SEEKING 

after call seek() method, start seeking poisition

STREAMING_SRC_STATE_EOF 

The position is located at end, can NOT playing.

STREAMING_SRC_STATE_ERROR 

The error status and can do nothing except close.

◆ MEDIA_DEVICE_TYPE

The media device types.

Enumerator
UNKNOWN_AUDIO_DEVICE 

-1: Unknown device type.

AUDIO_PLAYOUT_DEVICE 

0: The audio playback device.

AUDIO_RECORDING_DEVICE 

1: The audio recording device.

VIDEO_RENDER_DEVICE 

2: The video renderer.

VIDEO_CAPTURE_DEVICE 

3: The video capturer.

AUDIO_APPLICATION_PLAYOUT_DEVICE 

4: The audio playback device of the app.

◆ AUDIO_MIXING_STATE_TYPE

The states of the local user's audio mixing file.

Enumerator
AUDIO_MIXING_STATE_PLAYING 

710: The audio mixing file is playing.

AUDIO_MIXING_STATE_PAUSED 

711: The audio mixing file pauses playing.

AUDIO_MIXING_STATE_STOPPED 

713: The audio mixing file stops playing.

AUDIO_MIXING_STATE_FAILED 

714: An exception occurs when playing the audio mixing file. See AUDIO_MIXING_ERROR_TYPE.

AUDIO_MIXING_STATE_COMPLETED 

715: The audio mixing file is played once.

AUDIO_MIXING_STATE_ALL_LOOPS_COMPLETED 

716: The audio mixing file is all played out.

◆ AUDIO_MIXING_ERROR_TYPE

The error codes of the local user's audio mixing file.

Enumerator
AUDIO_MIXING_ERROR_CAN_NOT_OPEN 

701: The SDK cannot open the audio mixing file.

AUDIO_MIXING_ERROR_TOO_FREQUENT_CALL 

702: The SDK opens the audio mixing file too frequently.

AUDIO_MIXING_ERROR_INTERRUPTED_EOF 

703: The audio mixing file playback is interrupted.

AUDIO_MIXING_ERROR_OK 

0: The SDK can open the audio mixing file.

◆ INJECT_STREAM_STATUS

The status of importing an external video stream in a live broadcast.

Enumerator
INJECT_STREAM_STATUS_START_SUCCESS 

0: The media stream is injected successfully.

INJECT_STREAM_STATUS_START_ALREADY_EXISTS 

1: The media stream already exists.

INJECT_STREAM_STATUS_START_UNAUTHORIZED 

2: The media stream injection is unauthorized.

INJECT_STREAM_STATUS_START_TIMEDOUT 

3: Timeout occurs when injecting a media stream.

INJECT_STREAM_STATUS_START_FAILED 

4: The media stream injection fails.

INJECT_STREAM_STATUS_STOP_SUCCESS 

5: The media stream stops being injected successfully.

INJECT_STREAM_STATUS_STOP_NOT_FOUND 

6: The media stream injection that you want to stop is found.

INJECT_STREAM_STATUS_STOP_UNAUTHORIZED 

7: You are not authorized to stop the media stream injection.

INJECT_STREAM_STATUS_STOP_TIMEDOUT 

8: Timeout occurs when you stop injecting the media stream.

INJECT_STREAM_STATUS_STOP_FAILED 

9: Stopping injecting the media stream fails.

INJECT_STREAM_STATUS_BROKEN 

10: The media stream is broken.

◆ AUDIO_EQUALIZATION_BAND_FREQUENCY

The audio equalization band frequency.

Enumerator
AUDIO_EQUALIZATION_BAND_31 

0: 31 Hz.

AUDIO_EQUALIZATION_BAND_62 

1: 62 Hz.

AUDIO_EQUALIZATION_BAND_125 

2: 125 Hz.

AUDIO_EQUALIZATION_BAND_250 

3: 250 Hz.

AUDIO_EQUALIZATION_BAND_500 

4: 500 Hz.

AUDIO_EQUALIZATION_BAND_1K 

5: 1 KHz.

AUDIO_EQUALIZATION_BAND_2K 

6: 2 KHz.

AUDIO_EQUALIZATION_BAND_4K 

7: 4 KHz.

AUDIO_EQUALIZATION_BAND_8K 

8: 8 KHz.

AUDIO_EQUALIZATION_BAND_16K 

9: 16 KHz.

◆ AUDIO_REVERB_TYPE

The audio reverberation type.

Enumerator
AUDIO_REVERB_DRY_LEVEL 

0: (-20 to 10 dB), the level of the dry signal.

AUDIO_REVERB_WET_LEVEL 

1: (-20 to 10 dB), the level of the early reflection signal (wet signal).

AUDIO_REVERB_ROOM_SIZE 

2: (0 to 100 dB), the room size of the reflection.

AUDIO_REVERB_WET_DELAY 

3: (0 to 200 ms), the length of the initial delay of the wet signal in ms.

AUDIO_REVERB_STRENGTH 

4: (0 to 100), the strength of the late reverberation.

◆ STREAM_FALLBACK_OPTIONS

Enumerator
STREAM_FALLBACK_OPTION_DISABLED 

0: (Default) No fallback operation for the stream when the network condition is poor. The stream quality cannot be guaranteed.

STREAM_FALLBACK_OPTION_VIDEO_STREAM_LOW 

1: Under poor network conditions, the SDK will send or receive agora::rtc::VIDEO_STREAM_LOW. You can only set this option in RtcEngineParameters::setRemoteSubscribeFallbackOption. Nothing happens when you set this in RtcEngineParameters::setLocalPublishFallbackOption.

STREAM_FALLBACK_OPTION_AUDIO_ONLY 

2: Under poor network conditions, the SDK may receive agora::rtc::VIDEO_STREAM_LOW first, but if the network still does not allow displaying the video, the SDK will send or receive audio only.

◆ PRIORITY_TYPE

Enumerator
PRIORITY_HIGH 

50: High priority.

PRIORITY_NORMAL 

100: (Default) normal priority.

◆ RTMP_STREAM_LIFE_CYCLE_TYPE

The video stream lifecycle of CDN Live.

Enumerator
RTMP_STREAM_LIFE_CYCLE_BIND2CHANNEL 

Bound to the channel lifecycle.

RTMP_STREAM_LIFE_CYCLE_BIND2OWNER 

Bound to the owner identity of the RTMP stream.

◆ CAMERA_DIRECTION

Enumerator
CAMERA_REAR 

The rear camera.

CAMERA_FRONT 

The front camera.

◆ CLOUD_PROXY_TYPE

The cloud proxy type.

Since
v3.3.0
Enumerator
NONE_PROXY 

0: Do not use the cloud proxy.

UDP_PROXY 

1: The cloud proxy for the UDP protocol.

◆ LOCAL_PROXY_MODE

The local proxy mode type.

Enumerator
kConnectivityFirst 

0: Connect local proxy with high priority, if not connected to local proxy, fallback to sdrtn.

kLocalOnly 

1: Only connect local proxy

◆ DIRECT_CDN_STREAMING_ERROR

Enumerator
DIRECT_CDN_STREAMING_ERROR_OK 
DIRECT_CDN_STREAMING_ERROR_FAILED 
DIRECT_CDN_STREAMING_ERROR_AUDIO_PUBLICATION 
DIRECT_CDN_STREAMING_ERROR_VIDEO_PUBLICATION 
DIRECT_CDN_STREAMING_ERROR_NET_CONNECT 
DIRECT_CDN_STREAMING_ERROR_BAD_NAME 

◆ DIRECT_CDN_STREAMING_STATE

Enumerator
DIRECT_CDN_STREAMING_STATE_IDLE 
DIRECT_CDN_STREAMING_STATE_RUNNING 
DIRECT_CDN_STREAMING_STATE_STOPPED 
DIRECT_CDN_STREAMING_STATE_FAILED 
DIRECT_CDN_STREAMING_STATE_RECOVERING 

◆ QUALITY_REPORT_FORMAT_TYPE

Enumerator
QUALITY_REPORT_JSON 

0: The quality report in JSON format,

QUALITY_REPORT_HTML 

1: The quality report in HTML format.

◆ MEDIA_DEVICE_STATE_TYPE

Media device states.

Enumerator
MEDIA_DEVICE_STATE_IDLE 

0: The device is available

MEDIA_DEVICE_STATE_ACTIVE 

1: The device is active.

MEDIA_DEVICE_STATE_DISABLED 

2: The device is disabled.

MEDIA_DEVICE_STATE_NOT_PRESENT 

4: The device is not present.

MEDIA_DEVICE_STATE_UNPLUGGED 

8: The device is unplugged.

◆ VIDEO_PROFILE_TYPE

Enumerator
VIDEO_PROFILE_LANDSCAPE_120P 

0: 160 x 120 @ 15 fps

VIDEO_PROFILE_LANDSCAPE_120P_3 

2: 120 x 120 @ 15 fps

VIDEO_PROFILE_LANDSCAPE_180P 

10: 320 x 180 @ 15 fps

VIDEO_PROFILE_LANDSCAPE_180P_3 

12: 180 x 180 @ 15 fps

VIDEO_PROFILE_LANDSCAPE_180P_4 

13: 240 x 180 @ 15 fps

VIDEO_PROFILE_LANDSCAPE_240P 

20: 320 x 240 @ 15 fps

VIDEO_PROFILE_LANDSCAPE_240P_3 

22: 240 x 240 @ 15 fps

VIDEO_PROFILE_LANDSCAPE_240P_4 

23: 424 x 240 @ 15 fps

VIDEO_PROFILE_LANDSCAPE_360P 

30: 640 x 360 @ 15 fps

VIDEO_PROFILE_LANDSCAPE_360P_3 

32: 360 x 360 @ 15 fps

VIDEO_PROFILE_LANDSCAPE_360P_4 

33: 640 x 360 @ 30 fps

VIDEO_PROFILE_LANDSCAPE_360P_6 

35: 360 x 360 @ 30 fps

VIDEO_PROFILE_LANDSCAPE_360P_7 

36: 480 x 360 @ 15 fps

VIDEO_PROFILE_LANDSCAPE_360P_8 

37: 480 x 360 @ 30 fps

VIDEO_PROFILE_LANDSCAPE_360P_9 

38: 640 x 360 @ 15 fps

VIDEO_PROFILE_LANDSCAPE_360P_10 

39: 640 x 360 @ 24 fps

VIDEO_PROFILE_LANDSCAPE_360P_11 

100: 640 x 360 @ 24 fps

VIDEO_PROFILE_LANDSCAPE_480P 

40: 640 x 480 @ 15 fps

VIDEO_PROFILE_LANDSCAPE_480P_3 

42: 480 x 480 @ 15 fps

VIDEO_PROFILE_LANDSCAPE_480P_4 

43: 640 x 480 @ 30 fps

VIDEO_PROFILE_LANDSCAPE_480P_6 

45: 480 x 480 @ 30 fps

VIDEO_PROFILE_LANDSCAPE_480P_8 

47: 848 x 480 @ 15 fps

VIDEO_PROFILE_LANDSCAPE_480P_9 

48: 848 x 480 @ 30 fps

VIDEO_PROFILE_LANDSCAPE_480P_10 

49: 640 x 480 @ 10 fps

VIDEO_PROFILE_LANDSCAPE_720P 

50: 1280 x 720 @ 15 fps

VIDEO_PROFILE_LANDSCAPE_720P_3 

52: 1280 x 720 @ 30 fps

VIDEO_PROFILE_LANDSCAPE_720P_5 

54: 960 x 720 @ 15 fps

VIDEO_PROFILE_LANDSCAPE_720P_6 

55: 960 x 720 @ 30 fps

VIDEO_PROFILE_LANDSCAPE_1080P 

60: 1920 x 1080 @ 15 fps

VIDEO_PROFILE_LANDSCAPE_1080P_3 

62: 1920 x 1080 @ 30 fps

VIDEO_PROFILE_LANDSCAPE_1080P_5 

64: 1920 x 1080 @ 60 fps

VIDEO_PROFILE_LANDSCAPE_1440P 

66: 2560 x 1440 @ 30 fps

VIDEO_PROFILE_LANDSCAPE_1440P_2 

67: 2560 x 1440 @ 60 fps

VIDEO_PROFILE_LANDSCAPE_4K 

70: 3840 x 2160 @ 30 fps

VIDEO_PROFILE_LANDSCAPE_4K_3 

72: 3840 x 2160 @ 60 fps

VIDEO_PROFILE_PORTRAIT_120P 

1000: 120 x 160 @ 15 fps

VIDEO_PROFILE_PORTRAIT_120P_3 

1002: 120 x 120 @ 15 fps

VIDEO_PROFILE_PORTRAIT_180P 

1010: 180 x 320 @ 15 fps

VIDEO_PROFILE_PORTRAIT_180P_3 

1012: 180 x 180 @ 15 fps

VIDEO_PROFILE_PORTRAIT_180P_4 

1013: 180 x 240 @ 15 fps

VIDEO_PROFILE_PORTRAIT_240P 

1020: 240 x 320 @ 15 fps

VIDEO_PROFILE_PORTRAIT_240P_3 

1022: 240 x 240 @ 15 fps

VIDEO_PROFILE_PORTRAIT_240P_4 

1023: 240 x 424 @ 15 fps

VIDEO_PROFILE_PORTRAIT_360P 

1030: 360 x 640 @ 15 fps

VIDEO_PROFILE_PORTRAIT_360P_3 

1032: 360 x 360 @ 15 fps

VIDEO_PROFILE_PORTRAIT_360P_4 

1033: 360 x 640 @ 30 fps

VIDEO_PROFILE_PORTRAIT_360P_6 

1035: 360 x 360 @ 30 fps

VIDEO_PROFILE_PORTRAIT_360P_7 

1036: 360 x 480 @ 15 fps

VIDEO_PROFILE_PORTRAIT_360P_8 

1037: 360 x 480 @ 30 fps

VIDEO_PROFILE_PORTRAIT_360P_9 

1038: 360 x 640 @ 15 fps

VIDEO_PROFILE_PORTRAIT_360P_10 

1039: 360 x 640 @ 24 fps

VIDEO_PROFILE_PORTRAIT_360P_11 

1100: 360 x 640 @ 24 fps

VIDEO_PROFILE_PORTRAIT_480P 

1040: 480 x 640 @ 15 fps

VIDEO_PROFILE_PORTRAIT_480P_3 

1042: 480 x 480 @ 15 fps

VIDEO_PROFILE_PORTRAIT_480P_4 

1043: 480 x 640 @ 30 fps

VIDEO_PROFILE_PORTRAIT_480P_6 

1045: 480 x 480 @ 30 fps

VIDEO_PROFILE_PORTRAIT_480P_8 

1047: 480 x 848 @ 15 fps

VIDEO_PROFILE_PORTRAIT_480P_9 

1048: 480 x 848 @ 30 fps

VIDEO_PROFILE_PORTRAIT_480P_10 

1049: 480 x 640 @ 10 fps

VIDEO_PROFILE_PORTRAIT_720P 

1050: 720 x 1280 @ 15 fps

VIDEO_PROFILE_PORTRAIT_720P_3 

1052: 720 x 1280 @ 30 fps

VIDEO_PROFILE_PORTRAIT_720P_5 

1054: 720 x 960 @ 15 fps

VIDEO_PROFILE_PORTRAIT_720P_6 

1055: 720 x 960 @ 30 fps

VIDEO_PROFILE_PORTRAIT_1080P 

1060: 1080 x 1920 @ 15 fps

VIDEO_PROFILE_PORTRAIT_1080P_3 

1062: 1080 x 1920 @ 30 fps

VIDEO_PROFILE_PORTRAIT_1080P_5 

1064: 1080 x 1920 @ 60 fps

VIDEO_PROFILE_PORTRAIT_1440P 

1066: 1440 x 2560 @ 30 fps

VIDEO_PROFILE_PORTRAIT_1440P_2 

1067: 1440 x 2560 @ 60 fps

VIDEO_PROFILE_PORTRAIT_4K 

1070: 2160 x 3840 @ 30 fps

VIDEO_PROFILE_PORTRAIT_4K_3 

1072: 2160 x 3840 @ 60 fps

VIDEO_PROFILE_DEFAULT 

Default 640 x 360 @ 15 fps

Variable Documentation

◆ kAdmMaxDeviceNameSize

const int kAdmMaxDeviceNameSize = 128
static

◆ kAdmMaxGuidSize

const int kAdmMaxGuidSize = 128
static

◆ kIntervalInMillseconds

const int kIntervalInMillseconds = 200
static

◆ kDeviceIdSize

const int kDeviceIdSize = 128
static

◆ VideoFrameMetaDataType

OPTIONAL_ENUM_CLASS VideoFrameMetaDataType
Initial value:
{
kAlphaChannel,
}

◆ STANDARD_BITRATE

const int STANDARD_BITRATE = 0

(Recommended) 0: Standard bitrate mode.

In this mode, the bitrates differ between the live broadcast and communication profiles:

  • Communication profile: The video bitrate is the same as the base bitrate.
  • Live Broadcast profile: The video bitrate is twice the base bitrate.

◆ COMPATIBLE_BITRATE

const int COMPATIBLE_BITRATE = -1

-1: Compatible bitrate mode.

In this mode, the bitrate remains the same regardless of the channel profile. If you choose this mode in the live-broadcast profile, the video frame rate may be lower than the set value.

◆ DEFAULT_MIN_BITRATE

const int DEFAULT_MIN_BITRATE = -1

-1: (For future use) The default minimum bitrate.

◆ DEFAULT_MIN_BITRATE_EQUAL_TO_TARGET_BITRATE

const int DEFAULT_MIN_BITRATE_EQUAL_TO_TARGET_BITRATE = -2

-2: (For future use) Set minimum bitrate the same as target bitrate.

◆ DEFAULT_CONNECTION_ID

const unsigned int DEFAULT_CONNECTION_ID = 0
static

◆ DUMMY_CONNECTION_ID

const unsigned int DUMMY_CONNECTION_ID = (std::numeric_limits<unsigned int>::max)()
static