阿里云移动端播放器高级功能---边播边缓存

简介: 基本介绍 阿里云播放器提供了边播边缓存功能,主要可用于省流量(断网可播)、加快二次起播速度、加快循环播放速度。如果开启此功能,用户在完整播放完一次视频后,视频将会被缓存到本地。再次播放的时候,如果本地缓存已经存在,则会直接播放本地缓存,避免走网络流量。


基本介绍

阿里云播放器提供了边播边缓存功能,主要可用于省流量(断网可播)、加快二次起播速度、加快循环播放速度。如果开启此功能,用户在完整播放完一次视频后,视频将会被缓存到本地。再次播放的时候,如果本地缓存已经存在,则会直接播放本地缓存,避免走网络流量。同时,本地视频打开速度比网络文件打开要快,起播速度也会有提升。

接口使用

AliyunVodPlayer 提供了以下接口去配置此功能:

Android接口:
public void setPlayingCache(boolean enable, String saveDir, int maxDuration, long maxSize)
iOS 接口:
-(void) setPlayingCache:(BOOL)bEnabled saveDir:(NSString*)saveDir maxSize:(int64_t)maxSize maxDuration:(int)maxDuration;

这四个参数的含义如下:

参数 功能 备注
enable 是否开启此功能。 当enable为false时,将关闭此功能。当enable为true的时候,不一定能够缓存文件。能否缓存,需要根据另外的三个参数决定。
saveDir 缓存文件保存的路径。 当视频能够被缓存时,将会保存到这个文件夹下面。文件名不是原始的文件名。
maxDuration 单个文件的最大时长,单位:秒。 如果某个文件的时长超过此值,即使enable=true,也将不会被缓存。
maxSize 整个文件夹缓存总大小的最大值,单位:MB。 如果文件夹中文件总大小将要超过此值,将会删掉最旧的文件,直到有足够的空间去缓存新的视频文件。

Android使用示例

AliyunVodPlayer  aliyunVodPlayer = new AliyunVodPlayer(this);
String sdDir = Environment.getExternalStorageDirectory().getAbsolutePath() + "/test_save_cache";
aliyunVodPlayer.setPlayingCache(true, sdDir, 60 * 60 /*时长, s */, 300 /*大小,MB*/);

当完整播放完一次视频后,将在设置的dir目录中看到缓存的文件,截图如下:
041c1659e7753c509a4eb7ed5004670663bf0513

iOS使用示例

NSArray *pathArray = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docDir = [pathArray objectAtIndex:0];
[_aliPlayer setPlayingCache:YES saveDir:docDir maxSize:3000 maxDuration:100000];

使用场景

有两个比较实用的场景:
1. 节省流量:播放完缓存在本地后,如果再次播放视频,则不需要耗费流量,可以大大节省用户流量。对那些需要重复播放同一个视频的场景比较有用。
2. 加快循环播放速度以及加快起播速度,如果视频已经缓存在本地,则循环播放会从本地读取视频,而不是再次从网络上读取,这样能够加快循环播放的速度。比较适合短视频场景。
3. 同时对长视频不太建议使用边播边缓存的功能。

功能注意点

1.以下情况将不会被缓存

  1. 播放过程中拖拽(seek)。如果播放过程中有拖拽动作,此次视频将不会被缓存。
  2. 没有播放完就停止播放(stop)。播放中stop,导致数据没有完整被获取,此次视频将不会被缓存。
  3. 无法获取到视频文件大小的。如果获取不到视频文件的大小,将无法判断是否超出maxSize,默认将不会被缓存。如果不判定视频文件大小,可以将参数MaxSize设置成-1,那么播放器内部不会对缓存大小进行判定。 缓存功能只有在:用户完整的播放完一次视频的时候才会有缓存文件。

2.缓存的文件名不可更改

缓存生成的文件名是匹配视频的唯一标志。如果文件名被修改,那么下次播放将找不到对应的缓存文件,将还会重新读取网络数据。

3.淘汰机制

如果设置的最大缓存大小是100M,此时缓存超过了你设置的最大空间后,则会把最早缓存下来的视频进行删除,保证最新视频能够缓存下来。

目录
相关文章
|
25天前
|
存储 XML 缓存
【深入浅出Spring原理及实战】「缓存Cache开发系列」带你深入分析Spring所提供的缓存Cache功能的开发实战指南(一)
【深入浅出Spring原理及实战】「缓存Cache开发系列」带你深入分析Spring所提供的缓存Cache功能的开发实战指南
55 0
|
1月前
|
缓存 NoSQL Java
spring cache整合redis实现springboot项目中的缓存功能
spring cache整合redis实现springboot项目中的缓存功能
45 1
|
1月前
|
算法 Java 开发工具
使用阿里云KMS产品针对 Springboot 接口参数加密解密功能
针对Springboot里面使用开源工具使用加解密,替换成阿里云KMS产品进行加解密;
137 1
|
2月前
|
文字识别 安全 API
阿里云文字识别OCR的发票凭证识别功能可以通过API接口的形式进行调用
【2月更文挑战第5天】阿里云文字识别OCR的发票凭证识别功能可以通过API接口的形式进行调用
84 5
|
2月前
|
弹性计算 Ubuntu Linux
阿里云助力《幻兽帕鲁》快速开服:全新自动部署功能上线,仅需10秒即可完成部署!
阿里云助力《幻兽帕鲁》快速开服:全新自动部署功能上线,仅需10秒即可完成部署!阿里云服务器搭建帕鲁服务器游戏,服务器稳定无卡顿,先下载SteamCMD,并运行;然后下载Palserver,修改服务ini配置,启动PalServer,进入游戏服务器。今天分享阿里云创建幻兽帕鲁服务器教程。
|
2月前
|
弹性计算 搜索推荐 Linux
阿里云自动部署【幻兽帕鲁/Palworld】功能上线,10秒全自动开服!
阿里云轻量应用主机Lighthouse上线幻兽帕鲁应用模板功能 ,用户只需要点三次鼠标,最快10秒就能自动安装好幻兽帕鲁主机,和自己的朋友一起开心“抓帕鲁”。同时,用户还可以在阿里云控制台的面板直接调整幻兽帕鲁的经验倍率、死亡惩罚等游戏配置,实现便捷、个性化的游戏体验。
阿里云自动部署【幻兽帕鲁/Palworld】功能上线,10秒全自动开服!
|
2月前
|
API 网络安全
阿里云视觉智能平台中人脸搜索功能在长时间不使用后第一次使用时出现连接失败
阿里云视觉智能平台中人脸搜索功能在长时间不使用后第一次使用时出现连接失败
228 2
|
2月前
|
消息中间件 监控 Cloud Native
阿里云云原生微服务高级工程师认证(ACP级-Alibaba Cloud Certification Professional)考试大纲
介绍阿里云云原生微服务高级工程师认证(ACP级-Alibaba Cloud Certification Professional)所需具备的知识及学习方法等。
273 0
|
2月前
|
Kubernetes 监控 Cloud Native
阿里云云原生容器高级工程师认证(ACP级-Alibaba Cloud Certification Professional)考试大纲
介绍阿里云云原生容器高级工程师认证(ACP级-Alibaba Cloud Certification Professional)所需具备的知识及学习方法等。
173 2
|
2月前
|
存储 安全 网络安全
阿里云云计算高级工程师ACP认证(Alibaba Cloud Certified Professional - Cloud Computing)考试大纲
介绍阿里云云计算高级工程师ACP认证(Alibaba Cloud Certified Professional - Cloud Computing)所需具备的知识及学习方法等。
828 1