Sobre o projeto

Chewie é um pacote de interface de usuário para reprodução de vídeo em Flutter, construído sobre o plugin de nível inferior video_player. As aplicações inicializam e configuram um VideoPlayerController, passam-no para um ChewieController junto com opções de reprodução e, em seguida, exibem um widget Chewie. O README enfatiza que Chewie é apenas a camada de interface: falhas de reprodução e PlatformExceptions originadas do video_player estão fora de sua responsabilidade. Ambos os controladores devem ser descartados após o uso. O pacote fornece skins de controle para Material, Material desktop e Cupertino. Seus recursos documentados incluem reprodução automática, repetição, posições iniciais configuráveis, interface de transmissão ao vivo, placeholders, cores personalizadas da barra de progresso, sobreposições personalizadas, tratamento de rota e orientação em tela cheia, gerenciamento de sobreposição do sistema, controle de wakelock/sono, widgets de erro personalizados e controles personalizados. A folha de opções normalmente expõe velocidade de reprodução e legendas, mas as aplicações podem adicionar entradas OptionItem localizadas ou substituir a folha inteira com optionsBuilder. A opção pauseOnBackgroundToggle alterna a reprodução quando a área de vídeo é tocada. As legendas são fornecidas como uma lista de objetos Subtitle com campos de índice, início, fim e texto. Elas podem ser exibidas por padrão, estilizadas com SubtitleStyle ou renderizadas completamente através de subtitleBuilder. Chewie pode renderizar marcações inline comuns de WebVTT/SubRip, como tags de negrito, itálico, sublinhado e cor de fonte. Tags de sinalização não suportadas são removidas enquanto seu texto é mantido, escapes são decodificados e a análise é intencionalmente flexível; a renderização de marcações pode ser desativada. Os capítulos são fornecidos como uma lista de objetos ChewieChapter em ordem crescente de tempo, produzindo barras de progresso segmentadas com títulos de capítulo durante o hover ou a varredura. O suporte a transmissão fornece o botão de transmissão, seletor de dispositivos, sobreposição de transmissão, transferência local-para-remota e roteamento de controle, mas deliberadamente não inclui um remetente do SDK de transmissão. As aplicações implementam ChewieCastController para descoberta, estado da sessão e reprodução remota, e fornecem CastMedia com uma URL acessível pelo receptor. Na conexão, Chewie pausa a reprodução local, carrega a mídia remota na posição atual, mostra uma sobreposição e roteia comandos de reprodução; a desconexão reverte o processo. O exemplo inclui um controlador de transmissão falso, e widgets adicionais da barra de controle podem ser adicionados para casos como um seletor de rota AirPlay. O README lista badges de plataforma Android, iOS e web, inclui uma aplicação de exemplo, documenta a migração de versões anteriores a 0.9.0 e observa ressalvas de plataforma: um problema de estado de buffer do video_player no Android pode ocultar controles e tem apenas soluções parciais, enquanto a reprodução no simulador iOS requer uma versão suficientemente recente do Flutter.