Agora Java API Reference for Android
IAgoraMediaEngine.h
1 //
2 // Agora Media SDK
3 //
4 // Copyright (c) 2015 Agora IO. All rights reserved.
5 //
6 #pragma once
7 
8 #include <stdint.h>
9 #include "IAgoraRtcEngineEx.h"
10 
11 namespace agora {
12 namespace media {
16 class IMediaEngine {
17  public:
30  virtual int registerAudioFrameObserver(IAudioFrameObserver* observer) = 0;
44  virtual int registerVideoFrameObserver(IVideoFrameObserver* observer) = 0;
45 
62 
74  virtual int pushAudioFrame(MEDIA_SOURCE_TYPE type, IAudioFrameObserver::AudioFrame* frame,
75  bool wrap = false, int sourceId = 0) = 0;
76 
77  virtual int pushCaptureAudioFrame(IAudioFrameObserver::AudioFrame* frame) = 0;
78 
79  virtual int pushReverseAudioFrame(IAudioFrameObserver::AudioFrame* frame) = 0;
89 
107 
129  bool enabled, bool useTexture, EXTERNAL_VIDEO_SOURCE_TYPE sourceType = VIDEO_FRAME,
130  rtc::SenderOptions encodedVideoOption = rtc::SenderOptions()) = 0;
131 
151  virtual int setExternalAudioSource(bool enabled, int sampleRate, int channels, int sourceNumber = 1, bool localPlayback = false, bool publish = true) = 0;
152 
177  virtual int setExternalAudioSink(int sampleRate, int channels) = 0;
178 
193  virtual int enableCustomAudioLocalPlayback(int sourceId, bool enabled) = 0;
194 
204  virtual int setDirectExternalAudioSource(bool enable, bool localPlayback = false) = 0;
205 
214  virtual int pushVideoFrame(base::ExternalVideoFrame* frame) = 0;
215  virtual int pushVideoFrame(base::ExternalVideoFrame* frame, const rtc::RtcConnection& connection) = 0;
216 
227  virtual int pushEncodedVideoImage(const uint8_t* imageBuffer, size_t length,
228  const agora::rtc::EncodedVideoFrameInfo& videoEncodedFrameInfo) = 0;
229 
230  virtual int pushEncodedVideoImage(const uint8_t* imageBuffer, size_t length,
231  const agora::rtc::EncodedVideoFrameInfo& videoEncodedFrameInfo,
232  const rtc::RtcConnection& connection) = 0;
233 
234  virtual void release() = 0;
235 
236  protected:
237  virtual ~IMediaEngine() {}
238 };
239 
240 } // namespace media
241 
242 } // namespace agora
agora::media::IMediaEngine::pullAudioFrame
virtual int pullAudioFrame(IAudioFrameObserver::AudioFrame *frame)=0
agora::rtc::SenderOptions
Definition: AgoraBase.h:1534
agora::media::IMediaEngine::setExternalAudioSink
virtual int setExternalAudioSink(int sampleRate, int channels)=0
agora::media::IMediaEngine::registerVideoEncodedImageReceiver
virtual int registerVideoEncodedImageReceiver(rtc::IVideoEncodedImageReceiver *receiver)=0
agora::media::IMediaEngine::registerVideoFrameObserver
virtual int registerVideoFrameObserver(IVideoFrameObserver *observer)=0
agora::rtc::EncodedVideoFrameInfo
Definition: AgoraBase.h:1870
agora::media::IVideoFrameObserver
Definition: AgoraMediaBase.h:1028
agora::media::IAudioFrameObserverBase::AudioFrame
Definition: AgoraMediaBase.h:808
agora::media::IAudioFrameObserver
Definition: AgoraMediaBase.h:918
agora::media::IMediaEngine::registerAudioFrameObserver
virtual int registerAudioFrameObserver(IAudioFrameObserver *observer)=0
agora::media::IMediaEngine::setExternalAudioSource
virtual int setExternalAudioSource(bool enabled, int sampleRate, int channels, int sourceNumber=1, bool localPlayback=false, bool publish=true)=0
agora::media::base::ExternalVideoFrame
Definition: AgoraMediaBase.h:515
agora::rtc::RtcConnection
Definition: IAgoraRtcEngineEx.h:36
agora::media::IMediaEngine::pushAudioFrame
virtual int pushAudioFrame(MEDIA_SOURCE_TYPE type, IAudioFrameObserver::AudioFrame *frame, bool wrap=false, int sourceId=0)=0
agora::media::IMediaEngine::setExternalVideoSource
virtual int setExternalVideoSource(bool enabled, bool useTexture, EXTERNAL_VIDEO_SOURCE_TYPE sourceType=VIDEO_FRAME, rtc::SenderOptions encodedVideoOption=rtc::SenderOptions())=0
agora::rtc::IVideoEncodedImageReceiver
Definition: AgoraBase.h:3277
agora::media::IMediaEngine::setDirectExternalAudioSource
virtual int setDirectExternalAudioSource(bool enable, bool localPlayback=false)=0
Enable/Disable the direct external audio source.
agora::media::IMediaEngine::pushDirectAudioFrame
virtual int pushDirectAudioFrame(IAudioFrameObserver::AudioFrame *frame)=0
Directly push audio frame to the rtc channel without mixing with other sources.
agora::media::IMediaEngine
Definition: IAgoraMediaEngine.h:16
agora::media::IMediaEngine::pushEncodedVideoImage
virtual int pushEncodedVideoImage(const uint8_t *imageBuffer, size_t length, const agora::rtc::EncodedVideoFrameInfo &videoEncodedFrameInfo)=0
agora::media::IMediaEngine::pushVideoFrame
virtual int pushVideoFrame(base::ExternalVideoFrame *frame)=0
agora::media::IMediaEngine::enableCustomAudioLocalPlayback
virtual int enableCustomAudioLocalPlayback(int sourceId, bool enabled)=0