O AliPlayerKit oferece um conjunto abrangente de APIs para controlar o comportamento do player. Este documento detalha as principais APIs do AliPlayerKit para iOS.
O AliPlayerKit inclui comentários de código detalhados para todas as APIs principais, como classes e métodos. No Xcode, visualize esses comentários com o Quick Help (Option + Clique em) para acelerar o desenvolvimento. Isso também torna as APIs mais compatíveis com ferramentas de programação assistidas por IA.
Visão geral das classes principais
|
Nome da classe |
Tipo |
Responsabilidade |
Ciclo de vida |
|
|
Ponto de entrada global |
Inicialização do SDK, configuração global, gerenciamento de factory/preloader |
Ciclo de vida do aplicativo |
|
|
Contêiner de visualização |
Gerenciamento da visualização do player, host do sistema de slots |
Igual ao UIView |
|
|
Controlador de reprodução |
Controle de reprodução, gerenciamento de status, coordenação de estratégias |
Liberado manualmente por |
|
|
Modelo de dados |
Encapsula a source de vídeo e os parâmetros de reprodução |
Objeto de valor, sem ciclo de vida independente |
|
|
Armazenamento de status |
Acesso somente leitura ao status atual do player |
Segue o Controller |
|
|
Status da visualização |
Acesso somente leitura ao status da camada de UI (tela cheia, visibilidade da barra de controle) |
Segue o AliPlayerView |
|
|
Gerenciador de slots |
Registro de slots, controle de visibilidade, gerenciamento no nível de elemento |
Segue o AliPlayerView |
|
|
Gerenciador de estratégias |
Registro, início, parada e redefinição de estratégias |
Segue o Controller |
|
|
Registro de estratégias |
Gerenciamento global da factory de estratégias padrão (singleton) |
Ciclo de vida do aplicativo |
|
|
Central de logs |
Saída de log e gerenciamento de observadores (singleton) |
Ciclo de vida do aplicativo |
|
|
Gerenciamento de localização |
Suporte multilíngue e injeção de Provider (singleton) |
Ciclo de vida do aplicativo |
AliPlayerKit (APIs Globais)
O AliPlayerKit é uma classe de configurações globais para inicialização e configuração do SDK. Não é possível instanciar esta classe. Todos os seus métodos são métodos de classe.
Métodos de inicialização
|
Método |
Parâmetro |
Valor de retorno |
Descrição |
|
|
- |
void |
Inicializa o SDK. O |
|
|
- |
BOOL |
Verifica se o SDK foi inicializado. |
|
|
Bloco OnGlobalInitBlock |
void |
Defina um callback de configuração personalizado após a conclusão da inicialização global. Chame este método antes de |
Consulta de status e informações de versão
|
Método |
Parâmetro |
Valor de retorno |
Descrição |
|
|
- |
NSString * |
Obtém o número da versão do PlayerKit. |
|
|
- |
NSString * |
Obtém o número da versão do SDK AliPlayer subjacente. |
Configurações de depuração
|
Método |
Parâmetro |
Valor de retorno |
Descrição |
|
|
BOOL enabled |
void |
Ative ou desative o modo de depuração. |
|
|
- |
BOOL |
Verifica se o modo de depuração está ativado. |
|
|
BOOL enabled |
void |
Ative ou desative o painel de log. Este recurso destina-se apenas à depuração. |
|
|
- |
BOOL |
Verifica se o painel de log está ativado. |
Configurações de log
|
Método |
Parâmetro |
Valor de retorno |
Descrição |
|
|
LogLevel level |
void |
Defina o nível de log. Logs abaixo deste nível são ignorados. O nível padrão é Info. |
|
|
- |
LogLevel |
Obtém o nível de log atual. |
|
|
BOOL enable |
void |
Ative ou desative a saída de log no console. |
|
|
- |
BOOL |
Verifica se a saída de log no console está ativada. |
Factory do player
|
Método |
Parâmetro |
Descrição |
|
|
id<PlayerFactory> factory |
Defina uma factory de player personalizada. Passe |
|
|
- |
Obtém a factory de player atual. |
Pré-carregamento
|
Método |
Parâmetro |
Descrição |
|
|
id<PlayerPreloader> preloader |
Defina um preloader personalizado. Passe |
|
|
- |
Obtém o preloader atual. |
Gerenciamento de cache
|
Método |
Descrição |
|
|
Limpa o cache de mídia local do player. Chame este método após |
Internacionalização
|
Método |
Parâmetro |
Descrição |
|
|
NSString * languageCode |
Especifique manualmente o idioma. Os idiomas suportados são |
|
|
id<LocaleProvider> provider |
Injeta um provedor de localização personalizado. Esta opção tem a maior prioridade. |
|
|
- |
Redefine o idioma para seguir o idioma do sistema. |
|
|
- |
Obtém o código do idioma atual. |
AliPlayerView (APIs de Visualização)
O AliPlayerView atua como contêiner de visualização do player. Ele gerencia a vinculação do controlador e o sistema de slots. O PlayerSurfaceSlot interno cria e gerencia a visualização de renderização.
Propriedades
|
Propriedade |
Tipo |
Descrição |
|
controller |
AliPlayerController * |
O controlador do player associado. |
|
viewState |
PlayerViewState * |
O status da UI mantido entre diferentes vídeos, como tela cheia e visibilidade da barra de controle. |
|
slotManager |
SlotManager * |
O gerenciador de slots. É possível pré-configurá-lo antes da vinculação. |
|
fullscreenTransition |
id<FullscreenTransition> |
A implementação da animação de transição para tela cheia. Por padrão, utiliza-se uma solução independente de rotação de janela. |
|
onBackPressed |
void (^)(void) |
O callback para o evento do botão voltar. |
O callback onBackPressed é acionado no modo fora de tela cheia. No modo de tela cheia, o player lida automaticamente com a operação de volta saindo da tela cheia. Se este callback não estiver definido, o player tentará um comportamento de navegação padrão, como pop ou dismiss, através da cadeia de responsividade.
Vinculação do controlador
|
Método |
Parâmetro |
Descrição |
|
|
AliPlayerController * controller |
Vincula o controlador e ative o sistema de slots. |
|
|
- |
Desvincula o controlador sem destruí-lo. |
Momento da chamada:
attach:: O componente é vinculado após o controlador chamarconfigure:. Em seguida, o sistema de slots é construído automaticamente com base na configuração do slotManager.detach: Chame este método quando a visualização estiver prestes a ser destruída ou quando for necessário vincular um controlador diferente.
AliPlayerController (APIs do Controlador)
O AliPlayerController é o controlador de reprodução. Ele serve como ponto de entrada unificado para operações de reprodução e encapsula a lógica de criação, configuração e controle do player.
Propriedades
|
Propriedade |
Tipo |
Descrição |
|
playerModel |
AliPlayerModel * |
O modelo de configuração de reprodução atual. |
|
playerState |
PlayerState |
O status atual do player. |
|
currentPosition |
NSInteger |
A posição atual de reprodução em milissegundos. |
|
duration |
NSInteger |
A duração total do vídeo em milissegundos. |
|
stateStore |
PlayerStateStore * |
O armazenamento de status. |
|
strategyManager |
StrategyManager * |
O gerenciador de estratégias. |
|
lifecycleStrategy |
id<PlayerLifecycleStrategy> |
A estratégia de ciclo de vida atual. |
|
autoLifecycleManagement |
BOOL |
Especifique se o ciclo de vida em primeiro plano e segundo plano deve ser gerenciado automaticamente. Padrão: YES. |
|
controlsVisibilityLocked |
BOOL |
A flag de bloqueio para a visibilidade da barra de controle. |
Quando controlsVisibilityLocked está definido como YES, a solicitação setControlsVisible:NO é ignorada e a barra de controle permanece visível. Isso é útil em cenários interativos, como ao arrastar a barra de progresso, onde a barra de controle deve estar sempre exibida.
Construtores
|
Método |
Parâmetro |
Descrição |
|
|
- |
Crie um controlador com a estratégia de ciclo de vida padrão. |
|
|
|
Crie um controlador com uma estratégia de ciclo de vida personalizada. |
Configuração e controle de reprodução
|
Método |
Parâmetro |
Descrição |
|
|
AliPlayerModel * model |
Configure o player e prepare para reprodução. |
|
|
- |
Inicia ou retoma a reprodução. |
|
|
- |
Pausa a reprodução. |
|
|
- |
Alterna entre reproduzir e pausar. |
|
|
- |
Reinicia a reprodução desde o início. |
|
|
- |
Interrompe a reprodução. |
|
|
NSInteger position (milissegundos) |
Busca uma posição específica. |
|
|
float rate |
Defina a velocidade de reprodução. 1.0 é a velocidade normal. |
|
|
BOOL loop |
Defina se a reprodução deve ser em loop. |
|
|
BOOL muted |
Defina se o áudio deve ser silenciado. |
|
|
MirrorMode mirrorMode |
Defina o modo espelho. |
|
|
ScaleMode scaleMode |
Defina o modo de dimensionamento. |
|
|
RotateMode rotateMode |
Defina o ângulo de rotação. |
|
|
TrackQuality * quality |
Alterna a qualidade do vídeo. |
|
|
- |
Captura um snapshot do quadro de vídeo atual. |
Controle de UI
|
Método |
Parâmetro |
Valor de retorno |
Descrição |
|
|
|
|
Defina a visibilidade da barra de controle. |
|
|
|
|
Defina o modo de tela cheia com animação. |
|
|
|
|
Defina o modo de tela cheia com animação opcional. |
Métodos de ciclo de vida
|
Método |
Parâmetro |
Valor de retorno |
Descrição |
|
|
- |
|
Retoma a reprodução. Chame este método ao retornar do segundo plano. |
|
|
- |
|
Pausa a reprodução. Chame este método ao entrar em segundo plano. |
|
|
- |
|
Destrói o player e libera todos os recursos. |
Delegates de notificação
|
Método |
Parâmetro |
Valor de retorno |
Descrição |
|
|
|
|
Adiciona um delegate de notificação. Mantido por referência fraca. |
|
|
|
|
Remove um delegate de notificação. |
AliPlayerModel (APIs do Modelo)
O AliPlayerModel é o modelo de configuração do player. Ele encapsula todas as informações de configuração necessárias para a reprodução.
Propriedades
|
Propriedade |
Tipo |
Valor padrão |
Descrição |
|
|
|
- |
A source de dados de vídeo. Obrigatório. |
|
|
|
|
O tipo de cenário de reprodução. |
|
|
|
|
A url da miniatura. |
|
|
|
|
O título do vídeo. |
|
|
|
|
Especifique se a reprodução automática deve ser ativada. |
|
|
|
|
O identificador de rastreamento para monitoramento da qualidade de reprodução. |
|
|
|
|
A posição inicial em milissegundos. |
|
|
|
|
Especifique se a decodificação por hardware deve ser ativada. |
|
|
|
|
Especifique se a tela pode entrar em suspensão. |
|
|
|
|
Especifique se capturas de tela e gravação de tela devem ser desativadas. |
|
|
|
|
O callback de configuração personalizada no nível da instância. |
Métodos de criação
|
Método |
Parâmetro |
Valor de retorno |
Descrição |
|
|
|
|
Crie um modelo a partir de uma source de vídeo. Este é o inicializador designado. |
Sistema de notificações
O AliPlayerKit utiliza o padrão Dispatcher + Delegate para comunicação de eventos entre componentes. Cada AliPlayerController possui uma instância Dispatcher independente, o que evita interferências entre eventos de diferentes instâncias do player. Todos os callbacks são despachados na thread principal.
PlayerNotificationDelegate (Delegate de notificação do player)
Protocolo para callbacks de mudança de status do player. Todos os métodos são @optional.
Status de reprodução
|
Método |
Parâmetro |
Descrição |
|
|
|
O status do player foi alterado. |
|
|
|
O player está preparado e pronto para reprodução. |
|
|
- |
O primeiro quadro foi renderizado. |
|
|
- |
A reprodução foi concluída. |
Progresso da reprodução
|
Método |
Parâmetro |
Descrição |
|
|
position, duration, bufferedPosition (milissegundos) |
Relata o progresso da reprodução em intervalos regulares. |
Erros e snapshots
|
Método |
Parâmetro |
Descrição |
|
|
|
Ocorreu um erro de reprodução. |
|
|
|
Um snapshot foi capturado. |
Informações do vídeo
|
Método |
Parâmetro |
Descrição |
|
|
|
As dimensões do vídeo foram alteradas. |
Status da UI
|
Método |
Parâmetro |
Descrição |
|
|
|
O status de tela cheia foi alterado. |
|
|
|
A visibilidade da barra de controle foi alterada. |
Status de carregamento
|
Método |
Parâmetro |
Descrição |
|
|
- |
O buffer começou a carregar. |
|
|
- |
O carregamento do buffer terminou. |
|
|
|
O progresso do buffer foi atualizado. |
Modo de exibição
|
Método |
Parâmetro |
Descrição |
|
|
|
O modo espelho foi alterado. |
|
|
|
O modo de dimensionamento foi alterado. |
|
|
|
O modo de rotação foi alterado. |
Faixa
|
Método |
Parâmetro |
Descrição |
|
|
|
As informações sobre as faixas disponíveis estão prontas. |
|
|
|
A faixa foi alternada. |
GestureNotificationDelegate (Delegate de notificação de gestos)
Protocolo para callbacks de eventos de interação por gestos. Todos os métodos são @optional. Os eventos são multicast pelo GestureNotificationDispatcher.
Toque simples
|
Método |
Parâmetro |
Descrição |
|
|
- |
Um gesto de toque simples foi acionado. Geralmente usado para alternar a visibilidade da barra de controle. |
Pressão longa (velocidade de reprodução)
|
Método |
Parâmetro |
Descrição |
|
|
- |
Uma pressão longa começou. Isso ativa a reprodução acelerada. |
|
|
- |
Uma pressão longa terminou. Isso restaura a velocidade normal de reprodução. |
Brilho (arrasto vertical à esquerda)
|
Método |
Parâmetro |
Descrição |
|
|
|
O brilho está sendo ajustado. |
|
|
- |
O ajuste de brilho terminou. |
Volume (arrasto vertical à direita)
|
Método |
Parâmetro |
Descrição |
|
|
|
O volume está sendo ajustado. |
|
|
- |
O ajuste de volume terminou. |
SlotActionNotificationDelegate (Delegate de notificação de ações de slot)
Protocolo de notificação para eventos de ação entre slots. Utilizado para desacoplar chamadas diretas de métodos entre slots. Todos os métodos são @optional e são despachados assincronamente para a thread principal.
|
Método |
Parâmetro |
Descrição |
|
|
- |
Solicita a alternância da visibilidade do menu de configurações. Geralmente acionado pelo |
|
|
- |
Solicita a exibição do painel de seleção de velocidade de reprodução. Geralmente acionado pelo |
|
|
- |
Solicita a exibição do painel de seleção de qualidade de vídeo. Geralmente acionado pelo |
Protocolos do player
O AliPlayerKit define as capacidades principais e as restrições comportamentais do player por meio de protocolos.
MediaPlayer (Protocolo do player)
Este protocolo define a interface operacional central do player. Crie uma instância usando PlayerFactory.
Propriedades
|
Propriedade |
Tipo |
Descrição |
|
|
NSString * |
O identificador exclusivo do player. |
|
|
PlayerState |
O status atual da reprodução. |
|
|
NSInteger |
A posição atual em milissegundos. |
|
|
NSInteger |
A duração total em milissegundos. |
|
|
float |
A velocidade atual de reprodução. |
|
|
BOOL |
Especifique se a reprodução é em loop. |
|
|
BOOL |
Especifique se o áudio está silenciado. |
|
|
MirrorMode |
O modo espelho atual. |
|
|
ScaleMode |
O modo de dimensionamento atual. |
|
|
RotateMode |
O ângulo de rotação atual. |
|
|
PlayerStateStore * |
O armazenamento de status. |
Controle de reprodução
|
Método |
Parâmetro |
Descrição |
|
|
|
Defina a source de dados de vídeo. |
|
|
- |
Prepara os recursos do player assincronamente. |
|
|
- |
Inicia a reprodução. |
|
|
- |
Pausa a reprodução. |
|
|
- |
Alterna entre reproduzir e pausar. |
|
|
- |
Reinicia a reprodução desde o início. |
|
|
|
Busca uma posição específica. |
|
|
- |
Para a reprodução. |
|
|
- |
Destrói o player e libera recursos. |
Configurações de reprodução
|
Método |
Parâmetro |
Descrição |
|
|
|
Defina a velocidade de reprodução (0.5 a 2.0). |
|
|
|
Defina a reprodução em loop. |
|
|
|
Silencia o áudio. |
|
|
|
Defina o modo espelho. |
|
|
|
Defina o modo de dimensionamento. |
|
|
|
Defina o ângulo de rotação. |
|
|
|
Alterna a qualidade do vídeo. |
|
|
- |
Captura um snapshot do quadro atual. |
PlayerLifecycleStrategy (Protocolo de estratégia de ciclo de vida)
Este protocolo define o comportamento de obtenção e reciclagem de instâncias do player.
Métodos
|
Método |
Parâmetro |
Valor de retorno |
Descrição |
|
|
|
|
Injeta a factory do player. Deve ser chamado primeiro. |
|
|
- |
|
Obtém uma instância do player. |
|
|
player, |
|
Recicla uma instância do player. |
|
|
- |
|
Libera todas as instâncias em cache. |
|
|
|
|
Pré-carrega um número especificado de instâncias no pool. |
|
|
|
|
Obtém um player por id. Específico para a estratégia IdScoped. |
|
|
player, uniqueId, force |
|
Recicla um player por id. Específico para a estratégia IdScoped. |
Implementações de estratégias integradas
|
Classe de estratégia |
Comportamento |
Cenários |
|
|
Crie uma nova instância a cada vez e a destrói ao reciclar. |
Reprodução normal de vídeo. |
|
|
Instância única global (singleton |
Reprodução em lista, cenários sensíveis a memória. |
|
|
Pool de reutilização LIFO. |
Listas de vídeos curtos. |
|
|
Vinculação de id + evicção LRU. |
Pré-carregamento de vídeo. |
FullscreenTransition (Protocolo de transição para tela cheia)
Este protocolo define o comportamento de transição para entrar e sair do modo de tela cheia.
|
Método / Propriedade |
Parâmetro |
Descrição |
|
|
playerView, animated, completion |
Entra em tela cheia. |
|
|
playerView, animated, completion |
Sai da tela cheia. |
|
|
- |
Especifique se o player está no modo de tela cheia. |
A implementação padrão DefaultFullscreenTransition usa uma solução independente de rotação de Window. É possível injetar uma implementação personalizada via playerView.fullscreenTransition.
Sistema de slots
O sistema de slots fornece um mecanismo de gerenciamento de camada de UI componível e substituível.
SlotProtocol (Protocolo de slot)
Permite definir o callback de ciclo de vida do slot.
|
Método |
Parâmetro |
Descrição |
|
|
|
O slot é vinculado ao host. |
|
|
- |
O slot é desvinculado do host. |
|
|
|
Os dados de reprodução são vinculados. |
|
|
- |
Os dados de reprodução são desvinculados. |
BaseSlot (Classe base de slot)
A classe base abstrata para todos os slots integrados (uma subclasse de UIView) implementa o protocolo SlotProtocol e fornece capacidades comuns.
Propriedades
|
Propriedade |
Tipo |
Descrição |
|
|
id<SlotHost> |
O host ao qual o slot está vinculado. |
|
|
SlotType |
O identificador de tipo do slot. Injetado pelo SlotHostLayout. |
|
|
SlotSafeAreaEdge |
As bordas da área segura a serem evitadas. Padrão: All. |
|
|
BOOL |
A chave para criação adiada de conteúdo. |
|
|
BOOL |
Especifique se o conteúdo está pronto. |
|
|
BOOL |
A chave para repasse de toque. Padrão: YES. |
Métodos
|
Método |
Tipo |
Descrição |
|
|
- |
Subclasses substituem este método para adicionar elementos de UI personalizados. |
|
|
- |
Mostra ou oculta o slot. |
|
|
|
Mostra ou oculta o slot com animação. |
|
|
- |
Indica se está visível no momento. |
|
|
- |
Remove corretamente o slot através do host. |
|
|
- |
Subclasses substituem este método para declarar a máscara de bits dos elementos visíveis por padrão. |
|
|
|
Consulta a visibilidade final de um elemento específico. |
|
|
- |
Lê com segurança o tipo de cena atual. |
|
|
- |
Garante que o conteúdo adiado esteja pronto. |
SlotManager (Gerenciador de slots)
O SlotManager é o ponto de entrada unificado para gerenciamento do sistema de slots. Pode ser obtido usando AliPlayerView.slotManager.
Métodos de registro
|
Método |
Parâmetro |
Descrição |
|
|
type, bloco |
Registra ou substitui um provedor de slot. |
|
|
|
Cancela o registro de um provedor de slot. |
|
|
|
Verifica se está registrado. |
|
|
|
Registra um slot personalizado. |
|
|
|
Cancela o registro de um slot personalizado. |
Visibilidade do slot
|
Método |
Parâmetro |
Descrição |
|
|
|
Oculta um slot inteiro. |
|
|
|
Mostra um slot oculto. |
|
|
|
Verifica se um slot está oculto. |
Visibilidade no nível de elemento
|
Método |
Parâmetro |
Descrição |
|
|
|
Oculta elementos específicos dentro de um slot usando uma máscara de bits. |
|
|
|
Mostra elementos previamente ocultos. |
|
|
|
Substitui a máscara de elementos ocultos. Isso sobrescreve a máscara existente. |
|
|
|
Defina todos os elementos ocultos em lote. |
|
|
- |
Limpa todas as configurações de visibilidade de elementos. |
Acesso em tempo de execução
|
Método |
Parâmetro |
Valor de retorno |
Descrição |
|
|
|
|
Obtém a visualização do slot vinculado. |
|
|
- |
|
Reconstrói todos os slots. |
|
|
- |
|
Redefine para o status inicial. |
SlotType (Constantes de tipo de slot)
|
Constante |
Valor |
Descrição |
|
|
10 |
Camada de visualização de renderização do player (mais inferior). |
|
|
20 |
Camada de reconhecimento e controle de gestos. |
|
|
30 |
Camada de dica de paisagem. |
|
|
40 |
Camada de miniatura de vídeo. |
|
|
50 |
Camada de exibição central (velocidade de reprodução, brilho, volume). |
|
|
60 |
Camada indicadora de status de reprodução (carregando, erro, concluído). |
|
|
70 |
Camada do painel de log. |
|
|
80 |
Camada da barra de navegação superior. |
|
|
90 |
Camada da barra de controle inferior. |
|
|
100 |
Camada do menu de configurações. |
|
|
110 |
Camada do painel de opções (velocidade de reprodução, qualidade). |
CustomSlotType (Tipo de slot personalizado)
Utilizado para inserir slots personalizados entre os slots integrados. Os valores de enumeração SlotType integrados são organizados em intervalos de 10 (10, 20, ..., 110), e o CustomSlotType usa o campo order para especificar a posição de inserção.
|
Propriedade / Método |
Descrição |
|
|
Um identificador exclusivo usado para registro, consulta e verificações de igualdade. |
|
|
O valor de ordenação que determina a posição do slot no eixo Z. Um valor menor significa que ele é colocado mais abaixo. |
|
|
Crie uma instância de tipo de slot personalizado. |
// Insert a custom slot between TopBar (80) and BottomBar (90)
CustomSlotType *type = [CustomSlotType typeWithKey:@"myCustomSlot" order:85];
[playerView.slotManager registerCustomSlotType:type provider:^UIView<SlotProtocol> *(UIView *parentView) {
return [[MyCustomSlotView alloc] initWithFrame:parentView.bounds];
}];
SlotElements (Máscaras de bits de elementos de slot)
Use os métodos hideElements:forSlot: e showElements:forSlot: do SlotManager para implementar controle de visibilidade granular para elementos individuais da UI em um slot.
Elemento da Barra Superior (TopBarElement)
|
Constante |
Bit |
Descrição |
|
|
1 << 0 |
Botão Voltar. |
|
|
1 << 1 |
Texto do título. |
|
|
1 << 2 |
Botão Baixe. |
|
|
1 << 3 |
Botão Snapshot. |
|
|
1 << 4 |
Botão Configurações. |
BottomBarElement (Elementos da barra inferior)
|
Constante |
Bit |
Descrição |
|
|
1 << 0 |
Botão Reproduzir/Pausar. |
|
|
1 << 1 |
Barra de progresso. |
|
|
1 << 2 |
Botão Atualize. |
|
|
1 << 3 |
Botão de velocidade de reprodução. Visível apenas no layout paisagem. |
SettingMenuElement (Elementos do menu de configurações)
|
Constante |
Bit |
Descrição |
|
|
1 << 0 |
Opção de velocidade de reprodução. |
|
|
1 << 1 |
Informações de qualidade. |
|
|
1 << 2 |
Reprodução em loop. |
|
|
1 << 3 |
Silenciar. |
|
|
1 << 4 |
Modo espelho. |
|
|
1 << 5 |
Modo de rotação. |
|
|
1 << 6 |
Modo de dimensionamento. |
|
|
1 << 7 |
Legenda. |
CenterDisplayElement (Elementos da camada de exibição central)
|
Constante |
Bit |
Descrição |
|
|
1 << 0 |
Indicador de volume. |
|
|
1 << 1 |
Indicador de brilho. |
|
|
1 << 2 |
Indicador de velocidade de reprodução. |
GestureElement (Elementos de controle de gestos)
Estas constantes controlam a ativação e desativação de interações por gestos, não a visibilidade de elementos da UI. Quando um bit de gesto é definido como oculto, o gesto correspondente é desativado.
|
Constante |
Bit |
Descrição |
|
|
1 << 0 |
Gesto de toque simples. |
|
|
1 << 1 |
Gesto de toque duplo. |
|
|
1 << 2 |
Gesto de pressão longa. |
|
|
1 << 3 |
Arrasto horizontal (progresso). |
|
|
1 << 4 |
Arrasto vertical à esquerda (brilho). |
|
|
1 << 5 |
Arrasto vertical à direita (volume). |
PlayStateElement (Elementos da camada de status de reprodução)
|
Constante |
Bit |
Descrição |
|
|
1 << 0 |
Mensagem de erro. |
|
|
1 << 1 |
Mensagem de carregamento. |
Armazenamento de status
PlayerStateStore
O PlayerStateStore mantém um snapshot somente leitura do status atual de reprodução. Pode ser obtido através de AliPlayerController.stateStore.
|
Propriedade |
Tipo |
Valor padrão |
Descrição |
|
|
|
|
O status atual de reprodução. |
|
|
|
0 |
A duração total em milissegundos. |
|
|
|
0 |
A posição atual em milissegundos. |
|
|
|
0 |
A posição em buffer em milissegundos. |
|
|
|
1.0 |
A velocidade atual de reprodução. |
|
|
|
NO |
Especifique se a reprodução é em loop. |
|
|
|
NO |
Especifique se o áudio está silenciado. |
|
|
|
|
O modo espelho. |
|
|
|
|
O modo de dimensionamento. |
|
|
|
|
O ângulo de rotação. |
|
|
|
0 |
A largura original do vídeo. |
|
|
|
0 |
A altura original do vídeo. |
|
|
|
nil |
A lista de qualidades de vídeo disponíveis. |
|
|
|
nil |
A qualidade de vídeo selecionada atualmente. |
PlayerViewState
O PlayerViewState mantém o status persistente relacionado à camada de UI. Pode ser obtido através de AliPlayerView.viewState. Este status é mantido entre trocas de vídeo, e as atualizações de status incluem deduplicação automática.
|
Propriedade / Método |
Tipo |
Valor padrão |
Descrição |
|
|
|
|
Especifique se o player está no modo de tela cheia. |
|
|
|
|
Especifique se a barra de controle está visível. |
|
|
- |
- |
Redefine todos os status para seus valores padrão. |
|
|
|
- |
Atualize o status de tela cheia. |
|
|
|
- |
Atualize a visibilidade da barra de controle. |
Source de vídeo
VideoSource (Modelo de source de vídeo)
|
Propriedade |
Tipo |
Descrição |
|
|
|
O tipo de source de vídeo. |
|
|
|
O identificador exclusivo. Retorna |
|
|
|
A url do vídeo. Válido para o tipo url. |
|
|
|
O id do vídeo. Válido para VidAuth/VidSts. |
|
|
|
A credencial de reprodução. Válido para VidAuth. |
|
|
|
O AccessKeyId STS. |
|
|
|
O AccessKeySecret STS. |
|
|
|
O SecurityToken STS. |
|
|
|
O id da região. |
Métodos de factory
|
Método |
Parâmetro |
Valor de retorno |
Descrição |
|
|
vid, playAuth |
|
Crie uma source de vídeo VidAuth. Recomendado. |
|
|
vid, keyId, secret, token, region |
|
Crie uma source de vídeo VidSts. |
|
|
url |
|
Crie uma source de vídeo url. |
|
|
- |
|
Valida a configuração. |
VideoSourceType (Tipo de source de vídeo)
|
Constante |
Valor |
Descrição |
|
|
0 |
Credencial de reprodução VID + PlayAuth. Recomendado. |
|
|
1 |
Credencial temporária VID + STS. |
|
|
2 |
Reprodução direta por url. |
Sistema de estratégias
O sistema de estratégias fornece um mecanismo plugável para estender o comportamento de reprodução. Os nomes das estratégias devem ser globalmente exclusivos.
StrategyProtocol (Protocolo de estratégia)
Este protocolo define o contrato de ciclo de vida para uma estratégia. Os nomes das estratégias devem ser globalmente exclusivos.
|
Método |
Parâmetro |
Descrição |
|
|
- |
O nome identificador exclusivo da estratégia. |
|
|
|
A estratégia inicia e se vincula ao contexto do player. |
|
|
- |
A estratégia para e se desvincula do contexto. |
|
|
|
A estratégia é redefinida. Chamado quando a source de vídeo é alternada. |
StrategyContext (Contexto da estratégia)
O contexto de ambiente do player somente leitura é fornecido à estratégia e é criado e passado pelo StrategyManager quando a estratégia inicia.
|
Propriedade |
Tipo |
Descrição |
|
|
|
O controlador do player associado. |
|
|
|
O modelo de configuração de reprodução atual. |
|
|
|
O armazenamento de status do player. |
Este objeto deixa de ser válido após strategyDidStop, e você não deve continuar a usá-lo.
BaseStrategy (Classe base de estratégia)
Uma classe base abstrata para estratégias que implementa StrategyProtocol e PlayerNotificationDelegate para lidar automaticamente com a inscrição e cancelamento de inscrição de eventos do player.
|
Propriedade / Método |
Descrição |
|
|
O contexto atual da estratégia. Válido apenas entre |
|
|
Um método hook para subclasses redefinirem seu status interno, como limpar contadores ou temporizadores. |
Fluxo de ciclo de vida: strategyDidStart: → Salve contexto → Registrar agente de notificação → strategyDidReset: → Atualize contexto → Chamar resetInternalState → strategyDidStop → Cancelar registro do agente de notificação → Limpar contexto.
As classes filhas devem substituir o método strategyName. Se você substituir strategyDidStart:, strategyDidStop ou strategyDidReset:, deverá chamar super.
StrategyManager (Gerenciador de estratégias)
Cada AliPlayerController possui uma instância StrategyManager. As estratégias são executadas na ordem de registro, e as chamadas de ciclo de vida para cada estratégia são isoladas usando @try/@catch.
Métodos
|
Método |
Parâmetro |
Descrição |
|
|
|
Registra uma estratégia. Se existir uma estratégia com o mesmo nome, ela é parada e substituída. |
|
|
|
Cancela o registro de uma estratégia pelo nome. |
|
|
|
Localiza uma estratégia pelo nome. |
|
|
controller, playerModel |
Inicia todas as estratégias registradas. |
|
|
|
Redefine todas as estratégias. Usado quando a source de vídeo é alternada. |
|
|
- |
Para todas as estratégias. |
|
|
- |
Para e remove todas as estratégias. |
Propriedades
|
Propriedade |
Tipo |
Descrição |
|
|
|
O número de estratégias registradas atualmente. |
|
|
|
Indica se o gerenciador está em execução. |
StrategyRegistry (Registro global de estratégias)
O registro global de estratégias é um singleton que mantém um grupo de Blocks de factory de estratégias. Sempre que um novo AliPlayerController é criado, todas as factories registradas são instanciadas e injetadas no StrategyManager do controlador usando applyToManager:.
|
Método |
Parâmetro |
Descrição |
|
|
- |
Obtém o singleton do registro global. |
|
|
|
Adiciona uma factory de estratégia global. |
|
|
- |
Remove todas as factories de estratégias globais, incluindo as integradas. |
|
|
|
Instancia todas as estratégias globais e as registra no gerenciador especificado. |
|
|
- |
Restaura a configuração padrão de estratégias integradas. |
Estratégias integradas (FirstFrameStrategy, StutterDetectStrategy e TrafficProtectionStrategy) são registradas automaticamente no primeiro acesso.
Estratégias integradas
FirstFrameStrategy (Monitoramento de tempo até o primeiro quadro)
Mede o tempo desde o início do preparo do player até a renderização do primeiro quadro. Divide-se em fase de preparo (Preparing to Prepared) e fase de renderização (Prepared to FirstFrameRendered).
|
Propriedade |
Tipo |
Descrição |
|
|
|
Delegate de callback |
Callback FirstFrameStrategyDelegate:
|
Método |
Parâmetro |
Descrição |
|
|
strategy, prepareTimeMs, renderTimeMs, totalTimeMs |
O primeiro quadro foi renderizado. |
StutterDetectStrategy (Detecção de travamentos)
Detecta travamentos ouvindo eventos de Loading. O carregamento antes da renderização do primeiro quadro não é contabilizado.
|
Propriedade |
Tipo |
Descrição |
|
|
|
O número de travamentos na sessão atual. |
|
|
|
A duração total de travamentos na sessão atual, em milissegundos. |
|
|
|
O limiar de travamento em milissegundos. Padrão: 0. |
|
|
|
O delegate de callback. |
|
|
|
Crie uma estratégia de detecção de travamentos com um limiar especificado. |
Callback StutterDetectStrategyDelegate:
|
Método |
Parâmetro |
Descrição |
|
|
strategy, durationMs |
Um travamento foi detectado. |
|
|
strategy, stayDurationMs, validPlayDurationMs, totalStutterDurationMs, stutterCount |
A análise da sessão de reprodução foi concluída. |
TrafficProtectionStrategy (Proteção de tráfego)
Monitora mudanças no status da rede e detecta reprodução em redes celulares. Realiza apenas detecção e registro, não pausa automaticamente a reprodução.
|
Propriedade |
Tipo |
Descrição |
|
|
|
Especifique se o dispositivo está atualmente em uma rede celular. |
|
|
|
O delegate de callback. |
Callback TrafficProtectionStrategyDelegate:
|
Método |
Parâmetro |
Descrição |
|
|
strategy |
Reprodução em rede celular detectada. |
|
|
strategy |
A rede voltou para Wi-Fi. |
Sistema de logs
O sistema de logs fornece um mecanismo unificado para saída de log e registro de observadores.
LogHub (Central de logs)
A central de gerenciamento de logs (singleton) que unifica a saída de log e o registro de observadores. Usa um modelo de threading híbrido: a saída no console é realizada sincronamente na thread de chamada, enquanto as notificações aos observadores são despachadas assincronamente para uma fila serial em segundo plano.
Propriedades
|
Propriedade |
Tipo |
Valor padrão |
Descrição |
|
|
BOOL |
YES |
Especifique se a saída de log deve ser ativada. |
|
|
LogLevel |
LogLevelInfo |
O nível mínimo de saída de log. |
|
|
BOOL |
YES |
Especifique se a saída no console (NSLog) deve ser ativada. |
Gerenciamento de observadores
|
Método |
Parâmetro |
Descrição |
|
|
- |
Obtém o singleton compartilhado do LogHub. |
|
|
|
Adiciona um observador de log. Mantido por referência forte. |
|
|
|
Remove um observador de log. |
Saída de log
|
Método |
Parâmetro |
Descrição |
|
|
tag, message |
Emite um log de nível Verbose. |
|
|
tag, message |
Emite um log de nível Debug. |
|
|
tag, message |
Emite um log de nível Info. |
|
|
tag, message |
Emite um log de nível Warn. |
|
|
tag, message |
Emite um log de nível Error. |
|
|
tag, message, error (nullable) |
Emite um log de nível Error com um objeto de erro associado. |
|
|
level, tag, message |
Emite um log no nível especificado. |
Métodos utilitários
|
Método |
Parâmetro |
Valor de retorno |
Descrição |
|
|
|
|
Converte um nível de log em uma string abreviada (V/D/I/W/E/N). |
|
|
|
|
Converte uma string de nome de nível de volta para um valor de enumeração. |
LogObserver (Protocolo de observador de log)
Implemente este protocolo para receber todos os callbacks de saída de log para tratamento personalizado de logs, como gravar em arquivo ou relatar a um servidor.
|
Método |
Parâmetro |
Descrição |
|
|
|
O callback de saída de log. Executado em uma subthread. |
LogInfo (Modelo de informações de log)
O modelo de dados para uma única entrada de log.
|
Propriedade |
Tipo |
Descrição |
|
|
|
O nível do log. |
|
|
|
A tag do log. |
|
|
|
A mensagem do log. |
|
|
|
O timestamp. |
|
|
|
O nome da thread. |
|
|
|
O nome do arquivo de source. |
|
|
|
O número da linha no código-fonte. |
|
|
|
O objeto de erro associado. |
|
|
- |
Obtém a string de log formatada. |
Sistema de pré-carregamento
O sistema de pré-carregamento encapsula o recurso global de pré-carregamento do SDK do player. Pode ser obtido através de [AliPlayerKit preloader].
PlayerPreloader (Protocolo de pré-carregamento)
Este protocolo encapsula o recurso global de pré-carregamento do SDK do player. Pode ser obtido através de [AliPlayerKit preloader].
|
Método |
Parâmetro |
Valor de retorno |
Descrição |
|
|
task, delegate |
|
Adiciona uma tarefa de pré-carregamento. |
|
|
|
|
Cancela uma tarefa específica. |
|
|
|
|
Pausa uma tarefa específica. |
|
|
|
|
Retoma uma tarefa específica. |
|
|
- |
|
Cancela todas as tarefas de pré-carregamento. |
PlayerPreloadTask (Tarefa de pré-carregamento)
|
Propriedade |
Tipo |
Descrição |
|
|
|
A source de dados de vídeo. |
|
|
|
A configuração de pré-carregamento. |
|
|
videoSource, preloadConfig |
Crie uma tarefa de pré-carregamento. |
PlayerPreloadConfig (Configuração de pré-carregamento)
|
Propriedade |
Tipo |
Valor padrão |
Descrição |
|
|
|
3000 |
A duração do pré-carregamento em milissegundos. |
|
|
|
0 |
A posição inicial do pré-carregamento em milissegundos. |
|
|
|
|
O identificador de qualidade padrão. |
|
|
|
0 |
A resolução padrão. 0 significa sem limite. |
|
|
|
0 |
A taxa de bits padrão. 0 significa sem limite. |
|
|
|
0 |
O tempo limite de rede em milissegundos. 0 usa o padrão do SDK. |
|
|
|
0 |
O número de novas tentativas de rede. 0 usa o padrão do SDK. |
|
|
|
nil |
Informações de referência. |
|
|
|
nil |
Cabeçalhos de solicitação personalizados. |
Métodos de criação
|
Método |
Parâmetro |
Descrição |
|
|
- |
Crie uma configuração com definições padrão. |
|
|
preloadDuration, defaultQuality |
Crie uma configuração com duração de pré-carregamento e qualidade padrão especificadas. |
PreloadDelegate (Delegate de pré-carregamento)
Este protocolo recebe eventos de status para tarefas de pré-carregamento. Todos os métodos são @required.
Os callbacks podem ser acionados em uma thread em segundo plano. Você deve despachá-los para a thread principal para processamento.
|
Método |
Parâmetro |
Descrição |
|
|
taskId, source |
A tarefa de pré-carregamento foi concluída. |
|
|
taskId, source, error |
A tarefa de pré-carregamento falhou. |
|
|
taskId, source |
A tarefa de pré-carregamento foi cancelada. |
Sistema de localização
O sistema de localização gerencia o suporte multilíngue para o PlayerKit. Suporta três modos: seguir automaticamente o idioma do sistema, especificar um idioma manualmente ou usar provedores personalizados.
LocaleManager (Gerenciador de localização)
O gerenciador de localização (singleton) que gerencia o suporte multilíngue para o PlayerKit.
Cadeia de Resolução: Provedor Personalizado (se injetado) → Bundle para o idioma especificado manualmente (Modo Manual) → Bundle do SDK que segue o idioma do sistema → Retorna a própria chave como fallback.
Propriedades
|
Propriedade |
Tipo |
Descrição |
|
|
|
O código do idioma atual. |
|
|
|
O modo de idioma atual. |
|
|
|
O provedor personalizado injetado atualmente. |
Métodos
|
Método |
Parâmetro |
Descrição |
|
|
- |
Obtém a instância singleton. |
|
|
|
Defina o idioma manualmente. Muda para o Modo Manual. |
|
|
|
Injeta um provedor personalizado. Mantido por referência fraca. Passe |
|
|
- |
Redefine o idioma para seguir o idioma do sistema. |
|
|
|
Consulta uma string localizada. |
LocaleMode (Modo de idioma)
|
Constante |
Valor |
Descrição |
|
|
0 |
Segue o idioma do sistema. Este é o padrão. |
|
|
1 |
Especifique manualmente o código do idioma. |
LocaleProvider (Protocolo de provedor de localização)
O aplicativo host pode implementar este protocolo para fornecer traduções personalizadas para o PlayerKit.
|
Método |
Parâmetro |
Valor de retorno |
Descrição |
|
|
|
|
Retorna uma string localizada para uma chave especificada. Retornar |
LocaleDidChangeNotification (Notificação de alteração de idioma)
Quando o modo de idioma ou o código do idioma muda, uma notificação LocaleDidChangeNotification é enviada na thread principal. O dicionário userInfo contém o novo código de idioma sob a chave LocaleLanguageCodeKey.
Enumerações e constantes principais
Tipos de enumeração principais usados no AliPlayerKit.
PlayerState (Status do player)
|
Constante |
Valor |
Descrição |
|
|
0 |
Ocioso. Inicializado, mas nenhum recurso carregado. |
|
|
1 |
Preparando. Carregando recursos assincronamente. |
|
|
2 |
Preparado. Pronto para iniciar a reprodução. |
|
|
3 |
Reproduzindo. |
|
|
4 |
Pausado. |
|
|
5 |
Concluído. |
|
|
6 |
Parado. |
|
|
7 |
Status de erro. |
SceneType (Tipo de cenário)
|
Constante |
Valor |
Descrição |
|
|
0 |
Cenário de vídeo sob demanda |
|
|
1 |
Cenário de transmissão ao vivo. |
|
|
2 |
Cenário de lista de vídeos ou fluxo de vídeos curtos. |
|
|
3 |
Cenário de reprodução restrita. |
|
|
4 |
Cenário de página de reprodução minimalista. |
ScaleMode (Modo de dimensionamento)
|
Constante |
Valor |
Descrição |
|
|
0 |
Estica para preencher a visualização. |
|
|
1 |
Dimensiona proporcionalmente para caber na visualização. Pode deixar barras pretas. |
|
|
2 |
Dimensiona proporcionalmente e corta para preencher. |
MirrorMode (Modo espelho)
|
Constante |
Valor |
Descrição |
|
|
0 |
Sem espelhamento. |
|
|
1 |
Espelhamento horizontal. |
|
|
2 |
Espelhamento vertical. |
RotateMode (Modo de rotação)
|
Constante |
Valor |
Descrição |
|
|
0 |
0 graus. |
|
|
90 |
90 graus. |
|
|
180 |
180 graus. |
|
|
270 |
270 graus. |
LogLevel (Nível de log)
|
Constante |
Valor |
Descrição |
|
|
0 |
As informações de depuração mais detalhadas. |
|
|
1 |
Nível de depuração. |
|
|
2 |
Nível informativo. Este é o padrão. |
|
|
3 |
Nível de aviso. |
|
|
4 |
Nível de erro. |
|
|
100 |
Desativa todos os logs. |
TrackType (Tipo de faixa)
|
Constante |
Valor |
Descrição |
|
|
0 |
Desconhecido. |
|
|
1 |
Faixa de vídeo. |
|
|
2 |
Faixa de áudio. |
|
|
3 |
Faixa de legenda. |
|
|
4 |
Faixa VOD. |