Agora Server Gateway SDK C++ API Reference
Public Member Functions | Protected Member Functions | List of all members
agora::base::IAgoraService Class Referenceabstract

#include <IAgoraService.h>

Public Member Functions

virtual int initialize (const AgoraServiceConfiguration &config)=0
 
virtual int release ()=0
 
virtual int setAudioSessionPreset (agora::rtc::AUDIO_SCENARIO_TYPE scenario)=0
 
virtual int setLogFile (const char *filePath, unsigned int fileSize)=0
 
virtual int setLogFilter (unsigned int filters)=0
 
virtual agora_refptr< rtc::IRtcConnectioncreateRtcConnection (const rtc::RtcConnectionConfiguration &cfg)=0
 
virtual agora_refptr< rtc::IRtmpConnectioncreateRtmpConnection (const rtc::RtmpConnectionConfiguration &cfg)=0
 
virtual agora_refptr< rtc::ILocalAudioTrackcreateLocalAudioTrack ()=0
 
virtual agora_refptr< rtc::ILocalAudioTrackcreateCustomAudioTrack (agora_refptr< rtc::IAudioPcmDataSender > audioSource)=0
 
virtual agora_refptr< rtc::ILocalAudioTrackcreateDirectCustomAudioTrack (agora_refptr< rtc::IAudioPcmDataSender > audioSource)=0
 
virtual agora_refptr< rtc::ILocalAudioTrackcreateCustomAudioTrack (agora_refptr< rtc::IAudioEncodedFrameSender > audioSource, TMixMode mixMode)=0
 
virtual agora_refptr< rtc::IMediaNodeFactorycreateMediaNodeFactory ()=0
 
virtual agora_refptr< rtc::ILocalVideoTrackcreateMixedVideoTrack (agora_refptr< rtc::IVideoMixerSource > videoSource, const char *id=OPTIONAL_NULLPTR)=0
 
virtual agora_refptr< rtc::ILocalVideoTrackcreateCustomVideoTrack (agora_refptr< rtc::IVideoFrameSender > videoSource, const char *id=OPTIONAL_NULLPTR)=0
 
virtual agora_refptr< rtc::ILocalVideoTrackcreateCustomVideoTrack (agora_refptr< rtc::IVideoEncodedImageSender > videoSource, const rtc::SenderOptions &options, const char *id=OPTIONAL_NULLPTR)=0
 

Protected Member Functions

virtual ~IAgoraService ()
 

Detailed Description

The IAgoraService class.

IAgoraService is the entry point of Agora low-level APIs. Use this interface to create access points to Agora interfaces, including RTC connections and media tracks.

You can create an IAgoraService object by calling createAgoraService.

You can configure the IAgoraService object for different user scenarios on the global level by using AgoraServiceConfiguration.

Constructor & Destructor Documentation

◆ ~IAgoraService()

virtual agora::base::IAgoraService::~IAgoraService ( )
inlineprotectedvirtual

Member Function Documentation

◆ createCustomAudioTrack() [1/2]

virtual agora_refptr< rtc::ILocalAudioTrack > agora::base::IAgoraService::createCustomAudioTrack ( agora_refptr< rtc::IAudioEncodedFrameSender audioSource,
TMixMode  mixMode 
)
pure virtual

Creates a local audio track object with an encoded audio frame sender and returns the pointer.

Once created, this track can be used to send encoded audio frames, such as Opus frames.

Parameters
audioSourceThe pointer to the encoded audio frame sender: IAudioEncoderFrameSender.
mixModeThe mixing mode of the encoded audio in the channel: TMixMode.
Returns

◆ createCustomAudioTrack() [2/2]

virtual agora_refptr< rtc::ILocalAudioTrack > agora::base::IAgoraService::createCustomAudioTrack ( agora_refptr< rtc::IAudioPcmDataSender audioSource)
pure virtual

Creates a local audio track object with a PCM data sender and returns the pointer.

Once created, this track can be used to send PCM audio data.

Parameters
audioSourceThe pointer to the PCM audio data sender: IAudioPcmDataSender.
Returns

◆ createCustomVideoTrack() [1/2]

virtual agora_refptr< rtc::ILocalVideoTrack > agora::base::IAgoraService::createCustomVideoTrack ( agora_refptr< rtc::IVideoEncodedImageSender videoSource,
const rtc::SenderOptions &  options,
const char *  id = OPTIONAL_NULLPTR 
)
pure virtual

Creates a local video track object with an encoded video image sender and returns the pointer.

Once created, this track can be used to send encoded video images, such as H.264 or VP8 frames.

Parameters
videoSourceThe pointer to the encoded video frame sender. See IVideoEncodedImageSender.
optionsThe configuration for creating video encoded image track.
idThe stream ID.
Returns

◆ createCustomVideoTrack() [2/2]

virtual agora_refptr< rtc::ILocalVideoTrack > agora::base::IAgoraService::createCustomVideoTrack ( agora_refptr< rtc::IVideoFrameSender videoSource,
const char *  id = OPTIONAL_NULLPTR 
)
pure virtual

Creates a local video track object with a customized YUV video source and returns the pointer.

Once created, this track can be used to send YUV video data from a customized source.

