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

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


基本介绍

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

接口使用

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,此时缓存超过了你设置的最大空间后,则会把最早缓存下来的视频进行删除,保证最新视频能够缓存下来。

目录
相关文章
|
1天前
|
存储 XML 缓存
【深入浅出Spring原理及实战】「缓存Cache开发系列」带你深入分析Spring所提供的缓存Cache功能的开发实战指南(一)
【深入浅出Spring原理及实战】「缓存Cache开发系列」带你深入分析Spring所提供的缓存Cache功能的开发实战指南
111 0
|
1天前
|
XML 存储 缓存
Spring缓存是如何实现的?如何扩展使其支持过期删除功能?
总之,Spring的缓存抽象提供了一种方便的方式来实现缓存功能,并且可以与各种缓存提供商集成以支持不同的过期策略。您可以根据项目的具体需求选择适合的方式来配置和扩展Spring缓存功能。
19 0
|
9月前
|
弹性计算 缓存 运维
【运维知识进阶篇】用阿里云部署kod可道云网盘(DNS解析+CDN缓存+Web应用防火墙+弹性伸缩)(三)
【运维知识进阶篇】用阿里云部署kod可道云网盘(DNS解析+CDN缓存+Web应用防火墙+弹性伸缩)(三)
142 0
|
1天前
|
缓存 NoSQL Java
【深入浅出Spring原理及实战】「缓存Cache开发系列」带你深入分析Spring所提供的缓存Cache功能的开发实战指南(二)
【深入浅出Spring原理及实战】「缓存Cache开发系列」带你深入分析Spring所提供的缓存Cache功能的开发实战指南
39 0
|
1天前
|
缓存 NoSQL Java
spring cache整合redis实现springboot项目中的缓存功能
spring cache整合redis实现springboot项目中的缓存功能
51 1
|
1天前
|
消息中间件 监控 Cloud Native
阿里云云原生微服务高级工程师认证(ACP级-Alibaba Cloud Certification Professional)考试大纲
介绍阿里云云原生微服务高级工程师认证(ACP级-Alibaba Cloud Certification Professional)所需具备的知识及学习方法等。
307 0
|
1天前
|
Kubernetes 监控 Cloud Native
阿里云云原生容器高级工程师认证(ACP级-Alibaba Cloud Certification Professional)考试大纲
介绍阿里云云原生容器高级工程师认证(ACP级-Alibaba Cloud Certification Professional)所需具备的知识及学习方法等。
202 2
|
1天前
|
存储 安全 网络安全
阿里云云计算高级工程师ACP认证(Alibaba Cloud Certified Professional - Cloud Computing)考试大纲
介绍阿里云云计算高级工程师ACP认证(Alibaba Cloud Certified Professional - Cloud Computing)所需具备的知识及学习方法等。
949 1
|
1天前
|
缓存 Java Maven
Spring Cache框架,实现了基于注解的缓存功能。
Spring Cache框架,实现了基于注解的缓存功能。
36 0
|
6月前
|
缓存 NoSQL 数据库
31 Django高级 - 缓存
31 Django高级 - 缓存
31 0

热门文章

最新文章