PlayBackController class

Constructors

PlayBackController()

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 为 PlayReportDataauthToken 非空时用于鉴权(如页面销毁前 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

Operators

operator ==(Object other) bool
The equality operator.
inherited

Static Properties

cacheMetadataListeners Map<String, CacheMetadataListener>
getter/setter pair

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 命中的自动缓存课堂;用户主动下载的离线包不受影响。