Agora RTC Objective-C API Reference
Refactor
|
Inherits IEngineBase.
Inherited by IRtcEngineEx.
Public Member Functions | |
virtual void | release (bool sync=false)=0 |
virtual int | initialize (const RtcEngineContext &context)=0 |
virtual const char * | getVersion (int *build)=0 |
virtual const char * | getErrorDescription (int code)=0 |
virtual int | joinChannel (const char *token, const char *channelId, const char *info, uid_t uid)=0 |
virtual int | joinChannel (const char *token, const char *channelId, uid_t uid, const ChannelMediaOptions &options)=0 |
virtual int | updateChannelMediaOptions (const ChannelMediaOptions &options)=0 |
virtual int | leaveChannel ()=0 |
virtual int | leaveChannel (const LeaveChannelOptions &options)=0 |
virtual int | renewToken (const char *token)=0 |
virtual int | setChannelProfile (CHANNEL_PROFILE_TYPE profile)=0 |
virtual int | setClientRole (CLIENT_ROLE_TYPE role)=0 |
virtual int | setClientRole (CLIENT_ROLE_TYPE role, const ClientRoleOptions &options)=0 |
virtual int | startEchoTest ()=0 |
virtual int | startEchoTest (int intervalInSeconds)=0 |
virtual int | enableVideo ()=0 |
virtual int | disableVideo ()=0 |
virtual int | startPreview ()=0 |
virtual int | startPreview (VIDEO_SOURCE_TYPE sourceType)=0 |
virtual int | stopPreview ()=0 |
virtual int | stopPreview (VIDEO_SOURCE_TYPE sourceType)=0 |
virtual int | startLastmileProbeTest (const LastmileProbeConfig &config)=0 |
virtual int | stopLastmileProbeTest ()=0 |
virtual int | setVideoEncoderConfiguration (const VideoEncoderConfiguration &config)=0 |
virtual int | enableVirtualBackground (bool enabled, VirtualBackgroundSource backgroundSource)=0 |
virtual int | enableRemoteSuperResolution (uid_t userId, bool enable)=0 |
virtual int | setupRemoteVideo (const VideoCanvas &canvas)=0 |
virtual int | setupLocalVideo (const VideoCanvas &canvas)=0 |
virtual int | enableAudio ()=0 |
virtual int | disableAudio ()=0 |
virtual int | setAudioProfile (AUDIO_PROFILE_TYPE profile, AUDIO_SCENARIO_TYPE scenario) 1=0 |
virtual int | setAudioProfile (AUDIO_PROFILE_TYPE profile)=0 |
virtual int | enableLocalAudio (bool enabled)=0 |
virtual int | muteLocalAudioStream (bool mute)=0 |
virtual int | muteAllRemoteAudioStreams (bool mute)=0 |
virtual int | setDefaultMuteAllRemoteAudioStreams (bool mute) 1=0 |
virtual int | muteRemoteAudioStream (uid_t uid, bool mute)=0 |
virtual int | muteLocalVideoStream (bool mute)=0 |
virtual int | enableLocalVideo (bool enabled)=0 |
virtual int | muteAllRemoteVideoStreams (bool mute)=0 |
virtual int | setDefaultMuteAllRemoteVideoStreams (bool mute) 1=0 |
virtual int | muteRemoteVideoStream (uid_t uid, bool mute)=0 |
virtual int | setRemoteVideoStreamType (uid_t uid, VIDEO_STREAM_TYPE streamType)=0 |
virtual int | setRemoteDefaultVideoStreamType (VIDEO_STREAM_TYPE streamType)=0 |
virtual int | enableAudioVolumeIndication (int interval, int smooth, bool reportVad)=0 |
virtual int | startAudioRecording (const char *filePath, AUDIO_RECORDING_QUALITY_TYPE quality)=0 |
virtual int | startAudioRecording (const char *filePath, int sampleRate, AUDIO_RECORDING_QUALITY_TYPE quality)=0 |
virtual int | startAudioRecording (const AudioRecordingConfiguration &config)=0 |
virtual int | registerAudioEncodedFrameObserver (const AudioEncodedFrameObserverConfig &config, IAudioEncodedFrameObserver *observer)=0 |
virtual int | enableSoundPositionIndication (bool enabled)=0 |
virtual int | setRemoteVoicePosition (uid_t uid, double pan, double gain)=0 |
virtual int | enableSpatialAudio (bool enabled)=0 |
virtual int | setVoiceBeautifierPreset (VOICE_BEAUTIFIER_PRESET preset)=0 |
virtual int | setVoiceConversionPreset (VOICE_CONVERSION_PRESET preset)=0 |
virtual int | setVoiceBeautifierParameters (VOICE_BEAUTIFIER_PRESET preset, int param1, int param2)=0 |
virtual int | setVoiceConversionParameters (VOICE_CONVERSION_PRESET preset, int param1, int param2)=0 |
virtual int | setLogFile (const char *filePath)=0 |
virtual int | setLogFilter (unsigned int filter)=0 |
virtual int | setLogLevel (commons::LOG_LEVEL level)=0 |
virtual int | setLogFileSize (unsigned int fileSizeInKBytes)=0 |
virtual int | uploadLogFile (agora::util::AString &requestId)=0 |
virtual int | setLocalRenderMode (media::base::RENDER_MODE_TYPE renderMode, VIDEO_MIRROR_MODE_TYPE mirrorMode)=0 |
virtual int | setRemoteRenderMode (uid_t uid, media::base::RENDER_MODE_TYPE renderMode, VIDEO_MIRROR_MODE_TYPE mirrorMode)=0 |
virtual int | setLocalRenderMode (media::base::RENDER_MODE_TYPE renderMode)=0 |
virtual int | setLocalVideoMirrorMode (VIDEO_MIRROR_MODE_TYPE mirrorMode)=0 |
virtual int | enableDualStreamMode (bool enabled)=0 |
virtual int | enableDualStreamMode (VIDEO_SOURCE_TYPE sourceType, bool enabled)=0 |
virtual int | enableDualStreamMode (VIDEO_SOURCE_TYPE sourceType, bool enabled, const SimulcastStreamConfig &streamConfig)=0 |
virtual int | enableCustomAudioLocalPlayback (int sourceId, bool enabled)=0 |
virtual int | startPrimaryCustomAudioTrack (const AudioTrackConfig &config)=0 |
virtual int | stopPrimaryCustomAudioTrack ()=0 |
virtual int | startSecondaryCustomAudioTrack (const AudioTrackConfig &config)=0 |
virtual int | stopSecondaryCustomAudioTrack ()=0 |
virtual int | setRecordingAudioFrameParameters (int sampleRate, int channel, RAW_AUDIO_FRAME_OP_MODE_TYPE mode, int samplesPerCall)=0 |
virtual int | setPlaybackAudioFrameParameters (int sampleRate, int channel, RAW_AUDIO_FRAME_OP_MODE_TYPE mode, int samplesPerCall)=0 |
virtual int | setMixedAudioFrameParameters (int sampleRate, int channel, int samplesPerCall)=0 |
virtual int | setPlaybackAudioFrameBeforeMixingParameters (int sampleRate, int channel)=0 |
virtual int | enableAudioSpectrumMonitor (int intervalInMS=100)=0 |
virtual int | disableAudioSpectrumMonitor ()=0 |
virtual int | registerAudioSpectrumObserver (agora::media::IAudioSpectrumObserver *observer)=0 |
virtual int | unregisterAudioSpectrumObserver (agora::media::IAudioSpectrumObserver *observer)=0 |
virtual int | adjustRecordingSignalVolume (int volume)=0 |
virtual int | muteRecordingSignal (bool mute)=0 |
virtual int | adjustPlaybackSignalVolume (int volume)=0 |
virtual int | setLocalPublishFallbackOption (STREAM_FALLBACK_OPTIONS option)=0 |
virtual int | setRemoteSubscribeFallbackOption (STREAM_FALLBACK_OPTIONS option)=0 |
virtual int | enableLoopbackRecording (bool enabled, const char *deviceName=NULL)=0 |
virtual int | adjustLoopbackRecordingVolume (int volume)=0 |
virtual int | getLoopbackRecordingVolume ()=0 |
virtual int | enableInEarMonitoring (bool enabled, int includeAudioFilters)=0 |
virtual int | setInEarMonitoringVolume (int volume)=0 |
virtual int | setExtensionProviderProperty (const char *provider, const char *key, const char *value)=0 |
virtual int | enableExtension (const char *provider, const char *extension, bool enable=true, agora::media::MEDIA_SOURCE_TYPE type=agora::media::UNKNOWN_MEDIA_SOURCE)=0 |
virtual int | setExtensionProperty (const char *provider, const char *extension, const char *key, const char *value, agora::media::MEDIA_SOURCE_TYPE type=agora::media::UNKNOWN_MEDIA_SOURCE)=0 |
virtual int | getExtensionProperty (const char *provider, const char *extension, const char *key, char *value, int buf_len, agora::media::MEDIA_SOURCE_TYPE type=agora::media::UNKNOWN_MEDIA_SOURCE)=0 |
virtual int | getCallId (agora::util::AString &callId)=0 |
virtual int | rate (const char *callId, int rating, const char *description)=0 |
virtual int | complain (const char *callId, const char *description)=0 |
virtual int | setLiveTranscoding (const LiveTranscoding &transcoding)=0 |
virtual int | startRtmpStreamWithoutTranscoding (const char *url)=0 |
virtual int | startRtmpStreamWithTranscoding (const char *url, const LiveTranscoding &transcoding)=0 |
virtual int | updateRtmpTranscoding (const LiveTranscoding &transcoding)=0 |
virtual int | stopRtmpStream (const char *url)=0 |
virtual CONNECTION_STATE_TYPE | getConnectionState ()=0 |
virtual int | registerPacketObserver (IPacketObserver *observer)=0 |
virtual int | enableEncryption (bool enabled, const EncryptionConfig &config)=0 |
virtual int | createDataStream (int *streamId, bool reliable, bool ordered)=0 |
virtual int | createDataStream (int *streamId, DataStreamConfig &config)=0 |
virtual int | sendStreamMessage (int streamId, const char *data, size_t length)=0 |
virtual int | addVideoWatermark (const RtcImage &watermark)=0 |
virtual int | addVideoWatermark (const char *watermarkUrl, const WatermarkOptions &options)=0 |
virtual int | clearVideoWatermark ()=0 |
virtual int | enableWebSdkInteroperability (bool enabled) 1=0 |
virtual int | sendCustomReportMessage (const char *id, const char *category, const char *event, const char *label, int value)=0 |
virtual int | registerMediaMetadataObserver (IMetadataObserver *observer, IMetadataObserver::METADATA_TYPE type)=0 |
virtual int | unregisterMediaMetadataObserver (IMetadataObserver *observer, IMetadataObserver::METADATA_TYPE type)=0 |
virtual int | startAudioFrameDump (const char *channel_id, uid_t user_id, const char *location, const char *uuid, const char *passwd, long duration_ms, bool auto_upload)=0 |
virtual int | registerLocalUserAccount (const char *appId, const char *userAccount)=0 |
virtual int | joinChannelWithUserAccount (const char *token, const char *channelId, const char *userAccount)=0 |
virtual int | joinChannelWithUserAccount (const char *token, const char *channelId, const char *userAccount, const ChannelMediaOptions &options)=0 |
virtual int | joinChannelWithUserAccountEx (const char *token, const char *channelId, const char *userAccount, const ChannelMediaOptions &options, IRtcEngineEventHandler *eventHandler)=0 |
virtual int | getUserInfoByUserAccount (const char *userAccount, rtc::UserInfo *userInfo)=0 |
virtual int | getUserInfoByUid (uid_t uid, rtc::UserInfo *userInfo)=0 |
virtual int | startChannelMediaRelay (const ChannelMediaRelayConfiguration &configuration)=0 |
virtual int | updateChannelMediaRelay (const ChannelMediaRelayConfiguration &configuration)=0 |
virtual int | stopChannelMediaRelay ()=0 |
virtual int | pauseAllChannelMediaRelay ()=0 |
virtual int | resumeAllChannelMediaRelay ()=0 |
virtual int | setDirectCdnStreamingAudioConfiguration (AUDIO_PROFILE_TYPE profile)=0 |
virtual int | setDirectCdnStreamingVideoConfiguration (const VideoEncoderConfiguration &config)=0 |
virtual int | startDirectCdnStreaming (IDirectCdnStreamingEventHandler *eventHandler, const char *publishUrl, const DirectCdnStreamingMediaOptions &options)=0 |
virtual int | stopDirectCdnStreaming ()=0 |
virtual int | updateDirectCdnStreamingMediaOptions (const DirectCdnStreamingMediaOptions &options)=0 |
virtual int | pushDirectCdnStreamingCustomVideoFrame (media::base::ExternalVideoFrame *frame)=0 |
virtual int | takeSnapshot (media::SnapShotConfig &config, media::ISnapshotCallback *callback)=0 |
virtual int | SetContentInspect (media::ContentInspectConfig &config)=0 |
virtual int | switchChannel (const char *token, const char *channel)=0 |
virtual int | startRhythmPlayer (const char *sound1, const char *sound2, const AgoraRhythmPlayerConfig &config)=0 |
virtual int | stopRhythmPlayer ()=0 |
virtual int | configRhythmPlayer (const AgoraRhythmPlayerConfig &config)=0 |
virtual int | setCloudProxy (CLOUD_PROXY_TYPE proxyType)=0 |
virtual int | setLocalAccessPoint (const LocalAccessPointConfiguration &config)=0 |
virtual int | enableFishCorrection (bool enabled, const FishCorrectionParams ¶ms)=0 |
virtual int | setAdvancedAudioOptions (media::base::AdvancedAudioOptions &options)=0 |
virtual int | setAVSyncSource (const char *channelId, uid_t uid)=0 |
The IRtcEngine class.
This class provides the main methods that can be invoked by your app.
IRtcEngine is the basic interface class of the Agora Native SDK. Creating an IRtcEngine object and then calling the methods of this object enables you to use Agora Native SDK's communication functionality.
|
pure virtual |
Releases the IRtcEngine object.
sync | Determines whether this method is a synchronous call.
|
|
pure virtual |
Initializes the Agora SDK service.
In this method, you need to enter the issued Agora App ID to start initialization. After creating an IRtcEngine object, call this method to initialize the service before calling any other methods. After the initialization, the service is set to enable audio by default.
context | The RtcEngineContext object. |
|
pure virtual |
Implements IEngineBase.
|
pure virtual |
Gets the SDK version.
build | The build number. |
|
pure virtual |
Gets the warning or error description.
code | The warning or error code. |
|
pure virtual |
Joins a channel.
Users in the same channel can talk to each other; and multiple users in the same channel can start a group chat. Note that users using different App IDs cannot call each other.
uid
s, that is, two users with the same uid. If you set uid
as 0, the system automatically assigns a user ID.token | The token for authentication.
|
channelId | The unique channel name for the AgoraRTC session in the string format. The string length must be less than 64 bytes. Supported character scopes are:
|
info | (Optional) Additional information about the channel that you want to add. It can be set as a NULL string or channel related information. Other users in the channel will not receive this message. |
uid | (Optional) User ID: A 32-bit unsigned integer ranging from 1 to (2^32-1). It must be unique. If not assigned (or set to 0), the SDK assigns one and reports it in the onJoinChannelSuccess callback. Your app must record and maintain the returned value as the SDK does not maintain it. |
|
pure virtual |
Joins a channel with media options.
Users in the same channel can talk to each other; and multiple users in the same channel can start a group chat. Note that users using different App IDs cannot call each other.
uid
s, that is, two users with the same uid. If you set uid
as 0, the system automatically assigns a user ID.token | The token for authentication.
|
channelId | The unique channel name for the AgoraRTC session in the string format. The string length must be less than 64 bytes. Supported character scopes are:
|
uid | (Optional) User ID: A 32-bit unsigned integer ranging from 1 to (2^32-1). It must be unique. If not assigned (or set to 0), the SDK assigns one and reports it in the onJoinChannelSuccess callback. Your app must record and maintain the returned value as the SDK does not maintain it. |
options | The channel media options: ChannelMediaOptions. |
|
pure virtual |
Updates the channel media options after joining the channel.
options | The channel media options: ChannelMediaOptions. |
|
pure virtual |
Leaves the channel.
This method allows a user to leave the channel, for example, by hanging up or exiting a call.
This method is an asynchronous call, which means that the result of this method returns even before the user has not actually left the channel. Once the user successfully leaves the channel, the SDK triggers the onLeaveChannel callback.
onLeaveChannel
callback.
|
pure virtual |
Leaves the channel.
options | The leave channel options. |
This method allows a user to leave the channel, for example, by hanging up or exiting a call.
This method is an asynchronous call, which means that the result of this method returns even before the user has not actually left the channel. Once the user successfully leaves the channel, the SDK triggers the onLeaveChannel callback.
onLeaveChannel
callback.
|
pure virtual |
Renews the token.
Once a token is enabled and used, it expires after a certain period of time.
Under the following circumstances, generate a new token on your server, and then call this method to renew it. Failure to do so results in the SDK disconnecting from the server.
ERR_TOKEN_EXPIRED(-109)
error is reported.token | The new token. |
|
pure virtual |
Sets the channel profile.
The IRtcEngine differentiates channel profiles and applies different optimization algorithms accordingly. For example, it prioritizes smoothness and low latency for a video call, and prioritizes video quality for a video broadcast.
joinChannel
. You cannot set the channel profile once you have joined the channel.profile | The channel profile: CHANNEL_PROFILE_TYPE. |
|
pure virtual |
Sets the role of a user.
This method sets the user role as either BROADCASTER or AUDIENCE (default).
By default, all users are audience regardless of the channel profile. Call this method to change the user role to BROADCASTER so that the user can send a stream.
role | The role of the client: CLIENT_ROLE_TYPE. |
|
pure virtual |
Sets the role of the user, such as a host or an audience (default), before joining a channel in the live interactive streaming.
This method can be used to switch the user role in the live interactive streaming after the user joins a channel.
In the LIVE_BROADCASTING
profile, when a user switches user roles after joining a channel, a successful setClientRole method call triggers the following callbacks:
LIVE_BROADCASTING
profile.role | Sets the role of the user. See CLIENT_ROLE_TYPE. |
options | Sets the audience latency level of the user. See #ClientRoleOptions. |
|
pure virtual |
Starts an audio call test.
This method launches an audio call test to determine whether the audio devices (for example, headset and speaker) and the network connection are working properly.
In the test, the user first speaks, and the recording is played back in 10 seconds. If the user can hear the recording in 10 seconds, it indicates that the audio devices and network connection work properly.
|
pure virtual |
Starts an audio call test.
This method starts an audio call test to determine whether the audio devices (for example, headset and speaker) and the network connection are working properly.
In the audio call test, you record your voice. If the recording plays back within the set time interval, the audio devices and the network connection are working properly.
LIVE_BROADCASTING
profile, only a host can call this method. intervalInSeconds | The time interval (s) between when you speak and when the recording plays back. |
|
pure virtual |
Enables the video.
You can call this method either before joining a channel or during a call. If you call this method before entering a channel, the service starts the video; if you call it during a call, the audio call switches to a video call.
|
pure virtual |
Disables the video.
This method stops capturing the local video and receiving any remote video. To enable the local preview function, call enableLocalVideo (true).
|
pure virtual |
Starts the local video preview before joining a channel.
Once you call this method to start the local video preview, if you leave the channel by calling leaveChannel, the local video preview remains until you call stopPreview to disable it.
|
pure virtual |
Starts the local video preview for specific source type.
sourceType | - The video source type. |
|
pure virtual |
Stops the local video preview and the video.
|
pure virtual |
Stops the local video preview for specific source type.
sourceType | - The video source type. |
|
pure virtual |
Starts the last-mile network probe test.
This method starts the last-mile network probe test before joining a channel to get the uplink and downlink last-mile network statistics, including the bandwidth, packet loss, jitter, and round-trip time (RTT).
Call this method to check the uplink network quality before users join a channel or before an audience switches to a host. Once this method is enabled, the SDK returns the following callbacks:
config | Sets the configurations of the last-mile network probe test. See LastmileProbeConfig. |
|
pure virtual |
Stops the last-mile network probe test.
|
pure virtual |
Sets the video encoder configuration.
Each configuration profile corresponds to a set of video parameters, including the resolution, frame rate, and bitrate.
The parameters specified in this method are the maximum values under ideal network conditions. If the video engine cannot render the video using the specified parameters due to poor network conditions, the parameters further down the list are considered until a successful configuration is found.
config | The local video encoder configuration: VideoEncoderConfiguration. |
|
pure virtual |
Enables/Disables the virtual background. (beta function)
After enabling the virtual background function, you can replace the original background image of the local user with a custom background image. After the replacement, all users in the channel can see the custom background image.
libagora_segmentation_extension.dll
(Windows)/AgoraVideoSegmentationExtension.framework
(macOS) dynamic library into the project folder.enabled | Sets whether to enable the virtual background:
|
backgroundSource | The custom background image. See VirtualBackgroundSource. Note: To adapt the resolution of the custom background image to the resolution of the SDK capturing video, the SDK scales and crops the custom background image while ensuring that the content of the custom background image is not distorted. |
|
pure virtual |
Enables/Disables the super resolution feature for a remote user's video. (beta feature)
This feature effectively boosts the resolution of a remote user's video seen by the local user. If the original resolution of a remote user's video is a × b, the local user's device can render the remote video at a resolution of 2a × 2b after you enable this feature.
libagora_super_resolution_extension.so
AgoraSuperResolutionExtension.xcframework
userId | The user ID of the remote user. |
enable | Determines whether to enable super resolution for the remote user's video:
|
|
pure virtual |
Initializes the video view of a remote user.
This method initializes the video view of a remote stream on the local device. It affects only the video view that the local user sees.
Usually the app should specify the uid
of the remote video in the method call before the remote user joins the channel. If the remote uid
is unknown to the app, set it later when the app receives the onUserJoined callback.
To unbind the remote user from the view, set view
in VideoCanvas as null
.
canvas | The remote video view settings: VideoCanvas. |
|
pure virtual |
Initializes the local video view.
This method initializes the video view of the local stream on the local device. It affects only the video view that the local user sees, not the published local video stream.
To unbind the local video from the view, set view
in VideoCanvas as null
.
canvas | The local video view setting: VideoCanvas. |
|
pure virtual |
Enables the audio.
The audio is enabled by default.
|
pure virtual |
Disables the audio.
|
pure virtual |
Sets the audio parameters and application scenarios.
audioScenario
member in the RtcEngineContext struct.joinChannel
method.profile
as MUSIC_HIGH_QUALITY
(4) and scenario
as AUDIO_SCENARIO_GAME_STREAMING
(3).profile | Sets the sample rate, bitrate, encoding mode, and the number of channels: AUDIO_PROFILE_TYPE. |
scenario | Sets the audio application scenarios: AUDIO_SCENARIO_TYPE. |
|
pure virtual |
Sets the audio profile.
joinChannel
method.profile
as MUSIC_HIGH_QUALITY
(4).audioScenario
member in the RtcEngineContext struct.profile | The audio profile, such as the sample rate, bitrate and codec type: AUDIO_PROFILE_TYPE. |
|
pure virtual |
Enables or disables the local audio capture.
The audio function is enabled by default. This method disables or re-enables the local audio function, that is, to stop or restart local audio capture and processing.
This method does not affect receiving or playing the remote audio streams, and enableLocalAudio
(false) is applicable to scenarios where the user wants to receive remote audio streams without sending any audio stream to other users in the channel.
enabled | Determines whether to disable or re-enable the local audio function:
|
|
pure virtual |
Stops or resumes sending the local audio stream.
After calling this method successfully, the SDK triggers the onRemoteAudioStateChanged callback with the following parameters:
mute
is set as true
, this method does not disable the microphone, which does not affect any ongoing recording.setChannelProfile
method.mute | Determines whether to send or stop sending the local audio stream:
|
|
pure virtual |
Stops or resumes receiving all remote audio stream.
This method works for all remote users that join or will join a channel using the joinChannel
method. It is equivalent to the autoSubscribeAudio
member in the ChannelMediaOptions class. You can call this method before, during, or after a call.
After you successfully call muteAllRemoteAudioStreams(true), you can take the following actions:
enableAudio
after muteAllRemoteAudioStreams(true).disableAudio
after muteAllRemoteAudioStreams(false).joinChannel
. To set whether to receive remote audio streams for a specific channel, Agora recommends using autoSubscribeAudio
in the ChannelMediaOptions class. mute | Whether to stop receiving remote audio streams:
|
|
pure virtual |
Determines whether to receive all remote audio streams by default.
joinChannel
Use this method to set whether to receive audio streams of subsequent peer users. Agora recommends calling it before joining a channel.
A successful call of setDefaultMuteAllRemoteAudioStreams(true) results in that the local user not receiving any audio stream after joining a channel.
mute | Whether to receive remote audio streams by default:
|
|
pure virtual |
Stops or resumes receiving the audio stream of a specified user.
uid | The ID of the specified user. |
mute | Whether to stop receiving the audio stream of the specified user:
|
|
pure virtual |
Stops or resumes sending the local video stream.
mute | Determines whether to send or stop sending the local video stream:
|
|
pure virtual |
Disables or re-enables the local video capture.
Once you enable the video using enableVideo, the local video is enabled by default. This method disables or re-enables the local video capture.
enableLocalVideo(false)
applies to scenarios when the user wants to watch the remote video without sending any video stream to the other user.
enableVideo
. Otherwise, this method may not work properly.enabled | Determines whether to disable or re-enable the local video, including the capturer, renderer, and sender:
|
|
pure virtual |
Stops or resumes receiving all remote video streams.
This method works for all remote users that join or will join a channel using the joinChannel
method. It is equivalent to the autoSubscribeVideo
member in the ChannelMediaOptions class. You can call this method before, during, or after a call.
After you successfully call muteAllRemoteVideoStreams(true), you can take the following actions:
enableVideo
after muteAllRemoteVideoStreams(true).disableVideo
after muteAllRemoteVideoStreams(false).joinChannel
. To set whether to receive remote audio streams for a specific channel, Agora recommends using autoSubscribeVideo
in the ChannelMediaOptions class. mute | Whether to stop receiving remote video streams:
|
|
pure virtual |
Determines whether to receive all remote video streams by default.
joinChannel
.Use this method to set whether to receive video streams of subsequent peer users. Agora recommends calling it before joining a channel.
A successful call of setDefaultMuteAllRemoteVideoStreams(true) results in that the local user not receiving any video stream after joining a channel.
mute | Whether to receive remote video streams by default:
|
|
pure virtual |
Stops or resumes receiving the video stream of a specified user.
uid | The ID of the specified user. |
mute | Whether to stop receiving the video stream of the specified user:
|
|
pure virtual |
Sets the remote video stream type.
If the remote user has enabled the dual-stream mode, by default the SDK receives the high-stream video by Call this method to switch to the low-stream video.
uid | ID of the remote user sending the video stream. |
streamType | Sets the video stream type: VIDEO_STREAM_TYPE. |
|
pure virtual |
Sets the default stream type of the remote video if the remote user has enabled dual-stream.
streamType | Sets the default video stream type: VIDEO_STREAM_TYPE. |
|
pure virtual |
Enables the onAudioVolumeIndication
callback to report on which users are speaking and the speakers' volume.
Once the onAudioVolumeIndication callback is enabled, the SDK returns the volume indication in the at the time interval set in enableAudioVolumeIndication
, regardless of whether any user is speaking in the channel.
interval | Sets the time interval between two consecutive volume indications:
|
smooth | The smoothing factor that sets the sensitivity of the audio volume indicator. The value range is [0, 10]. The greater the value, the more sensitive the indicator. The recommended value is 3. |
|
pure virtual |
Starts an audio recording.
The SDK allows recording during a call, which supports either one of the following two formats:
Ensure that the directory to save the recording file exists and is writable. This method is usually called after the joinChannel() method. The recording automatically stops when the leaveChannel() method is called.
filePath | Full file path of the recording file. The string of the file name is in UTF-8 code. |
quality | Sets the audio recording quality: AUDIO_RECORDING_QUALITY_TYPE. |
|
pure virtual |
Starts an audio recording.
The SDK allows recording during a call, which supports either one of the following two formats:
Ensure that the directory to save the recording file exists and is writable. This method is usually called after the joinChannel() method. The recording automatically stops when the leaveChannel() method is called.
filePath | Full file path of the recording file. The string of the file name is in UTF-8 code. |
sampleRate | Sample rate, value should be 16000, 32000, 44100, or 48000. |
quality | Sets the audio recording quality: AUDIO_RECORDING_QUALITY_TYPE. |
|
pure virtual |
Starts an audio recording.
The SDK allows recording during a call, which supports either one of the following two formats:
Ensure that the directory to save the recording file exists and is writable. This method is usually called after the joinChannel() method. The recording automatically stops when the leaveChannel() method is called.
config | Audio recording config. |
|
pure virtual |
register encoded audio frame observer
|
pure virtual |
|
pure virtual |
Enables/Disables stereo panning for remote users.
Ensure that you call this method before joinChannel to enable stereo panning for remote users so that the local user can track the position of a remote user by calling setRemoteVoicePosition.
enabled | Sets whether or not to enable stereo panning for remote users:
|
|
pure virtual |
Sets the sound position and gain of a remote user.
When the local user calls this method to set the sound position of a remote user, the sound difference between the left and right channels allows the local user to track the real-time position of the remote user, creating a real sense of space. This method applies to massively multiplayer online games, such as Battle Royale games.
uid | The ID of the remote user. |
pan | The sound position of the remote user. The value ranges from -1.0 to 1.0:
|
gain | Gain of the remote user. The value ranges from 0.0 to 100.0. The default value is 100.0 (the original gain of the remote user). The smaller the value, the less the gain. |
|
pure virtual |
enable spatial audio
enabled | enable/disable spatial audio:
|
|
pure virtual |
Sets an SDK preset voice beautifier effect.
Call this method to set an SDK preset voice beautifier effect for the local user who sends an audio stream. After setting a voice beautifier effect, all users in the channel can hear the effect.
You can set different voice beautifier effects for different scenarios. See Set the Voice Beautifier and Audio Effects.
To achieve better audio effect quality, Agora recommends calling setAudioProfile and setting the scenario
parameter to AUDIO_SCENARIO_GAME_STREAMING(3)
and the profile
parameter to AUDIO_PROFILE_MUSIC_HIGH_QUALITY(4)
or AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO(5)
before calling this method.
profile
parameter of setAudioProfile to AUDIO_PROFILE_SPEECH_STANDARD(1)
or AUDIO_PROFILE_IOT(6)
; otherwise, this method call fails.preset | The options for SDK preset voice beautifier effects: VOICE_BEAUTIFIER_PRESET. |
|
pure virtual |
Sets an SDK preset voice conversion.
Call this method to set an SDK preset voice conversion for the local user who sends an audio stream. After setting an voice conversion, all users in the channel can hear the effect.
You can set different voice conversion for different scenarios. See Set the Voice Beautifier and Audio Effects.
To achieve better voice conversion quality, Agora recommends calling setAudioProfile and setting the scenario
parameter to AUDIO_SCENARIO_GAME_STREAMING(3)
before calling this method.
parameter
of setAudioProfile
to AUDIO_PROFILE_SPEECH_STANDARD(1)
or AUDIO_PROFILE_IOT(6)
; otherwise, this method call fails.preset
parameter to enumerators,setVoiceConversionPreset
:preset | The options for SDK preset voice conversion. See VOICE_CONVERSION_PRESET. |
|
pure virtual |
Sets parameters for SDK preset voice beautifier effects.
Call this method to set a gender characteristic and a reverberation effect for the singing beautifier effect. This method sets parameters for the local user who sends an audio stream.
After you call this method successfully, all users in the channel can hear the relevant effect.
To achieve better audio effect quality, before you call this method, Agora recommends calling setAudioProfile, and setting the scenario
parameter as AUDIO_SCENARIO_GAME_STREAMING(3)
and the profile
parameter as AUDIO_PROFILE_MUSIC_HIGH_QUALITY(4)
or AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO(5)
.
profile
parameter of setAudioProfile as AUDIO_PROFILE_SPEECH_STANDARD(1)
or AUDIO_PROFILE_IOT(6)
; otherwise, this method call does not take effect.setVoiceBeautifierParameters
:preset | The options for SDK preset voice beautifier effects:
|
param1 | The gender characteristics options for the singing voice:
|
param2 | The reverberation effects options:
|
|
pure virtual |
Set parameters for SDK preset voice conversion.
preset | The options for SDK preset audio effects. See VOICE_CONVERSION_PRESET. |
param1 | reserved. |
param2 | reserved. |
|
pure virtual |
DEPRECATED Specifies an SDK output log file.
The log file records all log data for the SDK’s operation. Ensure that the directory for the log file exists and is writable.
filePath | File path of the log file. The string of the log file is in UTF-8. |
|
pure virtual |
Sets the output log filter level of the SDK.
You can use one or a combination of the filters. The log filter level follows the sequence of OFF
, CRITICAL
, ERROR
, WARNING
, INFO
, and DEBUG
. Choose a filter level and you will see logs preceding that filter level. For example, if you set the log filter level to WARNING
, you see the logs within levels CRITICAL
, ERROR
, and WARNING
.
filter | The log filter level:
|
|
pure virtual |
Sets the output log level of the SDK.
You can set the SDK to ouput the log files of the specified level.
level | The log level:
|
|
pure virtual |
Sets the log file size (KB).
The SDK has two log files, each with a default size of 512 KB. If you set fileSizeInBytes
as 1024 KB, the SDK outputs log files with a total maximum size of 2 MB. If the total size of the log files exceed the set value, the new output log files overwrite the old output log files.
fileSizeInKBytes | The SDK log file size (KB). |
|
pure virtual |
Upload current log file immediately to server. only use this when an error occurs block before log file upload success or timeout.
|
pure virtual |
Updates the display mode of the local video view.
After initializing the local video view, you can call this method to update its rendering mode. It affects only the video view that the local user sees, not the published local video stream.
renderMode | Sets the local display mode. See #RENDER_MODE_TYPE. |
mirrorMode | Sets the local mirror mode. See VIDEO_MIRROR_MODE_TYPE. |
|
pure virtual |
Updates the display mode of the video view of a remote user.
After initializing the video view of a remote user, you can call this method to update its rendering and mirror modes. This method affects only the video view that the local user sees.
uid | ID of the remote user. |
renderMode | Sets the remote display mode. See #RENDER_MODE_TYPE. |
mirrorMode | Sets the mirror type. See VIDEO_MIRROR_MODE_TYPE. |
|
pure virtual |
Updates the display mode of the local video view.
After initializing the local video view, you can call this method to update its rendering mode. It affects only the video view that the local user sees, not the published local video stream.
renderMode | Sets the local display mode. See #RENDER_MODE_TYPE. |
|
pure virtual |
Sets the local video mirror mode.
Use this method before calling the startPreview method, or the mirror mode does not take effect until you call the startPreview
method again.
mirrorMode | Sets the local video mirror mode. See VIDEO_MIRROR_MODE_TYPE. |
|
pure virtual |
Enables or disables the dual video stream mode.
If dual-stream mode is enabled, the subscriber can choose to receive the high-stream (high-resolution high-bitrate video stream) or low-stream (low-resolution low-bitrate video stream) video using setRemoteVideoStreamType.
enabled |
|
|
pure virtual |
Enables or disables the dual video stream mode.
If dual-stream mode is enabled, the subscriber can choose to receive the high-stream (high-resolution high-bitrate video stream) or low-stream (low-resolution low-bitrate video stream) video using setRemoteVideoStreamType.
sourceType |
|
enabled |
|
|
pure virtual |
Enables or disables the dual video stream mode.
If dual-stream mode is enabled, the subscriber can choose to receive the high-stream (high-resolution high-bitrate video stream) or low-stream (low-resolution low-bitrate video stream) video using setRemoteVideoStreamType.
sourceType |
|
enabled |
|
streamConfig |
|
|
pure virtual |
|
pure virtual |
Sets the external audio source.
sourceId | custom audio source id. |
enabled | Determines whether to local playback the external audio source:
|
|
pure virtual |
Start primary custom audio track local playback.
|
pure virtual |
Stop primary custom audio track local playback.
|
pure virtual |
Start secondary custom audio track local playback.
|
pure virtual |
Stop secondary custom audio track local playback.
|
pure virtual |
Sets the audio recording format for the onRecordAudioFrame callback.
sampleRate | The sample rate (Hz) of the audio data returned in the onRecordAudioFrame callback, which can set be as 8000, 16000, 32000, 44100, or 48000. |
channel | The number of audio channels of the audio data returned in the onRecordAudioFrame callback, which can be set as 1 or 2:
|
mode | This mode is deprecated. |
samplesPerCall | not support. Sampling points in the called data returned in onRecordAudioFrame(). For example, it is usually set as 1024 for stream pushing. |
|
pure virtual |
Sets the audio playback format for the onPlaybackAudioFrame callback.
sampleRate | Sets the sample rate (Hz) of the audio data returned in the onPlaybackAudioFrame callback, which can set be as 8000, 16000, 32000, 44100, or 48000. |
channel | The number of channels of the audio data returned in the onPlaybackAudioFrame callback, which can be set as 1 or 2:
|
mode | Deprecated. The use mode of the onPlaybackAudioFrame() callback: agora::rtc::RAW_AUDIO_FRAME_OP_MODE_TYPE. |
samplesPerCall | not support. Sampling points in the called data returned in onPlaybackAudioFrame(). For example, it is usually set as 1024 for stream pushing. |
|
pure virtual |
Sets the mixed audio format for the onMixedAudioFrame callback.
sampleRate | The sample rate (Hz) of the audio data returned in the onMixedAudioFrame callback, which can set be as 8000, 16000, 32000, 44100, or 48000. |
channel | The number of channels of the audio data in onMixedAudioFrame callback, which can be set as 1 or 2:
|
samplesPerCall | not support. Sampling points in the called data returned in onMixedAudioFrame . For example, it is usually set as 1024 for stream pushing. |
|
pure virtual |
Sets the audio playback format before mixing in the onPlaybackAudioFrameBeforeMixing callback.
sampleRate | The sample rate (Hz) of the audio data returned in onPlaybackAudioFrameBeforeMixing , which can set be as 8000, 16000, 32000, 44100, or 48000. |
channel | Number of channels of the audio data returned in onPlaybackAudioFrameBeforeMixing , which can be set as 1 or 2:
|
|
pure virtual |
Enable the audio spectrum monitor.
intervalInMS | Sets the time interval(ms) between two consecutive audio spectrum callback. The default value is 100. This param should be larger than 10. |
|
pure virtual |
Disalbe the audio spectrum monitor.
|
pure virtual |
Registers an audio spectrum observer.
You need to implement the IAudioSpectrumObserver
class in this method, and register the following callbacks according to your scenario:
observer | A pointer to the audio spectrum observer: IAudioSpectrumObserver. |
|
pure virtual |
Releases the audio spectrum observer.
observer | The pointer to the audio spectrum observer: IAudioSpectrumObserver. |
|
pure virtual |
Adjusts the recording volume.
volume | The recording volume, which ranges from 0 to 400: |
|
pure virtual |
Mute or resume recording signal volume.
mute | Determines whether to mute or resume the recording signal volume.
|
|
pure virtual |
Adjusts the playback volume.
volume | The playback volume, which ranges from 0 to 400: |
|
pure virtual |
|
pure virtual |
Sets the fallback option for the published video stream based on the network conditions.
If option
is set as STREAM_FALLBACK_OPTION_AUDIO_ONLY (2), the SDK will:
When the published video stream falls back to audio only or when the audio-only stream switches back to the video, the SDK triggers the onLocalPublishFallbackToAudioOnly callback.
option | Sets the fallback option for the published video stream:
|
|
pure virtual |
Sets the fallback option for the remotely subscribed video stream based on the network conditions.
The default setting for option
is STREAM_FALLBACK_OPTION_VIDEO_STREAM_LOW (1), where the remotely subscribed video stream falls back to the low-stream video (low resolution and low bitrate) under poor downlink network conditions.
If option
is set as STREAM_FALLBACK_OPTION_AUDIO_ONLY (2), the SDK automatically switches the video from a high-stream to a low-stream, or disables the video when the downlink network conditions cannot support both audio and video to guarantee the quality of the audio. The SDK monitors the network quality and restores the video stream when the network conditions improve.
When the remotely subscribed video stream falls back to audio only or when the audio-only stream switches back to the video stream, the SDK triggers the onRemoteSubscribeFallbackToAudioOnly callback.
option | Sets the fallback option for the remotely subscribed video stream. See STREAM_FALLBACK_OPTIONS. |
|
pure virtual |
Enables loopback recording.
If you enable loopback recording, the output of the default sound card is mixed into the audio stream sent to the other end.
enabled | Sets whether to enable/disable loopback recording.
|
deviceName | Pointer to the device name of the sound card. The default value is NULL (the default sound card).
|
|
pure virtual |
Adjusts the loopback recording volume.
volume | The loopback volume, which ranges from 0 to 100: |
|
pure virtual |
Retrieves the audio volume for recording loopback.
|
pure virtual |
Enables in-ear monitoring (for Android and iOS only).
enabled | Determines whether to enable in-ear monitoring.
|
includeAudioFilters | The type of the ear monitoring: EAR_MONITORING_FILTER_TYPE |
|
pure virtual |
Sets the volume of the in-ear monitor (for Android and iOS only).
volume | Sets the volume of the in-ear monitor. The value ranges between 0 and 100 (default). |
|
pure virtual |
Set extension provider specific property.
provider | name for provider, e.g. agora.io. |
key | key for the property. |
value | property value of json format. |
|
pure virtual |
Enable/Disable extension.
provider | name for provider, e.g. agora.io. |
extension | name for extension, e.g. agora.beauty. |
enable | enable or disable.
|
|
pure virtual |
Set extension specific property.
provider | name for provider, e.g. agora.io. |
extension | name for extension, e.g. agora.beauty. |
key | key for the property. |
value | property value of json format. |
|
pure virtual |
Get extension specific property.
provider | name for provider, e.g. agora.io. |
extension | name for extension, e.g. agora.beauty. |
key | key for the property. |
value | property value of json format. |
buf_len | max length of the json value buffer |
|
pure virtual |
Gets the current call ID.
When a user joins a channel on a client, a callId
is generated to identify the call.
After a call ends, you can call rate
or complain
to gather feedback from the customer. These methods require a callId
parameter. To use these feedback methods, call the this method first to retrieve the callId
during the call, and then pass the value as an argument in the rate
or complain
method after the call ends.
callId | The reference to the call ID. |
|
pure virtual |
Allows a user to rate the call.
It is usually called after the call ends.
callId | The call ID retrieved from the getCallId method. |
rating | The rating of the call between 1 (the lowest score) to 5 (the highest score). |
description | (Optional) The description of the rating. The string length must be less than 800 bytes. |
|
pure virtual |
Allows a user to complain about the call quality.
This method is usually called after the call ends.
callId | The call ID retrieved from the getCallId method. |
description | (Optional) The description of the complaint. The string length must be less than 800 bytes. |
|
pure virtual |
Sets the video layout and audio settings for CDN live.
The SDK triggers the onTranscodingUpdated callback when you call this method to update the LiveTranscoding
class. If you call this method to set the LiveTranscoding
class for the first time, the SDK does not trigger the onTranscodingUpdated
callback.
setClientRole
method and set the user role as the host.setLiveTranscoding
method before addPublishStreamUrl method.transcoding | Sets the CDN live audio and video transcoding settings: LiveTranscoding. |
|
pure virtual |
Publishes the local stream without transcoding to a specified CDN live RTMP address. (CDN live only.)
The SDK returns the result of this method call in the onStreamPublished callback.
The startRtmpStreamWithoutTranscoding method call triggers the onRtmpStreamingStateChanged callback on the local client to report the state of adding a local stream to the CDN.
url | The CDN streaming URL in the RTMP format. The maximum length of this parameter is 1024 bytes. |
|
pure virtual |
Publishes the local stream with transcoding to a specified CDN live RTMP address. (CDN live only.)
The SDK returns the result of this method call in the onStreamPublished callback.
The startRtmpStreamWithTranscoding method call triggers the onRtmpStreamingStateChanged callback on the local client to report the state of adding a local stream to the CDN.
url | The CDN streaming URL in the RTMP format. The maximum length of this parameter is 1024 bytes. |
transcoding | Sets the CDN live audio/video transcoding settings. See LiveTranscoding. |
|
pure virtual |
Update the video layout and audio settings for CDN live. (CDN live only.)
transcoding | Sets the CDN live audio/video transcoding settings. See LiveTranscoding. |
|
pure virtual |
Stop an RTMP stream with transcoding or without transcoding from the CDN. (CDN live only.)
This method removes the RTMP URL address (added by the startRtmpStreamWithoutTranscoding method or IRtcEngine::startRtmpStreamWithTranscoding "startRtmpStreamWithTranscoding" method) from a CDN live stream. The SDK returns the result of this method call in the onStreamUnpublished callback.
The stopRtmpStream method call triggers the onRtmpStreamingStateChanged callback on the local client to report the state of removing an RTMP stream from the CDN.
url | The RTMP URL address to be removed. The maximum length of this parameter is 1024 bytes. |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
Gets the current connection state of the SDK.
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
Registers a packet observer.
The Agora Native SDK allows your app to register a packet observer to receive events whenever a voice or video packet is transmitting.
observer | The IPacketObserver object. |
|
pure virtual |
Enables/Disables the built-in encryption.
In scenarios requiring high security, Agora recommends calling this method to enable the built-in encryption before joining a channel.
All users in the same channel must use the same encryption mode and encryption key. Once all users leave the channel, the encryption key of this channel is automatically cleared.
enabled | Whether to enable the built-in encryption:
|
config | Configurations of built-in encryption schemas. See EncryptionConfig. |
IRtcEngine
instance before calling this method.
|
pure virtual |
Creates a data stream.
You can call this method to create a data stream and improve the reliability and ordering of data tranmission.
reliable
and ordered
.[out] | streamId | The ID of the stream data. |
reliable | Sets whether the recipients are guaranteed to receive the data stream from the sender within five seconds:
| |
ordered | Sets whether the recipients receive the data stream in the sent order:
|
|
pure virtual |
Creates a data stream.
Each user can create up to five data streams during the lifecycle of the IChannel.
streamId | The ID of the created data stream. |
config | The config of data stream. |
|
pure virtual |
Sends a data stream.
After calling createDataStream, you can call this method to send a data stream to all users in the channel.
The SDK has the following restrictions on this method:
After the remote user receives the data stream within 5 seconds, the SDK triggers the onStreamMessage callback on the remote client. After the remote user does not receive the data stream within 5 seconds, the SDK triggers the onStreamMessageError callback on the remote client.
COMMUNICATION
profile or to the hosts in the LIVE_BROADCASTING
profile. If an audience in the LIVE_BROADCASTING
profile calls this method, the audience may be switched to a host.streamId | The ID of the stream data. |
data | The data stream. |
length | The length (byte) of the data stream. |
|
pure virtual |
DEPRECATED Adds a watermark image to the local video or CDN live stream.
This method is not recommend, Use addVideoWatermark2 instead.
This method adds a PNG watermark image to the local video stream for the recording device, channel audience, and CDN live audience to view and capture.
To add the PNG file to the CDN live publishing stream, see the setLiveTranscoding method.
watermark | Pointer to the watermark image to be added to the local video stream. See RtcImage. |
|
pure virtual |
Adds a watermark image to the local video.
This method adds a PNG watermark image to the local video in a live broadcast. Once the watermark image is added, all the audience in the channel (CDN audience included), and the recording device can see and capture it. Agora supports adding only one watermark image onto the local video, and the newly watermark image replaces the previous one.
The watermark position depends on the settings in the setVideoEncoderConfiguration method:
setVideoEncoderConfiguration
method. Otherwise, the watermark image will be cropped.visibleInPreview
member in the WatermarkOptions class to set whether or not the watermark is visible in preview.watermarkUrl | The local file path of the watermark image to be added. This method supports adding a watermark image from the local absolute or relative file path. |
options | Pointer to the watermark's options to be added. See WatermarkOptions for more infomation. |
|
pure virtual |
Removes the watermark image on the video stream added by addVideoWatermark().
|
pure virtual |
Enables interoperability with the Agora Web SDK (Live Broadcast only).
Use this method when the channel profile is Live Broadcast. Interoperability with the Agora Web SDK is enabled by default when the channel profile is Communication.
enabled | Determines whether to enable interoperability with the Agora Web SDK.
|
|
pure virtual |
Agora supports reporting and analyzing customized messages.
This function is in the beta stage with a free trial. The ability provided in its beta test version is reporting a maximum of 10 message pieces within 6 seconds, with each message piece not exceeding 256 bytes.
To try out this function, contact support@agora.io and discuss the format of customized messages with us.
|
pure virtual |
Registers the metadata observer.
You need to implement the IMetadataObserver class and specify the metadata type in this method. This method enables you to add synchronized metadata in the video stream for more diversified live interactive streaming, such as sending shopping links, digital coupons, and online quizzes.
A successful call of this method triggers the getMaxMetadataSize callback.
joinChannel
method.LIVE_BROADCASTING
channel profile.observer | IMetadataObserver. |
type | The metadata type. See METADATA_TYPE. The SDK supports VIDEO_METADATA (0) only for now. |
|
pure virtual |
Unregisters the metadata observer.
observer | IMetadataObserver. |
type | The metadata type. See METADATA_TYPE. The SDK supports VIDEO_METADATA (0) only for now. |
|
pure virtual |
Start audio frame dump.
Optional location
is: "pre_apm_proc", "apm", "pre_send_proc", "filter", "enc", "tx_mixer", "at_record", "atw_record" for audio sending. "dec", "mixed", "play", "rx_mixer", "playback_mixer", "pcm_source_playback_mixer", "pre_play_proc", "at_playout", "atw_playout" for audio receiving.
|
pure virtual |
|
pure virtual |
Registers a user account.
Once registered, the user account can be used to identify the local user when the user joins the channel. After the user successfully registers a user account, the SDK triggers the onLocalUserRegistered callback on the local client, reporting the user ID and user account of the local user.
To join a channel with a user account, you can choose either of the following:
The difference between the two is that for the former, the time elapsed between calling the joinChannelWithUserAccount method and joining the channel is shorter than the latter.
userAccount
parameter. Otherwise, this method does not take effect.userAccount
parameter is unique in the channel.appId | The App ID of your project. |
userAccount | The user account. The maximum length of this parameter is 255 bytes. Ensure that you set this parameter and do not set it as null. Supported character scopes are:
|
|
pure virtual |
Joins the channel with a user account.
After the user successfully joins the channel, the SDK triggers the following callbacks:
COMMUNICATION
profile, or is a host in the LIVE_BROADCASTING
profile.token | The token generated at your server:
|
channelId | The channel name. The maximum length of this parameter is 64 bytes. Supported character scopes are:
|
userAccount | The user account. The maximum length of this parameter is 255 bytes. Ensure that you set this parameter and do not set it as null. Supported character scopes are:
|
|
pure virtual |
Joins the channel with a user account.
After the user successfully joins the channel, the SDK triggers the following callbacks:
COMMUNICATION
profile, or is a host in the LIVE_BROADCASTING
profile.token | The token generated at your server:
|
channelId | The channel name. The maximum length of this parameter is 64 bytes. Supported character scopes are:
|
userAccount | The user account. The maximum length of this parameter is 255 bytes. Ensure that you set this parameter and do not set it as null. Supported character scopes are:
|
options | The channel media options: ChannelMediaOptions |
|
pure virtual |
Joins the channel with a user account.
After the user successfully joins the channel, the SDK triggers the following callbacks:
COMMUNICATION
profile, or is a host in the LIVE_BROADCASTING
profile.token | The token generated at your server:
|
channelId | The channel name. The maximum length of this parameter is 64 bytes. Supported character scopes are:
|
userAccount | The user account. The maximum length of this parameter is 255 bytes. Ensure that you set this parameter and do not set it as null. Supported character scopes are:
|
options | The channel media options: ChannelMediaOptions |
eventHandler | The pointer to the IRtcEngine event handler: IRtcEngineEventHandler. |
|
pure virtual |
Gets the user information by passing in the user account.
After a remote user joins the channel, the SDK gets the user ID and user account of the remote user, caches them in a mapping table object (userInfo
), and triggers the onUserInfoUpdated callback on the local client.
After receiving the oonUserInfoUpdated callback, you can call this method to get the user ID of the remote user from the userInfo
object by passing in the user account.
userAccount | The user account of the user. Ensure that you set this parameter. | |
[in,out] | userInfo | A userInfo object that identifies the user:
|
|
pure virtual |
Gets the user information by passing in the user ID.
After a remote user joins the channel, the SDK gets the user ID and user account of the remote user, caches them in a mapping table object (userInfo
), and triggers the onUserInfoUpdated callback on the local client.
After receiving the onUserInfoUpdated callback, you can call this method to get the user account of the remote user from the userInfo
object by passing in the user ID.
uid | The user ID of the remote user. Ensure that you set this parameter. | |
[in,out] | userInfo | A userInfo object that identifies the user:
|
|
pure virtual |
Starts to relay media streams across channels.
After a successful method call, the SDK triggers the onChannelMediaRelayStateChanged and onChannelMediaRelayEvent callbacks, and these callbacks return the state and events of the media stream relay.
LIVE_BROADCASTING
channel.configuration | The configuration of the media stream relay: ChannelMediaRelayConfiguration. |
|
pure virtual |
Updates the channels for media stream relay. After a successful startChannelMediaRelay method call, if you want to relay the media stream to more channels, or leave the current relay channel, you can call the updateChannelMediaRelay method.
After a successful method call, the SDK triggers the onChannelMediaRelayEvent callback with the RELAY_EVENT_PACKET_UPDATE_DEST_CHANNEL (7) state code.
configuration | The media stream relay configuration: ChannelMediaRelayConfiguration. |
|
pure virtual |
Stops the media stream relay.
Once the relay stops, the host quits all the destination channels.
After a successful method call, the SDK triggers the onChannelMediaRelayStateChanged callback. If the callback returns RELAY_STATE_IDLE (0) and RELAY_OK (0), the host successfully stops the relay.
|
pure virtual |
pause the channels for media stream relay.
|
pure virtual |
resume the channels for media stream relay.
|
pure virtual |
Set audio parameters for direct streaming to CDN
profile | Sets the sample rate, bitrate, encoding mode, and the number of channels: AUDIO_PROFILE_TYPE. |
|
pure virtual |
Set video parameters for direct streaming to CDN
Each configuration profile corresponds to a set of video parameters, including the resolution, frame rate, and bitrate.
config | The local video encoder configuration: VideoEncoderConfiguration. |
|
pure virtual |
Start direct cdn streaming
eventHandler | A pointer to the direct cdn streaming event handler: IDirectCdnStreamingEventHandler. |
publishUrl | The url of the cdn used to publish the stream. |
options | The direct cdn streaming media options: DirectCdnStreamingMediaOptions. |
|
pure virtual |
Stop direct cdn streaming
|
pure virtual |
Change the media source during the pushing
options | The direct cdn streaming media options: DirectCdnStreamingMediaOptions. |
|
pure virtual |
Push external video data
frame | The reference to the video frame to send. |
|
pure virtual |
save current time video frame to jpeg and write as a jpeg
config | SnapShotConfig |
callback | ISnapshotCallback |
|
pure virtual |
Enable the content inspect.
config | ContentInspectConfig |
|
pure virtual |
switch to another channel.
|
pure virtual |
Enables the rhythm player.
sound1 | The absolute path or URL address (including the filename extensions) of the file for the downbeat. |
sound2 | The absolute path or URL address (including the filename extensions) of the file for the upbeats. |
config | The configuration of rhythm player. |
|
pure virtual |
Disables the rhythm player.
|
pure virtual |
Configures the rhythm player.
config | The configuration of rhythm player. |
|
pure virtual |
|
pure virtual |
|
pure virtual |
Sets the Agora cloud proxy service.
When the user's firewall restricts the IP address and port, refer to Use Cloud Proxy to add the specific IP addresses and ports to the firewall whitelist; then, call this method to enable the cloud proxy and set the proxyType
parameter as UDP_PROXY(1)
, which is the cloud proxy for the UDP protocol.
After a successfully cloud proxy connection, the SDK triggers the onConnectionStateChanged (CONNECTION_STATE_CONNECTING, CONNECTION_CHANGED_SETTING_PROXY_SERVER) callback.
To disable the cloud proxy that has been set, call setCloudProxy(NONE_PROXY)
. To change the cloud proxy type that has been set, call setCloudProxy(NONE_PROXY)
first, and then call setCloudProxy
, and pass the value that you expect in proxyType
.
proxyType | The cloud proxy type, see CLOUD_PROXY_TYPE. This parameter is required, and the SDK reports an error if you do not pass in a value. |
-2(ERR_INVALID_ARGUMENT)
: The parameter is invalid.-7(ERR_NOT_INITIALIZED)
: The SDK is not initialized.
|
pure virtual |
set local access point addresses in local proxy mode. use this method before join channel.
config | The LocalAccessPointConfiguration class, See the definition of LocalAccessPointConfiguration for details. |
|
pure virtual |
enable fish correction. use this method before join channel.
enabled | bool |
params | The FishCorrectionParams struct, See the definition of FishCorrectionParams for details. |
|
pure virtual |
set advanced audio options. use this method before join channel.
options | The AdvancedAudioOptions class, See the definition of AdvancedAudioOptions for details. |
|
pure virtual |
Bind local user and a remote user as an audio&video sync group. The remote user is defined by cid and uid. There’s a usage limit that local user must be a video stream sender. On the receiver side, media streams from same sync group will be time-synced
channelId | The channel id |
uid | The user ID of the remote user to be bound with (local user) |