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

  buffer | The metadata buffer.
  uid | The 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.
  timeStampMs | The 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.