using System;
namespace Agora.Rtc
{
///
///
/// The Callback for custom media resource files.
///
///
public abstract class IMediaPlayerCustomDataProvider
{
///
///
/// Occurs when the SDK seeks the media resource data.
///
///
/// An input parameter. The offset of the target position relative to the starting point, in bytes. The value can be positive or negative.
///
/// 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.
///
///
/// When when ce is 65536, the media file size is returned.When when ce is 0, 1, or 2, the actual data offset after the seeking is returned.-1: Seeking failed.
///
///
public virtual Int64 OnSeek(Int64 offset, int whence)
{
return 0;
}
///
///
/// Occurs when the SDK reads the media resource data.
///
///
/// An input parameter. Data buffer (bytes). Write the bufferSize data reported by the SDK into this parameter.
///
/// The length of the data buffer (bytes).
///
///
/// 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.
///
///
public virtual int OnReadData(IntPtr bufferPtr, int bufferSize)
{
return 0;
}
}
}