IMediaPlayerCustomDataProvider
提供打开自定义媒体资源文件的回调。
onReadData
读取媒体资源数据回调。
int onReadData(ByteBuffer buffer, int bufferSize);
使用 openWithMediaSource 打开自定义媒体资源时,SDK 会触发该回调,向你请求定位到媒体资源中的指定位置。
参数
- buffer
- 输入参数,数据 Buffer,单位为字节。请将 SDK 报告的 bufferSize 数据写入到此参数中。
- bufferSize
- 数据 Buffer 的长度,单位为字节。
返回值
- 如果读取数据成功,请在返回值中传入你实际读取的数据长度,单位为字节。
- 如果读取数据失败,请在返回值中传入 0。
onSeek
定位媒体资源数据回调。
long onSeek(long offset, int whence);
使用 openWithMediaSource 打开自定义媒体资源时,SDK 会触发该回调,向你请求定位到媒体资源中的指定位置。
参数
- offset
- 输入参数。定位位置相对于起点的偏移量,单位为字节。取值可正可负。
- whence
- 输入参数。表示定位的起点位置。可以为如下值:
- 0:起点为数据的头,定位后的实际数据偏移量为 offset。
- 1:起点为当前位置,定位后的实际数据偏移量为当前位置加上 offset。
- 2:起点为数据的尾,定位后的实际数据偏移量为文件长度加上 offset。
- 65536:不执行定位操作,返回文件大小。建议在播放 MP3、WAV 等纯音频文件时使用该参数值。
返回值
- 当 whence 为 65536 时,返回媒体文件大小。
- 当 whence 为 0/1/2 时,返回实际定位后的数据偏移量。
- -1:定位失败。