阿里云播放器SDK提供的本地缓存或预加载功能可以通过提升视频的起播速度以及拖动进度条后的响应速度,从而改善播放体验。

背景信息

在需要重复观看视频的场景下,如果每次都从网络获取视频,不仅浪费流量,还增加了播放卡顿的风险。阿里云播放器SDK提供了本地缓存和预加载的功能,可以大幅提升视频的起播速度以及拖动进度条后的响应速度,减少播放卡顿的烦恼。

使用限制

  • 仅支持MP4、MP3、FLV、HLS(单码率视频流)等单个媒体文件的预加载。
  • 预加载仅支持UrlSource播放方式播放视频,暂不支持VidAuth、VidSts方式播放视频。

使用本地缓存提升播放体验

原理说明

阿里云播放器SDK提供的本地缓存的功能通过全局开关(AliPlayerGlobalSettings中的enableLocalCache)开启,开启后无需关心播放的视频是否能缓存,播放器内部会根据HTTP头的信息判断是否能缓存以及缓存是否过期。同时可以通过配置缓存的最大缓存容量(maxCapacityMB)和磁盘最小空余容量(freeStorageMB),来防止缓存过度而占用磁盘空间。

播放器SDK是根据播放URL(视频播放地址)来区分视频的,但有些URL带有鉴权参数,导致同一个视频每次的播放URL都会有所差异。对此情况,播放器SDK提供了URL Hash回调(setCacheUrlHashCallback),播放器会使用回调返回的值来区分视频,该回调返回的值可以认为是视频的唯一ID。

例如:带有鉴权参数的URL:http://****.mp4?authKey=aaa,回调中可以使用http://****.mp4的md5值作为返回值,这样鉴权参数的变化就不会影响对视频的区分。针对HTTP和HTTPS指向同一个地址的情况,也可以返回相同的值来让播放器使用同一个缓存文件。

适用场景

适用于需要重复观看视频的场景,例如短视频场景下的循环播放等。

配置方法

使用预加载提升播放体验

原理说明

预加载为本地缓存功能的升级,播放当前视频时对下一个视频提前加载缓存,可提升切换到下个视频播放时的起播速度。针对快速滑动播放的列表播放场景,可以使用预加载+双实例的方式,提升观看体验。首先开启本地缓存功能后,播放当前视频且当前视频buffer充足时,可以用另外的播放器实例prepare(准备)下一个视频,当滑动到下一个视频时就可以立即播放。当第二个实例的视频buffer充足后,可以继续预加载后面的视频,提供更多的视频缓存。

适用场景

适用于快速滑动播放的列表播放场景等。

配置方法