Parameters
videoSourceThe pointer to the customized video frame sender: IVideoFrameSender.
idThe stream ID.
Returns

◆ createDirectCustomAudioTrack()

virtual agora_refptr< rtc::ILocalAudioTrack > agora::base::IAgoraService::createDirectCustomAudioTrack ( agora_refptr< rtc::IAudioPcmDataSender audioSource)
pure virtual

Creates a local audio track object with a PCM data sender and returns the pointer. The source is not intended to be mixed with other source.

Once created, this track can be used to send PCM audio data.

Parameters
audioSourceThe pointer to the PCM audio data sender: IAudioPcmDataSender.
Returns

◆ createLocalAudioTrack()

virtual agora_refptr< rtc::ILocalAudioTrack > agora::base::IAgoraService::createLocalAudioTrack ( )
pure virtual

Creates a local audio track object and returns the pointer.

By default, the audio track is created from the selected audio input device, such as the built-in microphone on a mobile device.

Returns

◆ createMediaNodeFactory()

virtual agora_refptr< rtc::IMediaNodeFactory > agora::base::IAgoraService::createMediaNodeFactory ( )
pure virtual

Creates a media node factory object and returns the pointer.

Returns

◆ createMixedVideoTrack()

virtual agora_refptr< rtc::ILocalVideoTrack > agora::base::IAgoraService::createMixedVideoTrack ( agora_refptr< rtc::IVideoMixerSource videoSource,
const char *  id = OPTIONAL_NULLPTR 
)
pure virtual

Creates a local video track object with a video mixer and returns the pointer.

Once created, this track can be used to send video data processed by the video mixer.

Parameters
videoSourceThe pointer to the video mixer. See IVideoMixerSource.
idThe stream ID.
Returns

◆ createRtcConnection()

virtual agora_refptr< rtc::IRtcConnection > agora::base::IAgoraService::createRtcConnection ( const rtc::RtcConnectionConfiguration cfg)
pure virtual

Creates an RtcConnection object and returns the pointer.

Parameters
cfgThe reference to the RTC connection configuration: RtcConnectionConfiguration.
Returns

◆ createRtmpConnection()

virtual agora_refptr< rtc::IRtmpConnection > agora::base::IAgoraService::createRtmpConnection ( const rtc::RtmpConnectionConfiguration cfg)
pure virtual

Creates an IRtmpConnection object.

Parameters
cfgThe RTMP connection configuration: RtmpConnectionConfiguration.
Returns
  • A pointer to an IRtmpConnection object: Success.
  • A null pointer: Failure.

◆ initialize()

virtual int agora::base::IAgoraService::initialize ( const AgoraServiceConfiguration config)
pure virtual

Initializes the AgoraService object.

Parameters
configThe configuration of the initialization. For details, see AgoraServiceConfiguration.
Returns
  • 0: Success.
  • < 0: Failure.

◆ release()

virtual int agora::base::IAgoraService::release ( )
pure virtual

Releases the AgoraService object.

Returns
  • 0: Success.
  • < 0: Failure.

◆ setAudioSessionPreset()

virtual int agora::base::IAgoraService::setAudioSessionPreset ( agora::rtc::AUDIO_SCENARIO_TYPE  scenario)
pure virtual

Configures the preset audio scenario.

Parameters
scenarioThe preset audio scenario: AUDIO_SCENARIO_TYPE.
Returns
  • 0: Success.
  • < 0: Failure.

◆ setLogFile()

virtual int agora::base::IAgoraService::setLogFile ( const char *  filePath,
unsigned int  fileSize 
)
pure virtual

Sets the path and size of the SDK log files.

The SDK records all the log data during the SDK runtime in two log files, each with a default size of 512 KB. If you set fileSize as 1024 KB, the SDK outputs log files with a maximum size of 2 MB. If the total size of the log files exceeds the set value, the new output log overwrites the old output log.

Note
To ensure that the output log is complete, call this method immediately after calling initialize.
Parameters
filePathThe pointer to the log file. Ensure that the directory of the log file exists and is writable.
fileSizeThe size of the SDK log file size (KB).
Returns
  • 0: Success.
  • < 0: Failure.

◆ setLogFilter()

virtual int agora::base::IAgoraService::setLogFilter ( unsigned int  filters)
pure virtual

Sets the SDK log output filter.

The log level follows the sequence of OFF, CRITICAL, ERROR, WARNING, INFO, and DEBUG.

Select a level to output the logs in and above the selected level. For example, if you set the log level to WARNING, you can see the logs in the levels of CRITICAL, ERROR, and WARNING.

Parameters
filtersThe log output filter.
  • LOG_LEVEL_NONE (0x0000): Do not output any log file.
  • LOG_LEVEL_INFO (0x0001): (Recommended) Output log files of the INFO level.
  • LOG_LEVEL_WARN (0x0002): Output log files of the WARN level.
  • LOG_LEVEL_ERROR (0x0004): Output log files of the ERROR level.
  • LOG_LEVEL_FATAL (0x0008): Output log files of the FATAL level.
Returns
  • 0: Success.
  • < 0: Failure.

The documentation for this class was generated from the following file: