iOS短视频播放缓存之道

业务分析,公司APP主业务是电商,短视频作为为电商引流业务,提高APP活跃度的业务模块,同时在APP其他业务功能中也存在视频播放,例如商品详情页面商品介绍,基于此设计之初并不打算将所有的播放业务耦合在一起,因为短视频的播放概率远远大于其他长视频,依次业务需求大致分为2类逻辑,短视频和在线播放,对于短视频统一按照短视频播放模块来执行边播变缓存,而其他的相对比较长一些的视频则直接在线播放也不缓存,此处也不做过多介绍。所有文件命名使用的是视频资源的url md5值保证唯一性。
摘要由CSDN通过智能技术生成

1.业务背景


公司电商APP接入短视频模块也有半年多的时间了,之间一直在忙着完善业务功能,现在是时候沉淀下来总结这一路来的收获。

视频播放对于ios开发来说其实并不是一个难事儿,简单几行代码就能实现,确实,最初的短视频播放也是基于此,给定视频url直接丢给系统播放器(AVPlayer)就可以播放了。但是随着短视频业务发力,短视频模块在APP业务中承担了更多更重要的角色,如何提升短视频的播放速度变得尤为重要,随之便提出了短视频边播变缓存,短视频预加载相关功能要求。

业务分析,公司APP主业务是电商,短视频作为为电商引流业务,提高APP活跃度的业务模块,同时在APP其他业务功能中也存在视频播放,例如商品详情页面商品介绍,基于此设计之初并不打算将所有的播放业务耦合在一起,因为短视频的播放概率远远大于其他长视频,依次业务需求大致分为2类逻辑,短视频和在线播放,对于短视频统一按照短视频播放模块来执行边播变缓存,而其他的相对比较长一些的视频则直接在线播放也不缓存,此处也不做过多介绍。

2.边播边缓存的实现


短视频播放特点:1、全屏播放2、快速播放,争取每个短视频都能秒播3、内容高度浓缩,无需进度条与拖拽进度4、精彩的短视频可能会被重复观看几次5、其他(声音控制、流量)

基于以上特点,可以大致将短视频播放划分为2个层级,第1层为播放器层,第2层为缓存层,播放器层是基于缓存层的,主要负责播放过程控制和UI展现,比如暂停,继续,声音控制,暂停播放显示控制以及其他的UI;播放器层对于每个APP可能会有不同的业务需求,实现的功能也大不相同,故将缓冲层与播放器层剥离,而缓存层则主要负责短视频内容的下载,预加载,缓存管理,这也是ShortMediaCache的主要功能。

2.1如何从缓存播放

ShortMediaCache缓存播放逻辑大致的实现结构如下图:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值