Este tópico descreve os recursos principais do AliPlayerKit. O conteúdo abrange o posicionamento do product, a arquitetura central, as responsabilidades dos componentes, as interfaces principais e os detalhes de seus seis sistemas fundamentais.
Posicionamento do product
Objetivos de design
O AliPlayerKit foi projetado como uma camada de arquitetura de reprodução universal, e não apenas como um componente de UI de player, com os seguintes objetivos:
|
Objetivo de design |
Descrição |
|
Integração low-code |
Integre cenários completos de reprodução com o mínimo de código. |
|
Cobertura multicenário |
Atenda a diversos cenários de reprodução, como vídeo sob demanda (VOD), streaming ao vivo e vídeos curtos. |
|
Arquitetura reutilizável |
Evite o desenvolvimento redundante de recursos do player em diferentes services por meio de uma arquitetura de slots e políticas. |
|
Base unificada |
Funcione como a base unificada para todas as soluções de player e soluções baseadas em cenários. |
Camadas da arquitetura
Na hierarquia da arquitetura, o AliPlayerKit está posicionado acima do kernel do player. Ele oferece suporte a recursos comuns para vários services de reprodução por meio de um sistema unificado de componentes de UI e abstração de cenários de reprodução.
|
Camada |
Posicionamento |
Localização do módulo |
Responsabilidade |
|
Camada de componentes |
Componente de UI do player |
|
Fornece componentes de UI de player prontos para uso e configuráveis, que cobrem a reprodução básica e recursos interativos comuns. |
|
Camada de cenários |
Soluções baseadas em cenários |
|
Oferece exemplos padronizados de integração para cenários típicos, como minisséries, vídeos de média e longa duração e streaming ao vivo. Isso ajuda os clientes a criar rapidamente capacidades completas de reprodução com pouco código. |
Arquitetura principal
O AliPlayerKit utiliza uma arquitetura principal 3+1 para construir seu framework de player:
-
Três interfaces de runtime: Estas interfaces seguem o padrão de arquitetura Model-View-Controller (MVC), que separa e desacopla as responsabilidades de exibição da UI, controle de reprodução e configuração de dados.
AliPlayerView: Componente de UI do player responsável pela renderização da interface e interação do usuário (View).AliPlayerController: Componente de controle de reprodução responsável pela lógica de reprodução e gerenciamento de estado (Controller).AliPlayerModel: Componente de modelo de dados que encapsula a configuração de reprodução e as informações de mídia do player (Model).
-
Uma interface global: Esta interface fornece a inicialização do framework e o gerenciamento de recursos globais. Ela serve como ponto de entrada unificado para o framework do player.
AliPlayerKit: Inicializa o framework e fornece recursos básicos, como configuração global, gerenciamento de logs e pré-carregamento.
Design da arquitetura
O AliPlayerKit utiliza a arquitetura clássica MVC para dividir o player em componentes independentes.
Responsabilidades dos componentes
|
Componente |
Tipo |
Responsabilidade |
Ciclo de vida |
|
|
Ponto de entrada global |
Configuração global, gerenciamento de cache, informações de versão. |
Nível de aplicação |
|
|
View |
Exibição da UI, gerenciamento de slots, vinculação de ciclo de vida. |
Nível de página |
|
|
Controller |
Controle de reprodução, gerenciamento de estado, distribuição de eventos. |
Nível de página |
|
|
Model |
Encapsulamento de dados de configuração, padrão Builder. |
Nível de requisição |
Interfaces principais
As interfaces principais a serem chamadas para cada instância do player incluem:
|
Interface |
Descrição |
|
|
Crie um controller. |
|
|
Constrói um modelo de dados. |
|
|
Anexa o controller e os dados. |
|
|
Desanexa e libera recursos. |
|
|
Gerencia o evento do botão voltar (opcional). |
Para obter uma lista completa de métodos e descrições de parâmetros de cada componente, consulte API Reference.
Sequência de chamadas
O fluxo completo de chamadas das interfaces principais cobre todo o ciclo de vida, desde a criação, vinculação e reprodução até a liberação de recursos.
Para obter as etapas completas de integração, consulte Quick Start.
Recursos principais
Sistema de slots
O sistema de slots divide a UI do player em componentes independentes. Cada slot é responsável por um recurso específico, como a barra de controle superior, a barra de progresso ou a miniatura. Combine esses componentes livremente. Use a interface padrão para integração rápida, substitua componentes conforme necessário ou personalize totalmente a interface. Os componentes de UI são completamente desacoplados do núcleo do player. A personalização não exige modificação no código-fonte e elimina riscos de conflitos de código durante atualizações. Diferentes cenários de reprodução podem reutilizar os mesmos componentes de slot, evitando desenvolvimento redundante. Para mais informações, consulte Slot system.
Sistema de políticas
O sistema de políticas encapsula a lógica de negócios do player em componentes independentes. Cada política implementa um recurso específico, como estatísticas do primeiro quadro, detecção de travamentos, proteção de tráfego ou retomada de reprodução. Estenda a camada de políticas sem alterar o núcleo do framework. Cada política tem responsabilidade única e isolada. Reutilize políticas entre instâncias do player e ative-as ou desative-as conforme necessário. Atualizações do framework e personalizações de negócios não interferem umas nas outras. Para mais informações, consulte Policy system.
Sistema de eventos
O sistema de eventos utiliza o padrão publish-subscribe para desacoplar os componentes do AliPlayerKit. Os componentes de UI assinam eventos e enviam comandos sem manter referência ao controller. O controller processa comandos e publica estados sem conhecer seus ouvintes. Essa arquitetura permite o desenvolvimento e a manutenção independentes da UI e da lógica de negócios. Além disso, isola naturalmente a comunicação entre várias instâncias do player por meio de eventos que carregam um playerId. Para mais informações, consulte Event system.
Política de ciclo de vida do player
A política de ciclo de vida do player gerencia a criação, reutilização, reciclagem e destruição de instâncias. Inclui quatro políticas integradas: Default, Singleton, ReusePool e IdScopedPool. Essas políticas atendem, respectivamente, a cenários gerais, de player único, reprodução em lista e pré-carregamento. Selecione uma política para equilibrar desempenho e recursos. Por exemplo, usar ReusePool para listas de vídeos curtos melhora significativamente a fluidez da rolagem e a velocidade do primeiro quadro. Para mais informações, consulte Player lifecycle policy.
Sistema de logs
O sistema de logs fornece um centro unificado, o LogHub. Ele oferece saída e filtragem multinível, extensões de listener e outros recursos. Isso garante rastreabilidade total dos nós principais durante a execução do player, auxiliando no diagnóstico de problemas e na análise de desempenho. Ative logs detalhados para depuração durante o desenvolvimento e simplifique a saída em ambientes de produção. Utilize listeners para gravar logs em arquivo ou reportá-los a um servidor, permitindo que as equipes de suporte técnico solucionem problemas rapidamente. Para mais informações, consulte Log system.
Suporte a múltiplas fontes de vídeo
O AliPlayerKit suporta vários tipos de fontes de vídeo. Recomendamos o método VidAuth. Para mais informações, consulte Multiple video source support.
|
Tipo de source |
Método de criação |
Cenários |
|
Source VidAuth |
|
Método recomendado para Alibaba Cloud VOD. |
|
Source VidSts |
|
Utiliza credenciais temporárias do Alibaba Cloud Security Token Service (STS). |
|
Source URL |
|
Streaming ao vivo ou cenários simples. |