Inherited by agora::media::IMediaEngineEx.
|
virtual int | registerAudioFrameObserver (IAudioFrameObserver *observer)=0 |
|
virtual int | registerVideoFrameObserver (IVideoFrameObserver *observer)=0 |
|
virtual int | registerVideoEncodedFrameObserver (IVideoEncodedFrameObserver *observer)=0 |
|
virtual int | registerFaceInfoObserver (IFaceInfoObserver *observer)=0 |
|
virtual int | pushAudioFrame (IAudioFrameObserverBase::AudioFrame *frame, rtc::track_id_t trackId=0)=0 |
|
virtual int | pullAudioFrame (IAudioFrameObserverBase::AudioFrame *frame)=0 |
|
virtual int | setExternalVideoSource (bool enabled, bool useTexture, EXTERNAL_VIDEO_SOURCE_TYPE sourceType=VIDEO_FRAME, rtc::SenderOptions encodedVideoOption=rtc::SenderOptions())=0 |
|
virtual int | setExternalAudioSource (bool enabled, int sampleRate, int channels, bool localPlayback=false, bool publish=true) __deprecated=0 |
|
virtual rtc::track_id_t | createCustomAudioTrack (rtc::AUDIO_TRACK_TYPE trackType, const rtc::AudioTrackConfig &config)=0 |
|
virtual int | destroyCustomAudioTrack (rtc::track_id_t trackId)=0 |
|
virtual int | setExternalAudioSink (bool enabled, int sampleRate, int channels)=0 |
|
virtual int | enableCustomAudioLocalPlayback (rtc::track_id_t trackId, bool enabled)=0 |
|
virtual int | pushVideoFrame (base::ExternalVideoFrame *frame, unsigned int videoTrackId=0)=0 |
|
virtual int | pushEncodedVideoImage (const unsigned char *imageBuffer, size_t length, const agora::rtc::EncodedVideoFrameInfo &videoEncodedFrameInfo, unsigned int videoTrackId=0)=0 |
|
virtual int | addVideoFrameRenderer (IVideoFrameObserver *renderer)=0 |
|
virtual int | removeVideoFrameRenderer (IVideoFrameObserver *renderer)=0 |
|
virtual void | release ()=0 |
|
◆ ~IMediaEngine()
virtual agora::media::IMediaEngine::~IMediaEngine |
( |
| ) |
|
|
inlineprotectedvirtual |
◆ registerAudioFrameObserver()
virtual int agora::media::IMediaEngine::registerAudioFrameObserver |
( |
IAudioFrameObserver * |
observer | ) |
|
|
pure virtual |
Registers an audio frame observer object.
- Note
- Ensure that you call this method before joinChannel.
- Parameters
-
observer | A pointer to the audio frame observer object: IAudioFrameObserver, nullptr means unregistering observer instead. |
- Returns
- 0: Success.
- < 0: Failure.
◆ registerVideoFrameObserver()
virtual int agora::media::IMediaEngine::registerVideoFrameObserver |
( |
IVideoFrameObserver * |
observer | ) |
|
|
pure virtual |
Registers a video frame observer object.
- Note
- Ensure that you call this method before joining the channel.
- If you register an observer for video raw video data, you cannot register an IVideoEncodedFrameObserver object.
- Parameters
-
- Returns
- 0: Success.
- < 0: Failure.
◆ registerVideoEncodedFrameObserver()
Registers a receiver object for the encoded video image.
- Note
- Ensure that you call this method before joining the channel.
- Parameters
-
- Returns
- 0: Success.
- < 0: Failure.
◆ registerFaceInfoObserver()
virtual int agora::media::IMediaEngine::registerFaceInfoObserver |
( |
IFaceInfoObserver * |
observer | ) |
|
|
pure virtual |
Registers a face info observer object.
- Note
- Ensure that you call this method before joinChannel.
- Parameters
-
- Returns
- 0: Success.
- < 0: Failure.
◆ pushAudioFrame()
Pushes the external audio data to the app.
- Parameters
-
frame | The audio buffer data. |
trackId | The audio track ID. |
- Returns
- 0: Success.
- < 0: Failure.
◆ pullAudioFrame()
Pulls the remote audio data.
After a successful method call, the app pulls the decoded and mixed audio data for playback.
The difference between this method and the onPlaybackAudioFrame is as follows:
onPlaybackAudioFrame
: The SDK sends the audio data to the app once every 10 ms. Any delay in processing the audio frames may result in audio jitter.
pullAudioFrame
: The app pulls the remote audio data. After setting the audio data parameters, the SDK adjusts the frame buffer and avoids problems caused by jitter in the external audio playback.
- Parameters
-
frame | The pointer to the audio frame: AudioFrame. |
- Returns
- 0: Success.
- < 0: Failure.
◆ setExternalVideoSource()
Sets the external video source.
Once the external video source is enabled, the SDK prepares to accept the external video frame.
- Parameters
-
enabled | Determines whether to enable the external video source.
- true: Enable the external video source. Once set, the SDK creates the external source and prepares video data from
pushVideoFrame or pushEncodedVideoImage .
- false: Disable the external video source.
|
useTexture | Determines whether to use textured video data.
- true: Use texture, which is not supported now.
- False: Do not use texture.
|
sourceType | Determines the type of external video source frame.
- ENCODED_VIDEO_FRAME: The external video source is encoded.
- VIDEO_FRAME: The external video source is not encoded.
|
encodedVideoOption | Video encoded track option, which is only used for ENCODED_VIDEO_FRAME. |
- Returns
- 0: Success.
- < 0: Failure.
◆ setExternalAudioSource()
virtual int agora::media::IMediaEngine::setExternalAudioSource |
( |
bool |
enabled, |
|
|
int |
sampleRate, |
|
|
int |
channels, |
|
|
bool |
localPlayback = false , |
|
|
bool |
publish = true |
|
) |
| |
|
pure virtual |
Sets the external audio source.
- Note
- Ensure that you call this method before joining the channel.
- Deprecated:
- This method is deprecated. Use createCustomAudioTrack(rtc::AUDIO_TRACK_TYPE trackType, const rtc::AudioTrackConfig& config) instead.
- Parameters
-
enabled | Determines whether to enable the external audio source:
- true: Enable the external audio source.
- false: (default) Disable the external audio source.
|
sampleRate | The Sample rate (Hz) of the external audio source, which can set be as 8000, 16000, 32000, 44100, or 48000. |
channels | The number of channels of the external audio source, which can be set as 1 or 2:
|
localPlayback | Enable/Disables the local playback of external audio track:
- true: Enable local playback
- false: (Default) Do not enable local playback
|
publish | Determines whether to publish the external audio track:
- true: (Default) Publish the external audio track.
- false: Don`t publish the external audio track.
|
- Returns
- 0: Success.
- < 0: Failure.
◆ createCustomAudioTrack()
Create a custom audio track and get the audio track id.
- Note
- Ensure that you call this method before calling
joinChannel
.
- Parameters
-
trackType | The type of custom audio track See AUDIO_TRACK_TYPE. |
config | The config of custom audio track See AudioTrackConfig. |
- Returns
- If the call is successful, SDK returns audio track id.
- If the call fails, SDK returns 0xffffffff.
◆ destroyCustomAudioTrack()
virtual int agora::media::IMediaEngine::destroyCustomAudioTrack |
( |
rtc::track_id_t |
trackId | ) |
|
|
pure virtual |
Destroy custom audio track by trackId
- Parameters
-
trackId | The custom audio track id. |
- Returns
- 0: Success.
- < 0: Failure.
◆ setExternalAudioSink()
virtual int agora::media::IMediaEngine::setExternalAudioSink |
( |
bool |
enabled, |
|
|
int |
sampleRate, |
|
|
int |
channels |
|
) |
| |
|
pure virtual |
Sets the external audio sink.
This method applies to scenarios where you want to use external audio data for playback. After calling the initialize method and pass value of false in the enableAudioDevice
member in the RtcEngineContext struct, you can call the pullAudioFrame method to pull the remote audio data, process it, and play it with the audio effects that you want.
- Note
- Once you call the initialize method and pass value of false in the
enableAudioDevice
member in the RtcEngineContext struct, the app will not retrieve any audio data from the onPlaybackAudioFrame callback.
- Parameters
-
enabled | Sets whether or not to the external audio sink
- true: Enables the external audio sink.
- false: Disables the external audio sink.
|
sampleRate | Sets the sample rate (Hz) of the external audio sink, which can be set as 16000, 32000, 44100 or 48000. |
channels | Sets the number of audio channels of the external audio sink:
|
- Returns
- 0: Success.
- < 0: Failure.
◆ enableCustomAudioLocalPlayback()
virtual int agora::media::IMediaEngine::enableCustomAudioLocalPlayback |
( |
rtc::track_id_t |
trackId, |
|
|
bool |
enabled |
|
) |
| |
|
pure virtual |
Sets the external audio track.
- Note
- Ensure that you call this method before joining the channel.
- Parameters
-
trackId | The custom audio track id. |
enabled | Enable/Disables the local playback of external audio track:
- true: Enable local playback
- false: Do not enable local playback
|
- Returns
- 0: Success.
- < 0: Failure.
◆ pushVideoFrame()
virtual int agora::media::IMediaEngine::pushVideoFrame |
( |
base::ExternalVideoFrame * |
frame, |
|
|
unsigned int |
videoTrackId = 0 |
|
) |
| |
|
pure virtual |
Pushes the external video frame to the app.
- Parameters
-
frame | The external video frame: ExternalVideoFrame. |
videoTrackId | The id of the video track.
- 0: Success.
- < 0: Failure.
|
◆ pushEncodedVideoImage()
virtual int agora::media::IMediaEngine::pushEncodedVideoImage |
( |
const unsigned char * |
imageBuffer, |
|
|
size_t |
length, |
|
|
const agora::rtc::EncodedVideoFrameInfo & |
videoEncodedFrameInfo, |
|
|
unsigned int |
videoTrackId = 0 |
|
) |
| |
|
pure virtual |
Pushes the encoded video image to the app.
- Parameters
-
imageBuffer | A pointer to the video image. |
length | The data length. |
videoEncodedFrameInfo | The reference to the information of the encoded video frame: EncodedVideoFrameInfo. |
videoTrackId | The id of the video track.
- 0: Success.
- < 0: Failure.
|
◆ addVideoFrameRenderer()
virtual int agora::media::IMediaEngine::addVideoFrameRenderer |
( |
IVideoFrameObserver * |
renderer | ) |
|
|
pure virtual |
@hide For internal usage only
◆ removeVideoFrameRenderer()
virtual int agora::media::IMediaEngine::removeVideoFrameRenderer |
( |
IVideoFrameObserver * |
renderer | ) |
|
|
pure virtual |
@hide For internal usage only
◆ release()
virtual void agora::media::IMediaEngine::release |
( |
| ) |
|
|
pure virtual |