前 言

德鲁克说:未来社会最大的改变一定是会发生在知识领域。

知识付费商业形式在2014年甚至更早之前就已经开始有了,只是当时还没有内容创业的概念,没有被完全重视。到了2016年,移动互联网的成熟、短视频和直播行业爆发式增长,促使知识付费也进入了人们热烈讨论的话题中。爱奇艺知识布局最早要追溯到2012年上线的爱奇艺教育频道,并于2019年爱奇艺知识独立APP上线。

爱奇艺知识是以音视频播放为主要分发手段,注重用户体验和内容质量。而播放体验是用户产品体验的核心。相比于爱奇艺APP,爱奇艺知识有更复杂的播放交互场景:视频、音频、音频控制台、音视频浮窗等多种音视频平滑切换的场景较多,如何保证起播流畅性是一个相对复杂的技术难题。

爱奇艺知识技术团队经过不断探索和实践,在《爱奇艺知识音视频通用播放架构实践》文章介绍的播放架构基础上,总结针对性的优化方案,最终实现了多播放场景的平滑切换的极致用户体验,和秒播率37%左右的提升。

本文主要针对爱奇艺知识播放体验优化方案的实现进行分享。

01

播放场景扩展

为了能够给用户提供更丰富内容和连贯的观看体验,爱奇艺知识也在常规的视频播放场景以外扩展了音频、视频条、音频条、吸顶条、控制台等场景,同时还做了音视频的主被动切换功能、场景间切换的不间断播放体验等。多场景的播放切换和多方播放器的接入势必会带来新的挑战,如音视频播放页与音视频条的无缝切换、音视频前后台自动切换、音频播放器与控制台的对接等,当然,这些问题目前在爱奇艺知识APP中也得到了很好的解决,以下就为大家简单做一下介绍。

1.1 音视频播放页与音视频条间切换

为达到极致用户体验,不阻断播放,爱奇艺知识研发了音视频浮窗(简称音视频条),在播放页退出的时候仍然可以出现在当前页面下方。这个机制适用于长视频、短视频和音频播放场景;并且实现了音视频条在APP内部页面的全局露出,使用户随时随地可以对当前播放内容进行控制,同时音视频条支持任意位置的拖拽,进而保证对页面内容的无遮挡效果。不仅如此,基于此架构还可以非常低的成本对音视频浮窗的样式做随时变更,以适应不同的产品体验。

为了实现音视频播放页与音视频条之间的无缝切换,也为了实现音视频条独立起播的能力,我们使用了功能控制器,即针对需要使用播放器的业务场景封装播放控制器,在这个控制器里面会存储播放器所需的必要数据,如选集数据等,同时这个控制器里面也会处理共性的播放器delegate事件,如统计等,这样也就可以更好的实现不同场景间切换的无间断播放,目前使用的播放器控制器有两种类型,即长视频播放器控制与短视频播放器控制器。

使用方式如下图所示:

1.2 音视频前后台自动切换

为了给用户更连贯的视听体验,我们添加音视频前后台自动切换的功能,即在用户开启允许视频后台继续播放的前提下,在APP进入后台模式后我们会主动将视频转为听音模式,使得播放内容不间断,用户可以继续听视频内容,同时还可以避免不必要流量的浪费。在APP切换到前台后会自动转换为视频模式,用户依旧可以继续观看视频内容,整个切换的流程不会中断,视听的体验是连贯的。

1.3 控制台的对接

由于爱奇艺知识有大量的音频课程,并且视频课程也是绝大部门都是支持听音模式的功能,为了形成更好的音频播放功能闭环,我们在全新音频播放器的基础上,对接(iOS)/添加(Android)的控制台模块,这样可以使得在手机不解锁的前提下,实现对播放内容控制,满足用户更多场景的功能体验需求,实现音频播放功能的闭环。

02

起播流程优化

由于爱奇艺知识播放内容含有合作方的内容,部分合作方并没有把相应内容源文件上传至爱奇艺统一内容后台,因此也就需要使用对应合作方提供的SDK或者通过知识后台代理获取三方内容的播放地址进而实现播放。目前爱奇艺知识的内容不仅包含爱奇艺内容,还包含了多种合作方内容,每种播放源的播放使用相应的播放器来实现,目前播放器使用的主要架构图如下:

