核心能力

更新时间:
复制为 MD 格式

本文介绍AliPlayerKit的核心能力,包括产品定位、核心架构、组件职责、核心接口以及六大核心系统的详细说明。

产品定位

设计目标

AliPlayerKit的设计目标并不仅限于播放器UI组件,而是将其定位为播放通用架构层来建设:

设计目标

说明

低代码接入

通过少量代码即可接入完整播放场景。

多场景覆盖

覆盖点播、直播、短视频等多种播放场景。

可复用架构

通过插槽 + 策略架构,避免各业务重复建设播放器能力。

统一基座

作为所有播放器解决方案和场景化解决方案的统一基座。

架构层级

在架构层级上,AliPlayerKit位于播放器内核之上,通过统一的UI组件体系与播放场景抽象,承载不同播放业务的共性能力:

层级

定位

模块位置

职责

组件层

播放器UI组件

playerkit/

提供开箱即用、可配置的播放器UI组件,覆盖基础播放与常见交互能力。

场景层

场景化解决方案

playerkit-scenes/

围绕短剧、中长视频、直播等典型场景,提供标准化接入示例,帮助客户以少量代码快速搭建完整播放能力。

核心架构

AliPlayerKit采用 3+1 核心架构设计构建播放器框架:

  • 3个运行时接口:遵循MVC架构模式,实现UI展示、播放控制与数据配置的职责分层与解耦。

    • AliPlayerView:播放器UI组件,负责界面渲染与用户交互(View)。

    • AliPlayerController:播放控制组件,负责播放逻辑与状态管理(Controller)。

    • AliPlayerModel:数据模型组件,封装播放器的播放配置与媒体信息(Model)。

  • 1个全局接口:提供框架初始化与全局能力管理,是播放器框架的统一入口。

    • AliPlayerKit:负责框架初始化,并提供全局配置、日志管理、预加载等基础能力。

架构设计

AliPlayerKit采用经典的MVC架构,将播放器拆分为独立的组件。

组件职责

组件

类型

职责

生命周期

AliPlayerKit

全局入口

全局配置、缓存管理、版本信息。

应用级

AliPlayerView

View

UI展示、插槽管理、生命周期绑定。

页面级

AliPlayerController

Controller

播放控制、状态管理、事件分发。

页面级

AliPlayerModel

Model

配置数据封装、Builder模式。

请求级

核心接口

每个播放器实例需要调用的核心接口:

接口

说明

new AliPlayerController(Context)

创建控制器。

new AliPlayerModel.Builder()...build()

构建数据模型。

AliPlayerView.attach(controller, model)

绑定控制器和数据。

AliPlayerView.detach()

解绑并释放资源。

AliPlayerView.onBackPressed()

处理返回键事件(可选)。

说明

详细API说明:各组件的完整方法列表和参数说明,请参阅API参考文档。

调用时序

核心接口的完整调用流程,涵盖从创建、绑定、播放到释放的全生命周期。

说明

完整接入步骤请参阅快速开始文档。

核心能力

插槽系统

插槽系统将播放器UI拆分为独立组件,每个插槽负责特定功能(如顶部控制栏、进度条、封面图)。开发者可自由组合:使用默认界面快速接入,按需替换组件或完全自定义界面。UI组件与播放器核心彻底解耦,定制无需修改源码,升级无代码冲突风险。不同播放场景可复用相同插槽组件,避免重复开发。详情请参见插槽系统

策略系统

策略系统将播放器业务逻辑封装为独立策略组件,每个策略实现特定功能(如首帧统计、卡顿检测、流量保护、记忆播放)。业务方可在策略层扩展,无需侵入框架核心。各策略职责单一且相互隔离,支持跨播放器实例复用及按需启停。框架升级与业务定制互不干扰。详情请参见策略系统

事件系统

事件系统采用发布-订阅模式,实现AliPlayerKit组件间解耦。UI组件订阅事件、发送命令,无需持有控制器引用;控制器处理命令、发布状态,无需关注监听方。该架构支持UI与业务逻辑独立开发和维护,并通过携带playerId的事件天然隔离多播放器实例通信。详情请参见事件系统

播放器生命周期策略

播放器生命周期策略统一管理实例的创建、复用、回收与销毁,内置Default、Singleton、ReusePool、IdScopedPool四种策略,分别适配通用、单播放器、列表播放及预加载场景。开发者只需选择策略即可平衡性能与资源,例如短视频列表使用ReusePool可显著提升滑动流畅度与首帧速度。详情请参见播放器生命周期策略

日志系统

日志系统提供统一日志中心LogHub,支持多级输出与过滤、监听器扩展等功能,确保播放器运行时关键节点全程可追溯,便于问题定位与性能分析。开发阶段可开启详细日志辅助调试,生产环境精简输出;还可通过监听器将日志写入文件或上报服务器,助力技术支持团队快速排查问题。详情请参见日志系统

多视频源支持

AliPlayerKit支持多种视频源类型,推荐使用VidAuth方式,详情请参见多视频源支持

源类型

创建方法

适用场景

VidAuth

VideoSourceFactory.createVidAuthSource(...)

阿里云点播推荐方式(推荐)。

VidSts

VideoSourceFactory.createVidStsSource(...)

阿里云STS临时凭证方式。

URL

VideoSourceFactory.createUrlSource(url)

直播或简单场景。