核心能力

更新时间:
复制 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()

构建数据模型。

controller.configure(model)

配置播放数据。

AliPlayerView.attach(controller)

绑定控制器。

AliPlayerView.detach()

解绑 UI。

controller.destroy()

释放播放器资源。

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)

直播或简单场景。

自定义配置

自定义配置提供双层级配置机制,允许开发者在关键时机注入自定义 SDK 配置,无需修改框架源码即可完成全局或实例级的精细调参。

层级

注册方式

触发时机

典型场景

全局

AliPlayerKit.setOnGlobalInit()

init() 完成后(仅一次)

setOption、全局日志级别

实例

AliPlayerModel.Builder.onPlayerConfig()

configure() 中 setDataSource() 之后

setConfig、Referer

详情请参见自定义配置