Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev1.30.0

better_player

Player de vídeo avançado. Resolve muitos casos de uso comuns e é fácil de executar.

Downloads em 30 dias
6,4 mil
Curtidas
1,3 mil
Pontos Pub
160

Instalar pacote

flutter pub add better_player

Visão geral do pacote

Orientação gerada a partir de informações públicas. Apenas para referência.

Better Player é um player de vídeo avançado para Flutter que resolve desafios comuns de reprodução de vídeo com uma API simples e intuitiva. Ele suporta vários protocolos de streaming, streaming com taxa de bits adaptativa e oferece componentes de interface personalizáveis. Projetado para facilitar o uso, permite que desenvolvedores implementem rapidamente funcionalidades robustas de reprodução de vídeo em diferentes plataformas. O pacote é bem documentado e mantido ativamente, tornando-o ideal para aplicativos que exigem experiências de vídeo de alta qualidade.

Casos de uso

  • conteúdo de vídeo em streaming
  • Reprodução de taxa de bits adaptativa
  • UIs de vídeo personalizadas
  • Reprodução de vídeo offline
  • Transmissão ao vivo de vídeo

Principais recursos

  • Suporte a vários formatos de vídeo
  • Controles e gestos embutidos
  • Sistema de widget extensível
  • Reprodução com baixa latência
  • Integração com HLS e DASH

Indicado para

  • Aplicações com foco em vídeo
  • Plataformas educacionais
  • Serviços de streaming de mídia
  • Aplicativos de vídeo sob demanda
  • Transmissão ao vivo de eventos

Considerações

  • Requer configuração adicional para recursos avançados
  • Personalização específica de plataforma limitada
  • Depende de dependências externas
  • Pode aumentar o tamanho do aplicativo
  • Necessita de tratamento adequado das permissões de rede

README original

Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.

Better Player

pub package pub package pub package

Better Player handles the complex video playback edge cases so you don't have to. Originally based on video_player, it's now fully independent. It tackles HLS, DRM, and caching out of the box.

[IMPORTANT] Migrating from 0.0.84 to 1.x.x? See the Migration Guides section below.


📱 Visual Showcase

Default Controls Settings Menu Audio Tracks Event Listener

🏆 vs Competitors

Why choose Better Player? Here is how it stacks up against the alternatives.

Feature Better Player video_player chewie media_kit
Engine ExoPlayer/AVPlayer/Shaka ExoPlayer/AVPlayer video_player libmpv
UI Controls ✅ Built-in & Customizable ❌ None ✅ Built-in ✅ Built-in
HLS / DASH ✅ Native ⚠️ Basic ⚠️ Basic ✅ Native
DRM Support ✅ Widevine/FairPlay/ClearKey ❌ None ❌ None ❌ None
Subtitles ✅ Advanced (WebVTT, HTML, SRT) ⚠️ Basic (SRT only) ⚠️ Basic ✅ Advanced
Caching ✅ Built-in ❌ None ❌ None ❌ None
Playlists ✅ Built-in ❌ None ❌ None ✅ Built-in

🚀 Key Features

  • Adaptive Streaming: Play HLS, DASH, and Smooth Streaming with automatic track selection.
  • DRM Support: Protect your content with Widevine, FairPlay, and ClearKey.
  • Smart Caching: Cache videos for seamless offline playback.
  • Picture in Picture (PiP): Keep videos playing while users multitask.
  • Advanced Subtitles: Parse SRT and WebVTT, including HTML tags.

📦 Quick Start

1. Add dependency

Add Better Player to your pubspec.yaml:

dependencies:
  better_player: ^1.10.0
2. Basic Usage

Use the network factory to get a player up and running fast.

import 'package:better_player/better_player.dart';

// Inside your build method
AspectRatio(
  aspectRatio: 16 / 9,
  child: BetterPlayer.network(
    "https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4",
    betterPlayerConfiguration: PlayerConfiguration(
      aspectRatio: 16 / 9,
      looping: true,
      autoPlay: true,
    ),
  ),
)
3. Advanced Controller Usage

Need full control? Initialize a BetterPlayerController manually.

BetterPlayerController _controller = BetterPlayerController(
    const PlayerConfiguration(),
    betterPlayerDataSource: PlayerDataSource(
        DataSourceType.network,
        "https://example.com/video.mp4",
    ),
);

BetterPlayer(controller: _controller)

🤖 AI Agent Quick Reference

Writing a script or prompt? Feed this to your AI to get the right code on the first try.

  • Initialization: Always initialize BetterPlayerController in initState() with a PlayerConfiguration and PlayerDataSource.
  • Core Classes:
    • BetterPlayerController: Manages state and configuration.
    • PlayerDataSource: Wraps video URL, DRM config, subtitles, headers.
    • PlayerConfiguration: UI, looping, autoPlay, aspect ratio.
    • PlayerControlsConfiguration: Colors, icons, padding for the control bar.
  • Subtitles: Pass PlayerSubtitlesSource directly into PlayerDataSource.
  • Disposal: Default is autoDispose: true. Avoid manual controller.dispose() unless you opt out.

🔄 Migration Guides

Moving from another package? Follow these guides:


📖 Resources


🤝 Contributing

Bugs? Feature requests? Open an issue. Better yet, submit a PR.

💼 Enterprise Support

Need a custom video source adapter, bespoke DRM implementation, or tailored UI controls? I'm available for consulting.

Let's talk on LinkedIn →

Categorias

Dependências

Lista de dependências 17 itens

Repositório-fonte

Projetos que usam este pacote