fancy_video_player 0.0.11 copy "fancy_video_player: ^0.0.11" to clipboard
fancy_video_player: ^0.0.11 copied to clipboard

PlatformAndroid

Advanced video player based on exoplayer2. It's easy to use and very customizable.

example/lib/main.dart

import 'package:fancy_video_player/fancy_video_player.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:fancy_video_player/models/Subtitle.dart';

void main() => runApp(const MyApp());

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      home: Example(),
    );
  }
}

class Example extends StatefulWidget {
  const Example({super.key});

  @override
  State<Example> createState() => _ExampleState();
}

class _ExampleState extends State<Example> {
  FancyVideoPlayer videoPlayer = FancyVideoPlayer();

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('Fancy Video Player Example')),
      body: Center(
        child: OutlinedButton(
          onPressed: () => _startPlayer(),
          child: const Text('Start Player'),
        ),
      ),
    );
  }

  void _startPlayer() {
    List<Subtitle> subtitles = [
      Subtitle(
          "https://cc.zorores.com/5c/c0/5cc0d2efb436af0abd5e985cc554ca0f/rus-10.vtt",
          "russian"),
      Subtitle(
          "https://cc.zorores.com/5c/c0/5cc0d2efb436af0abd5e985cc554ca0f/fre-7.vtt",
          "french"),
    ];

    videoPlayer.setErrorCallback((error) {
      Navigator.push(
        context,
        MaterialPageRoute(
          builder: (context) => Scaffold(
            appBar: AppBar(
              title: Text("backup page"),
            ),
          ),
        ),
      );
    });

    videoPlayer.setOnErrorBoxClicked(() {
      print("Error box clicked");
      // SystemNavigator.pop();

      // Navigator.push(
      //   context,
      //   MaterialPageRoute(
      //     builder: (context) => Scaffold(
      //       appBar: AppBar(
      //         title: Text("another backup page"),
      //       ),
      //     ),
      //   ),
      // );
    });

    videoPlayer.setOnBackPressed(() {
      // SystemNavigator.pop();
    });

    videoPlayer.startPlayer(
        url:
            "https://tc-1.dayimage.net/_v6/4ffd220a1b0c2ac997d68410008fa1bc969fa4150c395ccde923f07e96cd3bdb172bbb0c9f8a913ba948d0bf4600327c27870d16f6de2f37b11dc1257e52eee41d034772aaa591984e07d8663690e9bbe7eac6c0508847b9888a22c113c63e0bee600a780a8468ded132c189007122cd2cb5d888a077b7d127e25433d5ad20a1/master.m3u8",
        headers: {
          "Referer": "https://rapid-cloud.co/",
        },
        subtitles: subtitles);
  }
}
1
likes
140
points
18
downloads

Publisher

unverified uploader

Weekly Downloads

Advanced video player based on exoplayer2. It's easy to use and very customizable.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on fancy_video_player

Packages that implement fancy_video_player