Pakete, Repositories und App-Kategorien suchen

Paketdetailsv1.30.0

better_player

Fortgeschrittener Videoplayer. Er löst viele typische Anwendungsfälle und ist einfach zu bedienen.

30-Tage-Downloads
6420
Likes
1310
Pub-Punkte
160

Paket installieren

flutter pub add better_player

Paketübersicht

Aus öffentlichen Paketdaten erstellte Orientierung.

Better Player ist ein erweiterter Videoplayer für Flutter, der häufige Herausforderungen bei der Videowiedergabe mit einer einfachen und intuitiven API löst. Er unterstützt verschiedene Streaming-Protokolle, adaptive Bitraten-Streaming und bietet anpassbare UI-Komponenten. Durch die einfache Handhabung ermöglicht er Entwicklern eine schnelle Implementierung robuster Videowiedergabefunktionen auf verschiedenen Plattformen. Das Paket ist gut dokumentiert und aktiv gepflegt, was es ideal für Apps mit hochwertigen Videoerlebnissen macht.

Anwendungsfälle

  • Streaming-Videoinhalte
  • Adaptive Bitrate-Wiedergabe
  • Benutzerdefinierte Video-Oberflächen
  • Offline-Videowiedergabe
  • Live-Video-Streaming

Hauptmerkmale

  • Unterstützung mehrerer Videoformate
  • Eingebaute Steuerungen und Gesten
  • Erweiterbares Widget-System
  • Niedrige Latenzwiedergabe
  • Integration mit HLS und DASH

Geeignet für

  • Video-intensive Anwendungen
  • Bildungsplattformen
  • Medien-Streaming-Dienste
  • On-Demand-Video-Apps
  • Live-Veranstaltungsbroadcasting

Hinweise

  • Benötigt zusätzliche Einrichtung für erweiterte Funktionen
  • Eingeschränkte plattformspezifische Anpassung
  • Abhängig von externen Abhängigkeiten
  • Kann die App-Größe erhöhen
  • Erforderliche Behandlung von Netzwerkberechtigungen

Original-README

Originaler README-Schnappschuss aus dem verknüpften Quell-Repository. Aktuelle Inhalte finden Sie im Repository.

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 →

Kategorien

Abhängigkeiten

Abhängigkeiten 17 Einträge

Quell-Repository

Projekte, die dieses Paket verwenden