产品百科 |使用阿里云播放器实现全屏秒播

简介: 阿里云播放器快速实现全屏秒播主要通过三个手段实现该需求:首帧图和播放的首帧画面一致 + 播放器预加载 + 边播边缓存。本方案在 WiFi 环境下可以做到平均 300 毫秒左右的起播速度。

概述

阿里云播放器快速实现全屏秒播主要通过三个手段实现该需求:首帧图和播放的首帧画面一致 + 播放器预加载 + 边播边缓存。本方案在 WiFi 环境下可以做到平均 300 毫秒左右的起播速度。

封面策略

  • 示视频的时候先显示封面,然后再播放视频,如果保证封面图和第一帧画面一致,则用户感觉不到是封面的存在。这样就造成了视频秒开极快的假象。
  • 在快速滑动的时候仅仅只请求封面图。
  • 同时在用户滑动到一半的时候,展现预先下载的一个封面图。

预加载视频策略

  • 创建多个播放器由于播放器不支持边播放边准备的功能,所以实现预加载的功能需要创建多个播放器。
  • 预加载资源
  • 用闲置的播放器对象提前准备接下来需要播放的视频。
  • Android 对应的方法为 AliyunVodPlayer.prepareAsync ()。
  • iOS 对应的播放器类为 AliyunVodPlayer 方法名为:```Objective-C/ 功能:临时 AccessKeyId、AccessKeySecret 和 SecurityToken:开启 RAM 授权,并通过 STS 授权系统提供的 OpenAPI 或 SDK 获取的 AccessKeyId、AccessKeySecret 和 SecurityToken,用于播放和下载请求备注:请参见参数明细。
  • (void)prepareWithVid:(NSString *)vid
accessKeyId:(NSString *)accessKeyId
 accessKeySecret:(NSString *)accessKeySecret
   securityToken:(NSString *)securityToken;

启用边播边缓存功能

边播边下缓存功能是在视频被成功播放后,文件会缓存到本地,再次播放视频时会直接使用本地缓存文件,不再走网络请求。

可设置下载路径、最大下载数据(单位:MB)、单一视频最大允许下载的时长(单位:秒)。

//Android代码示例
 //设置缓存目录路径。在创建播放器类,并在调用prepare方法之前设置。
  String sdDir = Environment.getExternalStorageDirectory().getAbsolutePath() + "/test_save_cache";   aliyunVodPlayer.setPlayingCache(true, sdDir, 60 * 60 /*单个文件的最大时长, s */, 300 /*缓存目录文件的总大小,MB*/);
//比如:maxSize设置500M时缓存文件超过500M后会优先覆盖最早缓存的文件。maxDuration设置为300秒时表示超过300秒的视频不会启用缓存功能。
//iOS代码示例
//设置缓存目录路径
NSArray *pathArray = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docDir = [pathArray objectAtIndex:0];
//在创建播放器类,并在调用prepare方法之前设置。比如:maxSize设置500M时缓存文件超过500M后会优先覆盖最早缓存的文件。maxDuration设置为300秒时表示超过300秒的视频不会启用缓存功能。
[self.aliPlayer setPlayingCache:YES saveDir:docDir maxSize:500 maxDuration:300];

说明

  • 缓存功能仅针对被完整播放的视频(seek 后无效),主要用于短视频循环播放场景。
  • 需要在播放器 prepare 之前调用。

启动 CDN 预热

进入控制台,在视频点播中找到刷新预热选项。在操作类型中选择预热,填写需要预热的视频 URL。image.png

说明 预热策略由于 CDN 预热有一定成本,可根据视频热度进行预热,将视频主动预热在阿里云各个节点上。


「视频云技术」你最值得关注的音视频技术公众号,每周推送来自阿里云一线的实践技术文章,在这里与音视频领域一流工程师交流切磋。

image.png

相关文章
|
Java jenkins 测试技术
如何利用Allure报告提升你的测试效率?
如何利用Allure报告提升你的测试效率?
如何利用Allure报告提升你的测试效率?
|
存储 NoSQL 关系型数据库
数据库的类型有哪些
数据库的类型有哪些
|
JavaScript
Vue中 使用 iframe 嵌入本地 HTML 页面 并 相互通信
Vue中 使用 iframe 嵌入本地 HTML 页面 并 相互通信
3174 0
Vue中 使用 iframe 嵌入本地 HTML 页面 并 相互通信
|
Windows
『Consul』Consul数据持久化配置并且注册为Windows服务
📣读完这篇文章里你能收获到 - Consul数据持久化配置并且注册为Windows服务
1954 0
『Consul』Consul数据持久化配置并且注册为Windows服务
|
11月前
|
缓存 Ubuntu Linux
Docker安装
本教程介绍Docker在CentOS和Ubuntu系统中的安装与配置,包括卸载旧版本、配置yum源或软件源、安装引擎、启动服务、离线安装及系统服务配置。还涵盖daemon.json参数设置、日志管理、镜像加速、命令补全等功能,助你快速部署并优化Docker环境。(238字)
|
9月前
|
机器学习/深度学习 弹性计算 人工智能
云服务器租用价格多少钱一年?来卡看2026阿里云费用价格,难以想象的便宜!
2026年阿里云服务器价格全解析:轻量最低38元/年,ECS普惠款99元起,企业级199元/年;GPU实例按量或包年可选。涵盖包年包月、按量付费三大计费模式,详解续费同价/折扣规则及升级补差机制,助您精准控本、避坑省钱。(239字)
830 6
|
传感器 人工智能 运维
如何在AR运维巡检中导入AI识别方案,达到智慧巡检目的
在工业运维巡检中,传统依赖人工的方式易出错且效率低。通过融合AR与AI技术,构建智慧巡检闭环,实现设备状态自动识别、预测性维护与高效协同。本文从场景锚定、知识沉淀、交互优化、反馈闭环、模型选型五大维度,解析AI识别方案的落地路径,助力工业智能化转型。
|
测试技术 虚拟化
在同一物理服务器上同时运行多个独立的操作系统实例
在同一物理服务器上同时运行多个独立的操作系统实例
1495 1
|
前端开发 定位技术 API
【Flutter前端技术开发专栏】Flutter中的第三方服务集成(如支付、地图等)
【4月更文挑战第30天】本文介绍了在Flutter中集成第三方服务,如支付和地图,以增强应用功能和用户体验。开发者可通过官方或社区插件集成服务,关注服务选择、API调用、错误处理和用户体验。支付集成涉及选择服务、获取API密钥、引入插件、调用API及处理结果。地图集成则需选择地图服务、获取API密钥、初始化地图并添加交互功能。集成时注意选择稳定插件、阅读文档、处理异常、优化性能和遵循安全规范。随着Flutter生态发展,更多第三方服务将可供选择。
566 0
【Flutter前端技术开发专栏】Flutter中的第三方服务集成(如支付、地图等)
|
安全 文件存储 数据安全/隐私保护
贝锐花生壳全新客户端上线:远程威联通NAS,无需公网IP、简单3步!
为了实现随时随地访问和备份珍贵数据,贝锐花生壳推出专为威联通NAS设计的内网穿透方案。用户只需通过威联通NAS应用中心一键安装,即可享受无需公网IP的远程访问便利。此外,贝锐花生壳还提供自动部署HTTPS证书和访问控制功能,确保数据传输的安全性。群晖NAS用户同样可以通过套件中心一键安装使用。
1198 0
贝锐花生壳全新客户端上线:远程威联通NAS,无需公网IP、简单3步!

热门文章

最新文章