Agora Java API Reference for Android

Public Member Functions | List of all members
agora::media::base::IMediaPlayerCustomDataProvider Class Referenceabstract

`#include <AgoraMediaPlayerTypes.h>`

## Public Member Functions
virtual int | onReadData (unsigned char *buffer, int bufferSize)=0
| Occurs when the SDK reads the media resource data. More...
virtual int64_t | onSeek (int64_t offset, int whence)=0
| Occurs when the SDK seeks the media resource data. More...

## Detailed Description

The custom data source provides a data stream input callback, and the player will continue to call back this interface, requesting the user to fill in the data that needs to be played.

## Member Function Documentation

## ◆ onReadData()

virtual int agora::media::base::IMediaPlayerCustomDataProvider::onReadData | ( | unsigned char * | buffer,
|  | int | bufferSize
| ) |  |
| pure virtual

Occurs when the SDK reads the media resource data.

When you call the `openWithMediaSource` method to open a media resource, the SDK triggers this callback and request you to pass in the buffer of the media resource data.

Parameters

  buffer | An input parameter. Data buffer (bytes). Write the `bufferSize` data reported by the SDK into this parameter.
  bufferSize | The length of the data buffer (bytes).

Returns
  - If the data is read successfully, pass in the length of the data (bytes) you actually read in the return value.
  - If reading the data fails, pass in 0 in the return value.

## ◆ onSeek()

virtual int64_t agora::media::base::IMediaPlayerCustomDataProvider::onSeek | ( | int64_t | offset,
|  | int | whence
| ) |  |
| pure virtual

Occurs when the SDK seeks the media resource data.

When you call the `openWithMediaSource` or `open` method to open a custom media resource, the SDK triggers this callback to request the specified location in the media resource.

Parameters

  offset | An input parameter. The offset of the target position relative to the starting point, in bytes. The value can be positive or negative.
  whence | An input parameter. The starting point. You can set it as one of the following values: 0: The starting point is the head of the data, and the actual data offset after seeking is `offset`. 1: The starting point is the current position, and the actual data offset after seeking is the current position plus `offset`. 2: The starting point is the end of the data, and the actual data offset after seeking is the whole data length plus `offset`. 65536: Do not perform position seeking, return the file size. Agora recommends that you use this parameter value when playing pure audio files such as MP3 and WAV.

Returns
  - When `whence` is `65536`, the media file size is returned.
  - When `whence` is `0`, `1`, or `2`, the actual data offset after the seeking is returned.
  - -1: Seeking failed.