从上图可以看出知识播放器对下需要对接多种播放SDK,对上需要输出4种播放UI(音频UI、长视频UI、短视频UI、视频浮窗UI)和相应播控、满足多种播放场景功能需求,同时还会有多种音视频交叉和功能切换的复杂场景。

由于知识播放器需求的多样性,也就注定了架构和起播流程的复杂性,优化之前先搞清楚起播流程是什么样的,下图简述了起播的主要流程。

2.1 分 析

从起播流程图不难看出,整个流程大体可分为3个大的阶段,即:起播参数的获取、播放器的选择与创建、播放地址获取。

  1. 起播参数的获取:上图所示多个参数(第一排参数,后称起播参数),如果在上级页面能够获取到的话,即跳转播放页的时候就可以准备好,便可以直接在起播参数模型转换之后直接走起播流程了。即使上级页面没有传递起播参数,但本地若能有一个可以补全参数的模块的话依旧可以走快速起播流程,否则需要调用一次接口,待参数补全后才能走起播流程,本次接口请求耗时是可以优化的。故此阶段的参数获取前置对于优化来讲尤为重要。

  2. 播放器的选择与创建:获取到起播参数之后,会根据合作方标识选择需要使用的播放器,走相应的起播流程,同时如若可以减少播放器UI和相应SDK创建次数的话也是可以实现优化的效果。此阶段的也是可以优化的。

  3. 播放地址获取:得益于爱奇艺APP播放器体系的优势,爱奇艺内容播放地址获取已经形成了一套完善的接口调用机制,适用于所有业务线,不需要做针对性优化,合作方内容播放地址获取由知识后端团队代理。此阶段的接口请求次数已经减少到一次,响应速度是可以得到保证的,三方内容播放地址的获取依赖于三方接口的响应速度。由于播放地址获取的接口没有多少优化空间,但我们可以考虑把更多的网络资源让给这个地址获取阶段。

2.2 优化方向

2.2.1 第一阶段(起播参数的获取)优化

a. 起播参数前置

由第一阶段的分析可以看出,如果进入播放页之前,所有需要的起播参数都已经由外部入口提供了,就避免了补全参数所需的网络接口请求,可以有效提升起播速度。由于此项优化涉及的入口较多,知识各个数据接口都针对起播做了统一添加处理。

b. 本地播放记录模块的添加

为了实现更高的秒播率、实现多种内容源播放记录的读取、同时也为了更好的存取音频播放场景的播放记录,爱奇艺知识开发了本地播放记录模块,每次在起播之前都会做本地播放记录模块的查询,可以根据视频ID查询到本地存储的播放记录数据(不区分内容提供方),如若命中即可获取到播放所需全量参数,走起播流程。

知识播放记录模块还分别做了内存和外存的存储方式,内存的合理化使用可以提升读写的效率,降低读取所需耗时。

  • 上述两条方案的使用后秒播率得到了19%左右的提升,总体来说收益还是比较明显的

2.2.2 第二阶段(播放器的选择与创建)优化

a. 音视频播放器统一

爱奇艺知识统一播放器的开发可以针对自身的需求进行实现,使得功能上线的灵活性更强,同时也使得播放器功能开发更加具有针对性,实现了功能级别的“瘦身”,减少了不必要系统资源的消耗。

知识内部各类型播放器是单例存在的形式,即单次生命周期内只需要创建一次,这样也可以大大减少创建创建的次数与相应耗时。

知识播放器的自行开发同时也实现了多播放器UI与共性功能的复用,即无论使用哪种播放器进行播放给用户呈现的观影体验是无差别的,不同类型播放器的切换间亦是如此,进而实现了观看窗口的统一与切换的无感。

b. 播放器UI创建优化

爱奇艺知识对接爱奇艺APP的无UI播放sdk,即除播放画面以外的播控、浮层等自行实现,因此,我们针对播放器UI创建使用的是懒加载的形式,会根据使用需求进行即时创建,不会同时创建当时不需要的UI控件,也不会重复创建相同的 UI 控件,这样可以避免UI创建所需的耗时与主线程的使用。

