IMediaPlayerCustomDataProvider
The callback for custom media resource files.
OnReadData
Occurs when the SDK reads the media resource data.
public virtual int OnReadData(IntPtr bufferPtr, int bufferSize)
{
return 0;
}
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
- bufferPtr
- 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
Occurs when the SDK seeks the media resource data.
public virtual Int64 OnSeek(Int64 offset, int whence)
{
return 0;
}
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.