PlayBackController class
Properties
-
hashCode
→ int
-
The hash code for this object.
no setterinherited
-
runtimeType
→ Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
cacheMetaDataByClassId(String classId, String token, CacheMetadataListener listener, {bool force = false, PlayBackEnvEnum env = PlayBackEnvEnum.production})
→ Future<void>
-
拉取回放元数据并以 classId.json 保存到本地
-
clearAllCachedMetaData()
→ Future<bool>
-
-
clearCachedMetaData(String classId)
→ Future<bool>
-
-
downloadByUrl(String url, {String? savePath, void onReceiveProgress(int received, int total)?, CancelToken? cancelToken})
→ Future<String>
-
下载指定 URL 到
savePath(可断点续传);未传 savePath 时落到临时文件,不做 Range 续传。
-
downloadMetaData(String classId, String token)
→ Future<void>
-
根据本地 classId.json 下载视频和文档图片,将在线 URL 替换为本地路径
-
getCachedMetaData(String classId)
→ Future<Map<String, dynamic>>
-
-
getCachedMetaDataStatus(String classId)
→ Future<CacheStatusEnum>
-
根据本地缓存文件判定当前缓存状态。
success.json 校验失败时先尝试按课程目录修复路径;仅当磁盘上已无核心视频时才删除 manifest,避免直连 Flutter/iOS 误判导致「缓存丢失」。
-
getCacheMetadataListener(String classId)
→ dynamic
-
-
getOnlineMetaCache(String classId)
→ Future<Map<String, dynamic>>
-
读取在线模式下缓存的 metadata 数据
-
noSuchMethod(Invocation invocation)
→ dynamic
-
Invoked when a nonexistent method or property is accessed.
inherited
-
pauseDownloadCache(String classId)
→ Future<bool>
-
暂停指定课堂的离线元数据下载(取消当前 HTTP,已落盘文件保留;可与 resumeDownloadCache 配合续传)
-
report({required PlayReportData data, PlayBackEnvEnum env = PlayBackEnvEnum.production, String? authToken})
→ Future<bool>
-
批量上报观看事件(Body 为 PlayReportData)
authToken 非空时用于鉴权(如页面销毁前 Obs 已清空 token 时需传入快照)
-
resumeDownloadCache(String classId, String token, [CacheMetadataListener? listener])
→ Future<bool>
-
在未完成离线包(存在
{classId}.json 且尚未生成 success)的前提下继续下载。
-
saveOnlineMetaCache(String classId, Map<String, dynamic> data)
→ Future<void>
-
保存在线模式下的 metadata 数据到本地缓存
-
toString()
→ String
-
A string representation of this object.
inherited
Static Methods
-
touchClassAccess(String classId)
→ Future<void>
-
更新某节课的最近访问时间(写入
playback_cache/{safeId}/.last_access)。
后台预下载(老师/白板视频)触发前与进入课堂时调用,为 LRU 淘汰提供时间戳。
-
trimCacheByLRU({required String currentClassId, int maxNonCurrent = 1})
→ Future<int>
-
LRU 淘汰:保留当前课堂 + 最多
maxNonCurrent 个最近访问的课堂;跳过带 success.json 的离线包。
仅清理 .last_access 命中的自动缓存课堂;用户主动下载的离线包不受影响。