举一个具体的例子,知识播放器上的提示浮层目前除购买之外的,loading、网络提示、播放错误、播放结束等提示类浮层只有一个实例,第一次创建成功后,之后会随着所需样式进行更新,无需每次都创建。

  • 上述两条方案的使用后秒播率得到了7%左右的提升

2.2.3 第三阶段(播放地址获取)优化

a. 预加载(起播第三阶段)

连播预加载的实质就是提前加载即将用到或者即将可能用到的网络资源,减少当次起播获取播放资源的网络开销,进而实现更高的秒播率,给用户更流畅的观看体验。

播放器支持预加载下一集的连播,在当前视频播放到最后20秒时播放器会通过相应delegate api去业务层取需要预加载的播放item,拿到item之后会预加载一段播放资源,进而提升连播的开播速度。

在当前视频播放完成后会通过相应的delegate api 获取需要播放的item,确认预加载的视频是否与此次数据一致,确认一致后会直接使用已经加载的播放资源直接起播。

  • 此方案的实现使得秒播率有了4%左右的提升

b. 开播前系统资源分配

前面讲了播放地址获取需要较大的网络开销,因此在调用起播后,我们尽量把更多的系统网络资源让给播放器,方案是:进入播放页后,在收到相应回调或者达到最大等待阈值后,再进行业务接口的请求与页面的绘制,提升播放器开播速度。

如上所示,页面跳转会经过路由,路由内部会判定是否满足起播条件,满足起播条件或者经过播放页补全起播参数后会走起播流程,播放页在收到播放器开播成功、鉴权失败、播放器错误等回调或达到等待阈值后,再进行页面绘制操作。

  • 此方案的实现使得秒播率有了7%左右的提升

03

总 结

秒播率的提升,顾名思义就是提升一秒内开播的占比,优化的空间也都是毫秒级的,本文从起播流程的参数准备、播放器创建与选择、播放地址获取3个阶段详细分析了优化关键节点,并针对性的提出了优化方法,使得爱奇艺知识APP的播放秒开率大幅提升,实现了更加流畅的播放体验。

爱奇艺知识团队一直把服务用户,让更多有知识获取需求的人能更便捷、更好的获取到优质的内容和观看体验作为自我鞭策的基准,播放场景的拓展也为满足了用户多样的观看和收听体验,在未来爱奇艺知识团队还会持续完善和扩展播放场景,旨在提升使用的便捷性与多样性。在不断创新和优化使用体验,力争为用户提供更优质的视听体验。

也许你还想看

爱奇艺知识的音视频通用播放架构实践

爱奇艺QA测试环境管理平台初探

扫一扫下方二维码,更多精彩内容陪伴你!

