-
Notifications
You must be signed in to change notification settings - Fork 437
PlayRecord
贾俊辉 edited this page Dec 13, 2018
·
1 revision
框架支持内存播放记录(播放历史点),配置开启后会自动记录播放位置,再次起播时会从记录点开始播放。
//开启内存播放记录
PlayerConfig.playRecord(true);
框架使用LRUCache来管理内存记录,配置中可设置最大记录条数(默认200条)。
//相关配置
PlayRecordManager.setRecordConfig(
new PlayRecordManager.RecordConfig.Builder()
//设置最大记录条数
.setMaxRecordCount(100)
.build());
为了保证播放数据和记录的准确关联,需要对数据进行索引映射,框架内部有默认的key生成器DefaultRecordKeyProvider。当然此处是可以自定义配置的,根据您数据源的特性进行key的生成。
new PlayRecordManager.RecordConfig.Builder()
//设置最大记录条数
.setMaxRecordCount(100)
.setRecordKeyProvider(new RecordKeyProvider() {
@Override
public String generatorKey(DataSource dataSource) {
//...
return null;
}
})
.build()
您可以对播放记录进行删除和清理。
//删除某条记录
PlayRecordManager.removeRecord(dataSource);
//清除播放记录
PlayRecordManager.clearRecord();
如果内存记录并不满足您的需求,框架提供了记录操作回调输出,您可以自行处理播放记录的存储和获取。 比如您需要把播放记录存储到数据库中,操作如下:
new PlayRecordManager.RecordConfig.Builder()
.setMaxRecordCount(100)
.setOnRecordCallBack(new OnRecordCallBack() {
@Override
public int onSaveRecord(DataSource dataSource, int record) {
//save to db
return record;
}
@Override
public int onGetRecord(DataSource dataSource) {
//get record from db
return 0;
}
@Override
public int onResetRecord(DataSource dataSource) {
//reset
return 0;
}
@Override
public int onRemoveRecord(DataSource dataSource) {
//remove from db
return 0;
}
@Override
public void onClearRecord() {
//clean db record
}
})
.build()