Agora Java API Reference for Android
Public Member Functions | Static Public Attributes | List of all members
io.agora.rtc2.IMetadataObserver Interface Reference

Public Member Functions

abstract int getMaxMetadataSize ()
 
abstract byte[] onReadyToSendMetadata (long timeStampMs, int sourceType)
 
abstract void onMetadataReceived (byte[] buffer, int uid, long timeStampMs)
 

Static Public Attributes

static final int UNKNOWN_METADATA = -1
 
static final int VIDEO_METADATA = 0
 

Detailed Description

The definition of IMetadataObserver.

Note
Implement all the callbacks in this class in the critical thread. We recommend avoiding any time-consuming operation in the critical thread.

Member Function Documentation

◆ getMaxMetadataSize()

abstract int io.agora.rtc2.IMetadataObserver.getMaxMetadataSize ( )
abstract

Occurs when the SDK requests the maximum size of the metadata.

The Metadata struct contains the following parameters:

  • uid: ID of the user who sends the metadata.
    Note
    When sending the metadata, ignore this parameter. When receiving the metadata, use this parameter to determine who sends the metadata.
  • size: The metadata size.
  • buffer: The metadata buffer.
  • timeStampMs: The NTP timestamp (ms) that the metadata sends.
    Note
    If the metadata receiver is audience, this parameter does not work. The SDK triggers this callback after you successfully call the registerMediaMetadataObserver method. You need to specify the maximum size of the metadata in the return value of this callback.
    Returns
    The maximum size of the buffer of the metadata that you want to use. The highest value is 1024 bytes. Ensure that you set the return value.

◆ onReadyToSendMetadata()

abstract byte [] io.agora.rtc2.IMetadataObserver.onReadyToSendMetadata ( long  timeStampMs,
int  sourceType 
)
abstract

Occurs when the SDK is ready to receive and send metadata.

You need to specify the metadata in the return value of this callback.

Note
Ensure that the size of the metadata does not exceed the value set in the {getMaxMetadataSize} callback. timeStampMs The NTP timestamp (ms) that the metadata sends. sourceType Constants#VideoSourceType VideoSourceType} The metadata that you want to send in the format of byte[]. Ensure that you set the return value.

◆ onMetadataReceived()

abstract void io.agora.rtc2.IMetadataObserver.onMetadataReceived ( byte[]  buffer,
int  uid,
long  timeStampMs 
)
abstract

Occurs when the local user receives the metadata.

Parameters
bufferThe metadata buffer.
uidThe ID of the user who sent the metadata. When sending the metadata, ignore this parameter. When receiving the metadata, use this parameter to determine who sends the metadata.
timeStampMsThe NTP timestamp (ms) that the metadata sends. If the metadata receiver is audience, this parameter does not work.

Member Data Documentation

◆ UNKNOWN_METADATA

final int io.agora.rtc2.IMetadataObserver.UNKNOWN_METADATA = -1
static

(Not supported) The metadata type is unknown.

◆ VIDEO_METADATA

final int io.agora.rtc2.IMetadataObserver.VIDEO_METADATA = 0
static

The metadata type is video.