爱奇艺知识播放体验优化的探索和实践相关推荐

  1. 爱奇艺知识移动端组件化探索和实践

    前言 组件化对于任何一个业务场景复杂的APP以及经过多次迭代之后的产品来说都是必经之路,组件化是指解耦复杂系统时将多个功能模块拆分.重组的过程.组件化要做的不仅仅是表面上看到的模块拆分解耦,其背后还有 ...

  2. 爱奇艺深度语义表示学习的探索与实践

    导读:基于学术界和工业界经验,爱奇艺设计和探索出了一套适用于爱奇艺多种业务场景的深度语义表示学习框架.在推荐.搜索.直播等多个业务中的召回.排序.去重.多样性.语义匹配.聚类等场景上线,提高视频推荐的 ...

  3. 在线学习在爱奇艺信息流推荐业务中的探索与实践

    概述 爱奇艺的信息流推荐业务每天会产生数十亿规模的 feed 浏览,如此大规模的数据给模型训练带来了很大的挑战.同时,信息流这类用户与推荐系统的强交互场景也引入了很多有趣的研究课题.对于信息流推荐产品 ...

  4. 学术派 | 爱奇艺深度语义表示学习的探索与实践

    导读 基于学术界和工业界经验,爱奇艺设计和探索出了一套适用于多种业务场景的深度语义表示学习框架.在推荐.搜索.直播等多个业务中的召回.排序.去重.多样性.语义匹配.聚类等场景上线,提高视频推荐的丰富性 ...

  5. 爱奇艺知识WEB前端组件化实践

    组件化作为一种开发模式,其在代码复用,提高开发效率上的效果被广泛认可.组件化思想适用于移动端.Web前端.PC端.TV端等多种类型的客户端和前端开发. 本文主要讲述爱奇艺知识 WEB 前端团队如何结合 ...

  6. 爱奇艺知识的音视频通用播放架构实践

    导读 随着经济的发展"衣食住行"等基础消费已不再是消费者首要考量,自我认知的提高便成为现阶段消费的必然选择.尤其是在移动互联网崛起的当下,移动支付和不限流业务的普及,人们为他们感兴 ...

  7. 百度网盘 | 爱奇艺万能播放器与百度网盘的功能关联体验

    文章目录 百度网盘与爱奇艺万能播放器 百度网盘 爱奇艺万能播放器 关联使用 百度网盘与爱奇艺万能播放器 可能大家心中都有一个疑问,百度网盘与爱奇艺万能播放器这两个能有啥关系? 这就不得不提一下 百度 ...

  8. 爱奇艺技术分享:爱奇艺Android客户端启动速度优化实践总结

    本文由爱奇艺技术团队原创分享,原题<爱奇艺Android客户端启动优化与分析>. 1.引言 互联网领域里有个八秒定律,如果网页打开时间超过8秒,便会有超过70%的用户放弃等待,对Andro ...

  9. Windows系统上的软件(如:爱奇艺万能播放器)固定任务栏图标后,打开后出现新任务栏图标

    ###以 爱奇艺万能播放器 为例: #####固定任务栏图标后,打开后出现新任务栏图标 我的解决方法: win7:在开始菜单(Windows键点击弹出)中 找到程序 并右键 点击固定任务栏 ####现 ...

最新文章

  1. BZOJ2131 免费的馅饼【线段树优化DP】
  2. Azure Remoteapp 使用指南
  3. 在汇编程序中调用C函数
  4. 计算机基础知识数据结构与算法,(计算机基础知识)[数据结构与算法] 图
  5. xp删除管理员账户_在Windows XP中从登录屏幕删除用户帐户
  6. html:(22):认识css样式和css的优势
  7. JavaScript————FormData实现多文件上传
  8. Executors浅析
  9. linux usb mic延时大如何解决,Linux 中 SSH 客户端登录缓慢的解决办法
  10. 贺利坚老师汇编课程25笔记:LOOP指令看CX
  11. 双线性插值函数的形状
  12. 《游戏引擎架构》中英词汇索引表
  13. mac html flash,苹果电脑flash过期无法打开网页的解决方法
  14. 2023年华东理工大学社会工作考研上岸前辈备考经验
  15. Win10编译OpenJDK源码
  16. 数据导入与预处理——1.初步熟悉kettle-Spoon
  17. 首席新媒体黎想告诉你,不花钱做互联网推广!这些方式了解一下
  18. 【单目标优化求解】基于matlab增强型黑猩猩优化器算法求解单目标优化问题【含Matlab源码 2013期】
  19. 华为正式发布鸿蒙发布会视频,鸿蒙手机要来了!华为正式发布HarmonyOS 2.0手机开发者Beta版...
  20. 5-2 学习打卡(11.7)

热门文章

  1. CTO 写低级 Bug,致公司 70 GB 数据泄露!
  2. OA软件厂商的综合素质到底有多重要?
  3. Developing circuit
  4. 友情链接查询工具 php源码,php 友情链接批量查询工具下载_PHP教程
  5. IIS上无法启动C#编写的WebService服务
  6. 国仁网络资讯:微信视频号怎么变现赚钱;首先要了解平台的底层逻辑与算法原理。
  7. XAMPP安装配置教程(Windows)
  8. Echarts-- 圆环图2.0
  9. linux Runtime
  10. 科技论文的图题翻译,图例,图坐标轴