Agora RTC Objective-C API Reference Refactor

IAgoraService.h
Go to the documentation of this file.
1 // Agora SDK
2 //
3 // Copyright (c) 2018 Agora.io. All rights reserved.
4 //
5
6 #pragma once // NOLINT(build/header_guard)
7
8 #include "IAgoraLog.h"
9 #include "AgoraBase.h"
10 #include "AgoraOptional.h"
11
12 namespace agora {
13 class ILocalDataChannel;
14 class IRemoteDataChannel;
15 struct DataChannelConfig;
16
17 namespace rtc {
18 class IRtcConnection;
19 class IRtmpConnection;
20 class ILocalUser;
21 class IMediaDeviceManager;
22 class INGAudioDeviceManager;
23 struct TConnectionInfo;
24 struct RtcConnectionConfiguration;
25 struct RtmpConnectionConfiguration;
26 class ILocalAudioTrack;
27 class IMediaPlayerSource;
28 class IMediaStreamingSource;
29 class ICameraCapturer;
30 class IScreenCapturer;
31 class IScreenCapturer2;
32 class IAudioPcmDataSender;
33 class IAudioEncodedFrameSender;
34 class IVideoFrameSender;
35 class IVideoEncodedImageSender;
36 class IVideoSourceNode;
37 class IVideoMixerSource;
38 class IVideoFrameTransceiver;
39 class ILocalVideoTrack;
40 class IMediaNodeFactory;
41 class IRecordingDeviceSource;
42 class IRemoteAudioMixerSource;
43 class IRtmpStreamingService;
44 class IMediaPacketSender;
45 class IMediaRelayService;
46 class IAudioDeviceManager;
47 class IAudioDeviceManagerObserver;
48
49 class IMediaExtensionObserver;
50 class IExtensionProvider;
51 class IFileUploaderService;
52 class IConfigCenter;
56 struct AudioEncoderConfiguration {
60 AUDIO_PROFILE_TYPE audioProfile;
61
62 AudioEncoderConfiguration() : audioProfile(AUDIO_PROFILE_DEFAULT) {}
63 };
64
65 } // namespace rtc
66
67 namespace rtm {
68 class IRtmService;
69 }
70
71 namespace base {
72 class IServiceObserver;
73
79 struct AgoraServiceConfiguration {
85 bool enableAudioProcessor;
96 bool enableAudioDevice;
102 bool enableVideo;
108 void* context;
112 const char* appId;
113
117 unsigned int areaCode;
118
121 agora::CHANNEL_PROFILE_TYPE channelProfile;
122
126 const char* license;
127
131 rtc::AUDIO_SCENARIO_TYPE audioScenario;
135 commons::LogConfig logConfig;
139 bool useStringUid;
143 IServiceObserver* serviceObserver;
144
148 Optional<rtc::THREAD_PRIORITY_TYPE> threadPriority;
155 bool useExternalEglContext;
156
162 bool domainLimit;
163
164 AgoraServiceConfiguration() : enableAudioProcessor(true),
165 enableAudioDevice(true),
166 enableVideo(false),
167 context(NULL),
168 appId(NULL),
169 areaCode(rtc::AREA_CODE_GLOB),
170 channelProfile(agora::CHANNEL_PROFILE_LIVE_BROADCASTING),
171 license(NULL),
172 audioScenario(rtc::AUDIO_SCENARIO_DEFAULT),
173 useStringUid(false),
174 serviceObserver(NULL),
175 useExternalEglContext(false),
176 domainLimit(false){}
177 };
183 struct AudioSessionConfiguration {
196 Optional<bool> playbackAndRecord;
205 Optional<bool> chatMode;
214 Optional<bool> defaultToSpeaker;
223 Optional<bool> overrideSpeaker;
232 Optional<bool> allowMixWithOthers;
241 Optional<bool> allowDuckOthers;
252 Optional<bool> allowBluetooth;
264 Optional<bool> allowBluetoothA2DP;
271 Optional<double> sampleRate;
278 Optional<double> ioBufferDuration;
282 Optional<int> inputNumberOfChannels;
286 Optional<int> outputNumberOfChannels;
287
288 #if defined(WEBRTC_IOS)
289
292 Optional<int> category;
293 #endif
294
295 void SetAll(const AudioSessionConfiguration& change) {
296 SetFrom(&playbackAndRecord, change.playbackAndRecord);
297 SetFrom(&chatMode, change.chatMode);
298 SetFrom(&defaultToSpeaker, change.defaultToSpeaker);
299 SetFrom(&overrideSpeaker, change.overrideSpeaker);
300 SetFrom(&allowMixWithOthers, change.allowMixWithOthers);
301 SetFrom(&allowDuckOthers, change.allowDuckOthers);
302 SetFrom(&allowBluetooth, change.allowBluetooth);
303 SetFrom(&allowBluetoothA2DP, change.allowBluetoothA2DP);
304 SetFrom(&sampleRate, change.sampleRate);
305 SetFrom(&ioBufferDuration, change.ioBufferDuration);
306 SetFrom(&inputNumberOfChannels, change.inputNumberOfChannels);
307 SetFrom(&outputNumberOfChannels, change.outputNumberOfChannels);
308 #if defined(WEBRTC_IOS)
309 SetFrom(&category, change.category);
310 #endif
311 }
312
313 bool operator==(const AudioSessionConfiguration& o) const {
314 return playbackAndRecord == o.playbackAndRecord && chatMode == o.chatMode &&
315 defaultToSpeaker == o.defaultToSpeaker && overrideSpeaker == o.overrideSpeaker &&
316 allowMixWithOthers == o.allowMixWithOthers && allowDuckOthers == o.allowDuckOthers &&
317 allowBluetooth == o.allowBluetooth && allowBluetoothA2DP == o.allowBluetoothA2DP && sampleRate == o.sampleRate &&
318 ioBufferDuration == o.ioBufferDuration &&
319 inputNumberOfChannels == o.inputNumberOfChannels &&
320 #if defined(WEBRTC_IOS)
321 outputNumberOfChannels == o.outputNumberOfChannels &&
322 category == o.category;
323 #else
324 outputNumberOfChannels == o.outputNumberOfChannels;
325 #endif
326 }
327 bool operator!=(const AudioSessionConfiguration& o) const { return !(*this == o); }
328
329 private:
330 template <typename T>
331 static void SetFrom(Optional<T>* s, const Optional<T>& o) {
332 if (o) {
333 *s = o;
334 }
335 }
336 };
340 enum TMixMode {
344 MIX_ENABLED,
348 MIX_DISABLED,
349 };
350
354 class IServiceObserver {
355 public:
356 virtual ~IServiceObserver() {}
357
362 virtual void onPermissionError(agora::rtc::PERMISSION_TYPE permissionType) {}
367 virtual void onAudioDeviceError(ERROR_CODE_TYPE error, const char* description) {}
379 virtual void onFetchConfigResult(int code, rtc::CONFIG_FETCH_TYPE configType, const char* configContent) {}
380
381 #if defined(__ANDROID__)
382
386 virtual void onPermissionGranted(agora::rtc::PERMISSION_TYPE permissionType) {}
387 #endif
388
389 };
390
401 class IAgoraService {
402 public:
414 virtual int initialize(const AgoraServiceConfiguration& config) = 0;
415
419 virtual void atExit() = 0;
420
428 virtual int release() = 0;
429
439 virtual int setAudioSessionPreset(agora::rtc::AUDIO_SCENARIO_TYPE scenario) = 0;
440
449 virtual int setAudioSessionConfiguration(const AudioSessionConfiguration& config) = 0;
450
459 virtual int getAudioSessionConfiguration(AudioSessionConfiguration* config) = 0;
460
480 virtual int setLogFile(const char* filePath, unsigned int fileSize) = 0;
499 virtual int setLogFilter(unsigned int filters) = 0;
500
509 virtual agora_refptr<rtc::IRtcConnection> createRtcConnection(
510 const rtc::RtcConnectionConfiguration& cfg) = 0;
511
512 virtual agora_refptr<rtc::IRtmpConnection> createRtmpConnection(
513 const rtc::RtmpConnectionConfiguration& cfg) = 0;
514
526 virtual agora_refptr<rtc::ILocalAudioTrack> createLocalAudioTrack() = 0;
527
537 virtual agora_refptr<rtc::ILocalAudioTrack> createLocalMixedAudioTrack() = 0;
538
550 virtual agora_refptr<rtc::ILocalAudioTrack> createCustomAudioTrack(
551 agora_refptr<rtc::IAudioPcmDataSender> audioSource) = 0;
552
565 virtual agora_refptr<rtc::ILocalAudioTrack> createDirectCustomAudioTrack(
566 agora_refptr<rtc::IAudioPcmDataSender> audioSource) = 0;
567
580 virtual agora_refptr<rtc::ILocalAudioTrack> createCustomAudioTrack(
581 agora_refptr<rtc::IAudioPcmDataSender> audioSource, bool enableAec) = 0;
582
594 virtual agora_refptr<rtc::ILocalAudioTrack> createCustomAudioTrack(
595 agora_refptr<rtc::IRemoteAudioMixerSource> audioSource) = 0;
596
609 virtual agora_refptr<rtc::ILocalAudioTrack> createCustomAudioTrack(
610 agora_refptr<rtc::IAudioEncodedFrameSender> audioSource, TMixMode mixMode) = 0;
612
623 virtual agora_refptr<rtc::ILocalAudioTrack> createCustomAudioTrack(
624 agora_refptr<rtc::IMediaPacketSender> source) = 0;
626
637 virtual agora_refptr<rtc::ILocalAudioTrack> createMediaPlayerAudioTrack(
638 agora_refptr<rtc::IMediaPlayerSource> audioSource) = 0;
639
651 virtual agora_refptr<rtc::ILocalAudioTrack> createMediaStreamingAudioTrack(
652 agora_refptr<rtc::IMediaStreamingSource> streamingSource) = 0;
653
666 virtual agora_refptr<rtc::ILocalAudioTrack> createRecordingDeviceAudioTrack(
667 agora_refptr<rtc::IRecordingDeviceSource> audioSource, bool enableAec, bool overlap, bool standaloneAdm) = 0;
668
676 virtual agora_refptr<rtc::INGAudioDeviceManager> createAudioDeviceManager() = 0;
677
685 virtual agora_refptr<rtc::IMediaNodeFactory> createMediaNodeFactory() = 0;
686
698 virtual agora_refptr<rtc::ILocalVideoTrack> createCameraVideoTrack(
699 agora_refptr<rtc::ICameraCapturer> videoSource, const char* id = OPTIONAL_NULLPTR) = 0;
700
711 virtual agora_refptr<rtc::ILocalVideoTrack> createScreenVideoTrack(
712 agora_refptr<rtc::IScreenCapturer> videoSource, const char* id = OPTIONAL_NULLPTR) = 0;
713
725 virtual agora_refptr<rtc::ILocalVideoTrack> createMixedVideoTrack(agora_refptr<rtc::IVideoMixerSource> videoSource,
726 const char* id = OPTIONAL_NULLPTR) = 0;
727
739 virtual agora_refptr<rtc::ILocalVideoTrack> createTranscodedVideoTrack(agora_refptr<rtc::IVideoFrameTransceiver> transceiver,
740 const char* id = OPTIONAL_NULLPTR) = 0;
741
743
753 virtual agora_refptr<rtc::ILocalVideoTrack> createCustomVideoTrack(
754 agora_refptr<rtc::IVideoFrameSender> videoSource, const char* id = OPTIONAL_NULLPTR) = 0;
756
769 virtual agora_refptr<rtc::ILocalVideoTrack> createCustomVideoTrack(
770 agora_refptr<rtc::IVideoEncodedImageSender> videoSource,
771 const rtc::SenderOptions& options,
772 const char* id = OPTIONAL_NULLPTR) = 0;
773
774 #if defined(__ANDROID__) || (defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE)
775
786 virtual agora_refptr<rtc::ILocalVideoTrack> createScreenCaptureVideoTrack(
787 agora_refptr<rtc::IScreenCapturer2> screen) = 0;
788
800 virtual agora_refptr<rtc::ILocalAudioTrack> createScreenCaptureAudioTrack(
801 agora_refptr<rtc::IScreenCapturer2> screen) = 0;
802 #else
803
814 virtual agora_refptr<rtc::ILocalVideoTrack> createScreenCaptureVideoTrack(
815 agora_refptr<rtc::IScreenCapturer> screen, const char* id = OPTIONAL_NULLPTR) = 0;
816 #endif
817
819
829 virtual agora_refptr<rtc::ILocalVideoTrack> createCustomVideoTrack(
830 agora_refptr<rtc::IMediaPacketSender> source, const char* id = OPTIONAL_NULLPTR) = 0;
832
842 virtual agora_refptr<rtc::ILocalVideoTrack> createMediaPlayerVideoTrack(
843 agora_refptr<rtc::IMediaPlayerSource> videoSource, const char* id = OPTIONAL_NULLPTR) = 0;
844
855 virtual agora_refptr<rtc::ILocalVideoTrack> createMediaStreamingVideoTrack(
856 agora_refptr<rtc::IMediaStreamingSource> streamingSource, const char* id = OPTIONAL_NULLPTR) = 0;
857
858
868 virtual agora_refptr<rtc::IRtmpStreamingService> createRtmpStreamingService(
869 agora_refptr<rtc::IRtcConnection> rtcConnection, const char* appId) = 0;
870
881 virtual agora_refptr<rtc::IMediaRelayService> createMediaRelayService(
882 agora_refptr<rtc::IRtcConnection> rtcConnection, const char* appId) = 0;
883
894 virtual agora_refptr<rtc::IFileUploaderService> createFileUploadService(
895 agora_refptr<rtc::IRtcConnection> rtcConnection, const char* appId) = 0;
896
904 virtual rtm::IRtmService* createRtmService() = 0;
905
906 virtual int addExtensionObserver(agora::agora_refptr<agora::rtc::IMediaExtensionObserver> observer) = 0;
907
908 virtual int removeExtensionObserver(agora::agora_refptr<agora::rtc::IMediaExtensionObserver> observer) = 0;
909
917 virtual agora_refptr<rtc::IAudioDeviceManager> createAudioDeviceManagerComponent(
918 rtc::IAudioDeviceManagerObserver *observer) = 0;
919
927 virtual agora_refptr<ILocalDataChannel> createLocalDataChannel(const DataChannelConfig& config) = 0;
928
937 virtual const char* getExtensionId(const char* provider_name, const char* extension_name) = 0;
938
939 #if defined (_WIN32) || defined(__linux__) || defined(__ANDROID__)
940
947 virtual int loadExtensionProvider(const char* path, bool unload_after_use = false) = 0;
948 #endif
949
962 virtual int enableExtension(
963 const char* provider_name, const char* extension_name, const char* track_id = NULL,
964 bool auto_enable_on_track = false) = 0;
976 virtual int disableExtension(
977 const char* provider_name, const char* extension_name, const char* track_id = NULL) = 0;
978
986 virtual agora_refptr<rtc::IConfigCenter> getConfigCenter() = 0;
987
988 protected:
989 virtual ~IAgoraService() {}
990 };
991
992 } // namespace base
993 } // namespace agora
994
1005 AGORA_API agora::base::IAgoraService* AGORA_CALL createAgoraService();
agora::base::AgoraServiceConfiguration::useExternalEglContext
bool useExternalEglContext
Definition: IAgoraService.h:155
agora::base::IAgoraService::createRtmService
virtual rtm::IRtmService * createRtmService()=0
agora::CHANNEL_PROFILE_LIVE_BROADCASTING
@ CHANNEL_PROFILE_LIVE_BROADCASTING
Definition: AgoraBase.h:268
agora::base::IAgoraService
Definition: IAgoraService.h:401
agora::ERROR_CODE_TYPE
ERROR_CODE_TYPE
Definition: AgoraBase.h:441
agora::rtc::SenderOptions
Definition: AgoraBase.h:1205
agora::base::IAgoraService::createCustomAudioTrack
virtual agora_refptr< rtc::ILocalAudioTrack > createCustomAudioTrack(agora_refptr< rtc::IAudioEncodedFrameSender > audioSource, TMixMode mixMode)=0
agora::base::IAgoraService::createMixedVideoTrack
virtual agora_refptr< rtc::ILocalVideoTrack > createMixedVideoTrack(agora_refptr< rtc::IVideoMixerSource > videoSource, const char *id=OPTIONAL_NULLPTR)=0
agora::base::AudioSessionConfiguration::outputNumberOfChannels
Optional< int > outputNumberOfChannels
Definition: IAgoraService.h:286
agora::base::AudioSessionConfiguration::ioBufferDuration
Optional< double > ioBufferDuration
Definition: IAgoraService.h:278
agora::base::AudioSessionConfiguration::allowDuckOthers
Optional< bool > allowDuckOthers
Definition: IAgoraService.h:241
agora::base::IAgoraService::createFileUploadService
virtual agora_refptr< rtc::IFileUploaderService > createFileUploadService(agora_refptr< rtc::IRtcConnection > rtcConnection, const char *appId)=0
agora::base::IAgoraService::createDirectCustomAudioTrack
virtual agora_refptr< rtc::ILocalAudioTrack > createDirectCustomAudioTrack(agora_refptr< rtc::IAudioPcmDataSender > audioSource)=0
AgoraBase.h
agora::base::IAgoraService::createTranscodedVideoTrack
virtual agora_refptr< rtc::ILocalVideoTrack > createTranscodedVideoTrack(agora_refptr< rtc::IVideoFrameTransceiver > transceiver, const char *id=OPTIONAL_NULLPTR)=0
agora::base::IAgoraService::createRtmpStreamingService
virtual agora_refptr< rtc::IRtmpStreamingService > createRtmpStreamingService(agora_refptr< rtc::IRtcConnection > rtcConnection, const char *appId)=0
agora::agora_refptr
Definition: AgoraRefPtr.h:44
agora::base::IAgoraService::createScreenCaptureVideoTrack
virtual agora_refptr< rtc::ILocalVideoTrack > createScreenCaptureVideoTrack(agora_refptr< rtc::IScreenCapturer2 > screen)=0
agora::base::AgoraServiceConfiguration
Definition: IAgoraService.h:79
agora::base::IAgoraService::~IAgoraService
virtual ~IAgoraService()
Definition: IAgoraService.h:989
agora::base::AgoraServiceConfiguration::domainLimit
bool domainLimit
Definition: IAgoraService.h:162
agora::base::IAgoraService::initialize
virtual int initialize(const AgoraServiceConfiguration &config)=0
agora::base::MIX_DISABLED
@ MIX_DISABLED
Definition: IAgoraService.h:348
agora::base::IAgoraService::setAudioSessionConfiguration
virtual int setAudioSessionConfiguration(const AudioSessionConfiguration &config)=0
agora::rtc::CONFIG_FETCH_TYPE
CONFIG_FETCH_TYPE
Definition: AgoraBase.h:6010
agora::base::AudioSessionConfiguration::allowBluetoothA2DP
Optional< bool > allowBluetoothA2DP
Definition: IAgoraService.h:264
agora::rtm::IRtmService
Definition: IAgoraRtmService.h:636
agora::base::AudioSessionConfiguration::playbackAndRecord
Optional< bool > playbackAndRecord
Definition: IAgoraService.h:196
agora::base::AudioSessionConfiguration::sampleRate
Optional< double > sampleRate
Definition: IAgoraService.h:271
agora::base::AgoraServiceConfiguration::appId
const char * appId
Definition: IAgoraService.h:112
agora::base::AgoraServiceConfiguration::channelProfile
agora::CHANNEL_PROFILE_TYPE channelProfile
Definition: IAgoraService.h:121
agora::base::AudioSessionConfiguration::chatMode
Optional< bool > chatMode
Definition: IAgoraService.h:205
agora::base::IAgoraService::createAudioDeviceManagerComponent
virtual agora_refptr< rtc::IAudioDeviceManager > createAudioDeviceManagerComponent(rtc::IAudioDeviceManagerObserver *observer)=0
agora::base::IServiceObserver
Definition: IAgoraService.h:354
agora::base::IServiceObserver::onFetchConfigResult
virtual void onFetchConfigResult(int code, rtc::CONFIG_FETCH_TYPE configType, const char *configContent)
Definition: IAgoraService.h:379
agora::base::AudioSessionConfiguration::operator!=
bool operator!=(const AudioSessionConfiguration &o) const
Definition: IAgoraService.h:327
agora::rtc::AUDIO_SCENARIO_DEFAULT
@ AUDIO_SCENARIO_DEFAULT
Definition: AgoraBase.h:2466
agora::base::IAgoraService::getExtensionId
virtual const char * getExtensionId(const char *provider_name, const char *extension_name)=0
Get the ID of the registered extension.
agora::rtc::RtmpConnectionConfiguration
Definition: NGIAgoraRtmpConnection.h:230
agora::base::AudioSessionConfiguration::allowBluetooth
Optional< bool > allowBluetooth
Definition: IAgoraService.h:252
createAgoraService
AGORA_API agora::base::IAgoraService *AGORA_CALL createAgoraService()
agora::base::AgoraServiceConfiguration::enableAudioProcessor
bool enableAudioProcessor
Definition: IAgoraService.h:85
agora::base::IAgoraService::getConfigCenter
virtual agora_refptr< rtc::IConfigCenter > getConfigCenter()=0
agora::base::AudioSessionConfiguration::defaultToSpeaker
Optional< bool > defaultToSpeaker
Definition: IAgoraService.h:214
agora::rtc::AudioEncoderConfiguration::AudioEncoderConfiguration
AudioEncoderConfiguration()
Definition: IAgoraService.h:62
agora
Definition: AgoraAtomicOps.h:21
agora::base::IAgoraService::createCustomAudioTrack
virtual agora_refptr< rtc::ILocalAudioTrack > createCustomAudioTrack(agora_refptr< rtc::IMediaPacketSender > source)=0
agora::base::IAgoraService::createScreenVideoTrack
virtual agora_refptr< rtc::ILocalVideoTrack > createScreenVideoTrack(agora_refptr< rtc::IScreenCapturer > videoSource, const char *id=OPTIONAL_NULLPTR)=0
agora::base::IAgoraService::createMediaStreamingVideoTrack
virtual agora_refptr< rtc::ILocalVideoTrack > createMediaStreamingVideoTrack(agora_refptr< rtc::IMediaStreamingSource > streamingSource, const char *id=OPTIONAL_NULLPTR)=0
agora::base::IAgoraService::createRecordingDeviceAudioTrack
virtual agora_refptr< rtc::ILocalAudioTrack > createRecordingDeviceAudioTrack(agora_refptr< rtc::IRecordingDeviceSource > audioSource, bool enableAec, bool overlap, bool standaloneAdm)=0
agora::base::AgoraServiceConfiguration::logConfig
commons::LogConfig logConfig
Definition: IAgoraService.h:135
agora::rtc::PERMISSION_TYPE
PERMISSION_TYPE
Definition: AgoraBase.h:5667
agora::base::IAgoraService::createCustomVideoTrack
virtual agora_refptr< rtc::ILocalVideoTrack > createCustomVideoTrack(agora_refptr< rtc::IMediaPacketSender > source, const char *id=OPTIONAL_NULLPTR)=0
agora::base::IAgoraService::enableExtension
virtual int enableExtension(const char *provider_name, const char *extension_name, const char *track_id=NULL, bool auto_enable_on_track=false)=0
agora::base::IAgoraService::createRtmpConnection
virtual agora_refptr< rtc::IRtmpConnection > createRtmpConnection(const rtc::RtmpConnectionConfiguration &cfg)=0
agora::base::AgoraServiceConfiguration::areaCode
unsigned int areaCode
Definition: IAgoraService.h:117
agora::base::IAgoraService::createCustomVideoTrack
virtual agora_refptr< rtc::ILocalVideoTrack > createCustomVideoTrack(agora_refptr< rtc::IVideoEncodedImageSender > videoSource, const rtc::SenderOptions &options, const char *id=OPTIONAL_NULLPTR)=0
agora::base::AgoraServiceConfiguration::serviceObserver
IServiceObserver * serviceObserver
Definition: IAgoraService.h:143
agora::base::AudioSessionConfiguration
Definition: IAgoraService.h:183
agora::CHANNEL_PROFILE_TYPE
CHANNEL_PROFILE_TYPE
Definition: AgoraBase.h:256
agora::rtc::AudioEncoderConfiguration::audioProfile
AUDIO_PROFILE_TYPE audioProfile
Definition: IAgoraService.h:60
agora::base::IAgoraService::createScreenCaptureAudioTrack
virtual agora_refptr< rtc::ILocalAudioTrack > createScreenCaptureAudioTrack(agora_refptr< rtc::IScreenCapturer2 > screen)=0
agora::base::IAgoraService::setAudioSessionPreset
virtual int setAudioSessionPreset(agora::rtc::AUDIO_SCENARIO_TYPE scenario)=0
agora::base::IAgoraService::createCustomVideoTrack
virtual agora_refptr< rtc::ILocalVideoTrack > createCustomVideoTrack(agora_refptr< rtc::IVideoFrameSender > videoSource, const char *id=OPTIONAL_NULLPTR)=0
agora::base::IAgoraService::getAudioSessionConfiguration
virtual int getAudioSessionConfiguration(AudioSessionConfiguration *config)=0
AGORA_API
#define AGORA_API
Definition: AgoraBase.h:60
agora::base::IAgoraService::createMediaPlayerVideoTrack
virtual agora_refptr< rtc::ILocalVideoTrack > createMediaPlayerVideoTrack(agora_refptr< rtc::IMediaPlayerSource > videoSource, const char *id=OPTIONAL_NULLPTR)=0
agora::base::IAgoraService::createMediaRelayService
virtual agora_refptr< rtc::IMediaRelayService > createMediaRelayService(agora_refptr< rtc::IRtcConnection > rtcConnection, const char *appId)=0
agora::base::IServiceObserver::onPermissionError
virtual void onPermissionError(agora::rtc::PERMISSION_TYPE permissionType)
Definition: IAgoraService.h:362
agora::base::AgoraServiceConfiguration::enableAudioDevice
bool enableAudioDevice
Definition: IAgoraService.h:96
agora::base::IAgoraService::setLogFilter
virtual int setLogFilter(unsigned int filters)=0
agora::base::IAgoraService::createMediaPlayerAudioTrack
virtual agora_refptr< rtc::ILocalAudioTrack > createMediaPlayerAudioTrack(agora_refptr< rtc::IMediaPlayerSource > audioSource)=0
agora::base::AudioSessionConfiguration::inputNumberOfChannels
Optional< int > inputNumberOfChannels
Definition: IAgoraService.h:282
agora::base::IAgoraService::createCameraVideoTrack
virtual agora_refptr< rtc::ILocalVideoTrack > createCameraVideoTrack(agora_refptr< rtc::ICameraCapturer > videoSource, const char *id=OPTIONAL_NULLPTR)=0
agora::base::IAgoraService::addExtensionObserver
virtual int addExtensionObserver(agora::agora_refptr< agora::rtc::IMediaExtensionObserver > observer)=0
agora::commons::LogConfig
Definition: IAgoraLog.h:82
IAgoraLog.h
agora::base::IAgoraService::atExit
virtual void atExit()=0
agora::rtc::AUDIO_SCENARIO_TYPE
AUDIO_SCENARIO_TYPE
Definition: AgoraBase.h:2461
agora::base::AgoraServiceConfiguration::license
const char * license
Definition: IAgoraService.h:126
agora::base::IAgoraService::createRtcConnection
virtual agora_refptr< rtc::IRtcConnection > createRtcConnection(const rtc::RtcConnectionConfiguration &cfg)=0
agora::base::AgoraServiceConfiguration::threadPriority
Optional< rtc::THREAD_PRIORITY_TYPE > threadPriority
Definition: IAgoraService.h:148
AgoraOptional.h
agora::base::AgoraServiceConfiguration::enableVideo
bool enableVideo
Definition: IAgoraService.h:102
agora::rtc::IAudioDeviceManagerObserver
Definition: NGIAgoraAudioDeviceManager.h:45
agora::base::IAgoraService::createCustomAudioTrack
virtual agora_refptr< rtc::ILocalAudioTrack > createCustomAudioTrack(agora_refptr< rtc::IAudioPcmDataSender > audioSource, bool enableAec)=0
agora::base::IServiceObserver::~IServiceObserver
virtual ~IServiceObserver()
Definition: IAgoraService.h:356
agora::base::AgoraServiceConfiguration::AgoraServiceConfiguration
AgoraServiceConfiguration()
Definition: IAgoraService.h:164
agora::rtc::RtcConnectionConfiguration
Definition: NGIAgoraRtcConnection.h:88
agora::base::IServiceObserver::onAudioDeviceError
virtual void onAudioDeviceError(ERROR_CODE_TYPE error, const char *description)
Definition: IAgoraService.h:367
agora::base::MIX_ENABLED
@ MIX_ENABLED
Definition: IAgoraService.h:344
agora::base::IAgoraService::createCustomAudioTrack
virtual agora_refptr< rtc::ILocalAudioTrack > createCustomAudioTrack(agora_refptr< rtc::IAudioPcmDataSender > audioSource)=0
agora::base::AgoraServiceConfiguration::useStringUid
bool useStringUid
Definition: IAgoraService.h:139
agora::rtc::AudioEncoderConfiguration
Definition: IAgoraService.h:56
agora::base::IAgoraService::createCustomAudioTrack
virtual agora_refptr< rtc::ILocalAudioTrack > createCustomAudioTrack(agora_refptr< rtc::IRemoteAudioMixerSource > audioSource)=0
OPTIONAL_NULLPTR
#define OPTIONAL_NULLPTR
Definition: AgoraBase.h:79
agora::base::IAgoraService::removeExtensionObserver
virtual int removeExtensionObserver(agora::agora_refptr< agora::rtc::IMediaExtensionObserver > observer)=0
agora::base::AudioSessionConfiguration::operator==
bool operator==(const AudioSessionConfiguration &o) const
Definition: IAgoraService.h:313
agora::base::IAgoraService::createLocalMixedAudioTrack
virtual agora_refptr< rtc::ILocalAudioTrack > createLocalMixedAudioTrack()=0
agora::rtc::AUDIO_PROFILE_TYPE
AUDIO_PROFILE_TYPE
Definition: AgoraBase.h:2415
agora::base::AudioSessionConfiguration::SetFrom
static void SetFrom(Optional< T > *s, const Optional< T > &o)
Definition: IAgoraService.h:331
agora::base::IAgoraService::createLocalDataChannel
virtual agora_refptr< ILocalDataChannel > createLocalDataChannel(const DataChannelConfig &config)=0
agora::base::AgoraServiceConfiguration::context
void * context
Definition: IAgoraService.h:108
agora::base::IAgoraService::setLogFile
virtual int setLogFile(const char *filePath, unsigned int fileSize)=0
agora::DataChannelConfig
Definition: NGIAgoraDataChannel.h:17
agora::base::IAgoraService::createLocalAudioTrack
virtual agora_refptr< rtc::ILocalAudioTrack > createLocalAudioTrack()=0
agora::base::IAgoraService::disableExtension
virtual int disableExtension(const char *provider_name, const char *extension_name, const char *track_id=NULL)=0
agora::base::AudioSessionConfiguration::SetAll
void SetAll(const AudioSessionConfiguration &change)
Definition: IAgoraService.h:295
agora::rtc::AREA_CODE_GLOB
@ AREA_CODE_GLOB
Definition: AgoraBase.h:5195
AGORA_CALL
#define AGORA_CALL
Definition: AgoraBase.h:61
agora::base::AudioSessionConfiguration::overrideSpeaker
Optional< bool > overrideSpeaker
Definition: IAgoraService.h:223
agora::base::AgoraServiceConfiguration::audioScenario
rtc::AUDIO_SCENARIO_TYPE audioScenario
Definition: IAgoraService.h:131
agora::base::TMixMode
TMixMode
Definition: IAgoraService.h:340
agora::base::IAgoraService::createMediaStreamingAudioTrack
virtual agora_refptr< rtc::ILocalAudioTrack > createMediaStreamingAudioTrack(agora_refptr< rtc::IMediaStreamingSource > streamingSource)=0
agora::base::IAgoraService::createMediaNodeFactory
virtual agora_refptr< rtc::IMediaNodeFactory > createMediaNodeFactory()=0
agora::base::IAgoraService::release
virtual int release()=0
agora::base::IAgoraService::createAudioDeviceManager
virtual agora_refptr< rtc::INGAudioDeviceManager > createAudioDeviceManager()=0
agora::Optional< rtc::THREAD_PRIORITY_TYPE >
agora::base::AudioSessionConfiguration::allowMixWithOthers
Optional< bool > allowMixWithOthers
Definition: IAgoraService.h:232
agora::rtc::AUDIO_PROFILE_DEFAULT
@ AUDIO_PROFILE_DEFAULT
Definition: AgoraBase.h:2424