video_list_player 0.0.9 copy "video_list_player: ^0.0.9" to clipboard
video_list_player: ^0.0.9 copied to clipboard

A Flutter package for seamless video playback using video_player. Supports auto transitions and manual play, pause, next, and previous controls for playlists.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:video_list_player/video_list_player.dart';
import 'package:video_list_player/video_list_player_controller.dart';
import 'package:video_player/video_player.dart';

void main() {
  runApp(MaterialApp(
    home: MyScreen(),
  ));
}

/// The main screen that contains the [VideoListPlayer] widget and playback controls.
///
/// This screen allows users to interact with the video player, including playing, pausing,
/// skipping to the next or previous video using the provided control buttons.
class MyScreen extends StatefulWidget {
  const MyScreen({super.key});

  @override
  State<MyScreen> createState() => _MyScreenState();
}

class _MyScreenState extends State<MyScreen> {
  /// The controller responsible for managing video playback.
  VideoListPlayerController? _controller;

  @override
  void initState() {
    super.initState();
    _init();
  }

  /// Initializes the video player controllers and the [VideoListPlayerController].
  Future<void> _init() async {
    final controllers = [
      VideoPlayerController.networkUrl(Uri.parse("https://flutter.github.io/assets-for-api-docs/assets/videos/bee.mp4")),
      VideoPlayerController.networkUrl(Uri.parse("https://flutter.github.io/assets-for-api-docs/assets/videos/butterfly.mp4")),
    ];

    // Initialize all video controllers
    for (var c in controllers) {
      await c.initialize();
    }

    // Create the [VideoListPlayerController] with the list of video controllers
    final controller = VideoListPlayerController(controllers: controllers, autoMode: true);

    setState(() {
      _controller = controller;
    });

    _controller!.onUpdate = () {
      if (mounted) setState(() {});
    };
  }

  @override
  Widget build(BuildContext context) {
    if (_controller == null) {
      return const Center(child: CircularProgressIndicator());
    }

    return Scaffold(
      body: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        crossAxisAlignment: CrossAxisAlignment.center,
        children: [
          // Display the video player
          VideoListPlayer(aspectRatio: 16 / 9, controller: _controller!),
          Row(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              IconButton(
                  onPressed: _controller!.previous,
                  icon: const Icon(Icons.skip_previous)),
              IconButton(
                  onPressed: () {
                    _controller!.currentController.value.isPlaying
                        ? _controller!.pause()
                        : _controller!.play();
                  },
                  icon: Icon(_controller!.currentController.value.isPlaying
                      ? Icons.pause
                      : Icons.play_arrow)),
              IconButton(
                  onPressed: _controller!.next,
                  icon: const Icon(Icons.skip_next)),
            ],
          )
        ],
      ),
    );
  }
}
2
likes
150
points
34
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

A Flutter package for seamless video playback using video_player. Supports auto transitions and manual play, pause, next, and previous controls for playlists.

Repository (GitHub)
View/report issues

License

MIT (license)

Dependencies

flutter, video_player

More

Packages that depend on video_list_player