Public Member Functions

boolean onInitialize (IVideoFrameConsumer consumer)
 
boolean onStart ()
 
void onStop ()
 
void onDispose ()
 
int getBufferType ()
 

Detailed Description

The IVideoSource interface.

The IVideoSource interface defines a set of protocols to implement the custom video source and pass it to the underlying media engine to replace the default video source.

By default, when enabling real-time communications, the Agora SDK enables the default video input device (built-in camera) to start video streaming. The IVideoSource interface defines a set of protocols to create customized video source objects and pass them to the media engine to replace the default camera source so that you can take ownership of the video source and manipulate it.

Once you implement this interface, the Agora Media Engine automatically releases its ownership of the current video input device and pass it on to you, so that you can use the same video input device to capture the video stream.

Member Function Documentation

◆ onInitialize()

boolean io.agora.rtc.mediaio.IVideoSource.onInitialize ( IVideoFrameConsumer  consumer)

Initializes the video source.

This callback initializes the video source. You can enable the camera or initialize the video source and then pass one of the following return values to inform the media engine whether the video source is ready.

Parameters
consumerThe IVideoFrameConsumer object which the media engine passes back. You need to reserve this object and pass the video frame to the media engine through this object once the video source is initialized. See the following contents for the definition of IVideoFrameConsumer.
Note
When initializing the video source, you need to specify a buffer type in the getBufferType method and pass the video source in the specified type to the media engine.
Returns
  • true: The external video source is initialized.
  • false: The external video source is not ready or fails to initialize, the media engine stops and reports the error.

◆ onStart()

boolean io.agora.rtc.mediaio.IVideoSource.onStart ( )

Enables the video source.

The SDK triggers this callback when the underlying media engine is ready to start video streaming. You should start the video source to capture the video frame. Once the frame is ready, use IVideoFrameConsumer to consume the video frame.

Returns
  • true: The external video source is enabled and the SDK calls IVideoFrameConsumer to receive video frames.
  • false: The external video source is not ready or fails to enable, the media engine stops and reports the error.

◆ onStop()

void io.agora.rtc.mediaio.IVideoSource.onStop ( )

Stops the video source.

The SDK triggers this callback when the media engine stops streaming. You should then stop capturing and consuming the video frame. After calling this method, the video frames are discarded by the media engine.

◆ onDispose()

void io.agora.rtc.mediaio.IVideoSource.onDispose ( )

Releases the video source.

The SDK triggers this callback when IVideoFrameConsumer is released by the media engine. You can now release the video source as well as IVideoFrameConsumer.

◆ getBufferType()

int io.agora.rtc.mediaio.IVideoSource.getBufferType ( )

Gets the buffer type.

The SDK triggers this callback to get the buffer type of the video frame when it is being initialized. You need to specify one buffer type and then pass it to the media engine.

Returns
Video buffer type