kenji_player 1.0.2 copy "kenji_player: ^1.0.2" to clipboard
kenji_player: ^1.0.2 copied to clipboard

Kenji Video Player is a video player for flutter. The video_player plugin gives low level access for the video playback.

Kenji Video Player #

Kenji Video Player is a video player for Flutter.
The video_player plugin gives low level access for the video playback. Kenji Player wraps video_player under the hood and provides a base architecture for developers to create their own set of UI and functionalities.

Features #

  • Double tap to seek video.
  • On video tap play/pause, mute/unmute, or perform any action on video.
  • Auto hide controls.
  • Subtitle
  • Subtitle control
  • Custom animations.
  • Custom controls for normal and fullscreen.
  • Auto-play list of videos.
  • Change playback speed.
  • Change quality select.
  • Custom ads
  • Google IMA ads show on player
  • Volume & Brightness control
  • OP start, OP end & END start, END end - seek
  • Screen lock mode
  • Thumbnail
  • BoxFit for video
  • Wakelock
  • Custom widget
  • HLS (tracks, segmented subtitles)
  • Headers
  • Etc...

Example Usage #

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:kenji_player/kenji_player.dart';

class DefaultVideoPlayer extends StatefulWidget {
  const DefaultVideoPlayer({Key? key}) : super(key: key);

  @override
  State<DefaultVideoPlayer> createState() => DefaultVideoPlayerState();
}

class DefaultVideoPlayerState extends State<DefaultVideoPlayer>
    with WidgetsBindingObserver {
  late GlobalKey _playerKey;
  late KenjiPlayerController _controller;

  @override
  void initState() {
    super.initState();
    _playerKey = GlobalKey();
    _controller = KenjiPlayerController();
  }

  @override
  void dispose() {
    WidgetsBinding.instance.removeObserver(this);
    SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
    SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual,
        overlays: SystemUiOverlay.values);
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Colors.blueGrey,
      body: SizedBox(
        width: MediaQuery.of(context).size.width,
        height: MediaQuery.of(context).size.height,
        child: KenjiPlayer(
          key: _playerKey,
          controller: _controller,
          autoPlay: true,
          style: CustomKenjiPlayerStyle(context: context, controller: _controller),
          source: {
            'default': VideoSource(
              video: VideoPlayerController.network(
                'https://your_video_url.mp4',
              ),
            ),
          },
        ),
      ),
    );
  }
}

class CustomKenjiPlayerStyle extends KenjiPlayerStyle {
  CustomKenjiPlayerStyle({
    required BuildContext context,
    required KenjiPlayerController controller,
  }) : super(
          textStyle: const TextStyle(color: Colors.black),
          progressBarStyle: ProgressBarStyle(
            bar: BarStyle.progress(color: Colors.red),
          ),
          header: Container(
            width: double.infinity,
            padding: const EdgeInsets.all(10),
            child: InkWell(
              onTap: () async {
                if (controller.isFullScreen) {
                  await controller.openOrCloseFullscreen();
                } else {
                  Navigator.pop(context);
                }
              },
              child: const Text(
                'Hi',
                style: TextStyle(color: Colors.white),
              ),
            ),
          ),
          thumbnail: SizedBox(
            width: MediaQuery.of(context).size.width,
            height: MediaQuery.of(context).size.height,
            child: Image.network(
              'https://image.tmdb.org/t/p/original/cm2oUAPiTE1ERoYYOzzgloQw4YZ.jpg',
              fit: BoxFit.cover,
            ),
          ),
        );
}
2
likes
0
points
214
downloads

Publisher

unverified uploader

Weekly Downloads

Kenji Video Player is a video player for flutter. The video_player plugin gives low level access for the video playback.

Repository (GitHub)
View/report issues

Topics

#video-player

License

unknown (license)

Dependencies

animate_do, battery_plus, flutter, get_storage, http, iconsax_flutter, interactive_media_ads, path_provider, provider, screen_brightness, url_launcher, video_player, volume_controller, wakelock_plus

More

Packages that depend on kenji_player