5-视频下载

1.下载模块集成

视频下载功能通过单独模块media-player-sdk-addon-cache-down提供,需要添加对应依赖

{
  "dependencies": {
    "@polyvharmony/media-player-sdk-addon-cache-down": "$version"
  }
}

2.视频下载

视频下载的管理类为PLVMediaDownloaderManager,可以通过该类执行视频的下载、暂停、删除等操作

2.1 初始化

在使用视频下载功能前,需要调用初始化方法PLVMediaDownloaderManager.init

/**
 * 初始化,调用其他方法前必须调用初始化方法
 */
async init(setting: PLVMediaDownloadSetting): Promise<void>

其中,可以通过setting参数配置下载的相关设置:

export class PLVMediaDownloadSetting {

  /**
   * 下载视频存放的根目录
   *
   * SDK 不会主动申请写入权限,外部调用需要确保 APP 具有对应目录的写入权限
   */
  readonly downloadRootDirectory: string;

  /**
   * 同时下载的任务数量限制
   */
  readonly concurrentDownloads: number;

  /**
   * 清晰度降级
   *
   * 无法下载指定的清晰度时,自动下载较低的清晰度
   */
  readonly allowBitRateFallback: boolean;
  
}

2.2 开始下载

首先,通过PLVMediaDownloaderManager.getDownloader获取对应视频的下载器

然后,调用PLVMediaDownloaderManager.startDownloader传入对应的下载器,即开始视频的下载

2.3 状态监听

下载过程中的进度、视频信息、下载速度等状态可以通过下载器的回调中心PLVMediaDownloader.listenerRegistry监听

2.4 暂停、删除

视频下载的暂停和删除也是通过下载管理类PLVMediaDownloaderManager实现:

3.播放离线视频

为了播放下载到本地的视频,需要在构造视频资源PLVMediaResource时,传入视频下载的根目录路径(即下载时配置的 PLVMediaDownloadSetting.downloadRootDirectory

播放器会在localVideoSearchPaths下搜索对应的离线视频,在已下载对应视频到本地的情况下优先播放本地视频。

4.自定义传入token

视频下载支持加密视频版权保护的自定义传入token方式,配置如下:

Last updated

Was this helpful?