You need to enable JavaScript to run this app.
导航
自定义预加载
最近更新时间:2025.12.02 10:32:32首次发布时间:2025.12.02 10:32:32
复制全文
我的收藏
有用
有用
无用
无用

预加载是指在开始播放之前提前下载即将播放视频的头部数据,以实现快速起播,从而显著优化播放体验。详细功能介绍,请见 Android 自定义预加载

注意

该功能仅高级版支持。请确保您已购买高级版的 License,详见播放器 License

实现自定义预加载的步骤如下:

  1. 构造播放源并添加预加载任务。Vid 模式和 DirectUrl 模式的示例代码具体如下:

    // 使用vid和playAuthToken初始化vid source, resolution为期望预加载的档位
       TTVideoEngineVidSource source = TTVideoEngineVidSource.init(
               vid: <vid>,
               playAuthToken: <playAuthToken>,
               resolution: <TTVideoEngineResolutionType>);
       
       // 使用source和preloadSize初始化PreloaderVidItem, 预加载字节数preloadSize默认800 KB 
       TTVideoEnginePreloaderVidItem item = TTVideoEnginePreloaderVidItem.vidItemWithVideoSource(source, 800 * 1024);
       
       // 添加预加载任务
       TTVideoEnginePreload.addTaskWithVidItem(item);
    
  2. 取消预加载任务:

    // 取消全部预加载任务
    TTVideoEnginePreload.cancelAllTask();
    
    // 根据key取消一个预加载任务,key为创建预加载任务使用的cacheKey
    TTVideoEnginePreload.cancelTaskByKey(Key);
    
  3. 监听预加载任务状态:

    // 对已添加的预加载任务PreloaderURLItem,监听item的cancel和end回调
    // 预加载任务取消
    item.onPreloadCancel = () {
        print('TTF --  预加载cancel 回调到dart');
    };
     
    // 预加载任务完成
    // taskInfo - 预加载任务的文件信息和下载信息
    // error - 预加载任务的error信息
    item.onPreloadEnd = (TTVideoEngineLocalServerTaskInfo? taskInfo, TTError? error) {
        Map<dynamic, dynamic>? map = taskInfo?.toJson();
        String errorStr = error.toString();
        print('TTF --  预加载end 回调到dart end = $map error = $errorStr');
    };