Exmoplay 是一个基于 Java 实现的 电影播放器,为用户提供一个始终保持响应且尽可能紧跟用户意图的播放体验。它允许逐帧浏览视频,并支持不同的播放速度,甚至可以进行倒放播放,包括声音的倒放,这在电影播放器中是非常独特的功能。

架构设计

Exmoplay 由三层架构组成,其中每个较低的层都独立于上层,具有在其他上下文中复用的可能性。

数据访问层:这一层抽象了视频访问库(Xuggler),将视频切割成逻辑上的“帧”,这些帧被解压缩并包含图像和音频数据。该抽象使得回放引擎可以以简化的方式加载、缓存和传送这些帧。

播放引擎:这一层包含一个演员系统(基于我自己的微库),支持并行工作,确保连续的非阻塞帧流。