全部產品
Search
文件中心

ApsaraVideo VOD:核心能力

更新時間:Sep 10, 2026

本文介紹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

詳情請參見自訂配置。