从“叉手礼”、“水盆羊汤”、“酒晕妆”这些唐朝人生活细节,到精美的坊间造型、充满意境的诗词歌赋,《长安十二时辰》不仅以缜密剧情赢得赞誉,更还原了一个真实的大唐长安。在精良制作之上,如何让观众感受 1000 多年前的长安风情、更深度的理解剧情呢?
想必细心的观众已经发现,优酷《长安》中出现了很多有人情味的“黑科技”,比如百科 tips、角色伴侣、剧情进展图等,让用户“边看剧边互动”,这就是优酷的酷看模式。酷看模式在移动端采用了多路流的同屏展示、智能平滑切换、精准同步和动态化渲染等技术。其中动态化渲染、子母屏和多路流同步播放是酷看模式在端侧的核心能力,能够做到多路流、多机位视频帧级同步播放。本文接下来要讲一讲和《长安》相关的背后的一些核心技术。
一、播放器业务框架
优酷的播放器业务框架以一个简单而优雅的模型解构了所有的播放器业务,在该框架下播放业务是由一组彼此独立的插件组合实现的。它适应了复杂的播放业务场景,支持着众多围绕播放业务的团队并行开发。通过技术架构的解耦带来与之相关的技术团队的组织架构的解耦。
1.播放器视图模型
如上图所示,该模型可以描述为:
1)播放器由多个层组成;
2)层容器中布局插件;
3)播放器发布消息;
4)插件订阅消息;
5)层和插件信息来自配置文件。
2.核心特性
该框架在设计之初就确定了一系列的优良特性作为设计目标,核心的特性列举如下:
1)基于消息,事件驱动
引入事件 / 订阅的消息机制,插件按需订阅播放器的事件,根据优先级响应和消费消息;
2)按需配置,自由组合
支持从 xml 配置文件加载层和插件的配置信息,各个业务方在接入业务框架时以搭积木的方式排列组合构造播放器;
3)插件解耦,互不依赖
将所有的播放功能及业务模块解耦为彼此独立的插件,插件之间以消息机制进行通信;
4)标准明确,支持扩展
框架会提供一批功能丰富的标准插件,插件可分组管理,业务方可根据自己的需求定制插件来替换默认实现