Advanced Flutter media player kit with modern controls.
π₯ HLS Streaming β’ π¬ Reels Support β’ πΊ Subtitles β’ β‘ Background Playback
Advanced Flutter media player kit with modern controls, subtitles, cache, reels support and background playback.
- π¬ Video Player β YouTube / Netflix / Minimal styles
- πΊ HLS / M3U8 Streaming
- πͺ Mini Player β YouTube-style draggable floating player
- π Subtitles β SRT and WebVTT with real-time sync
- π΅ Audio Player β Podcast / Music (full, compact, minimal)
- π± Reels Player β TikTok/Instagram style vertical feed
- β― Background Playback β plays when app is minimized
- π Auto Resume β saves and restores playback position
- π Analytics β watch time, pause count, completion %
- π Gestures β double-tap seek, swipe volume/brightness
- π Fullscreen Support
- π¨ Custom Themes & Controls
Add this to your pubspec.yaml:
dependencies:
smart_player_kit: ^1.0.0Then run:
flutter pub getimport 'package:smart_player_kit/smart_player_kit.dart';
SmartPlayer.network(
'https://example.com/video.mp4',
title: 'My Video',
);SmartPlayer.network(
'https://example.com/video.mp4',
title: 'My Video',
);SmartPlayer.config(
SmartPlayerConfig.hls(
'https://example.com/stream.m3u8',
autoPlay: true,
),
title: 'Live Stream',
);SmartPlayer.config(
SmartPlayerConfig.network(
'https://example.com/video.mp4',
controlsStyle: SmartPlayerControlsStyle.netflix,
theme: SmartPlayerTheme.netflix(),
),
title: 'Netflix Style',
);SmartPlayer.config(
SmartPlayerConfig.network(
'https://example.com/video.mp4',
resumePlayback: true,
resumeKey: 'my_video_1',
),
title: 'Resume Demo',
);final playerCtrl = SmartPlayerController(
config: SmartPlayerConfig.network(
url,
autoPlay: true,
),
);
final miniCtrl = MiniPlayerController();
miniCtrl.openMiniPlayer(
title: 'My Video',
subtitle: 'Channel Name',
);
miniCtrl.minimize();
SmartMiniPlayer(
miniController: miniCtrl,
playerController: playerCtrl,
videoWidget: VideoPlayer(playerCtrl.videoController!),
onExpand: () {
// show full player
},
);SmartReelsPlayer(
videos: [
ReelItem(
videoUrl: 'https://example.com/reel1.mp4',
authorName: 'flutter_dev',
description: 'My first reel!',
likeCount: 1200,
commentCount: 34,
),
],
onLike: (index, item) {},
onComment: (index, item) {},
onShare: (index, item) {},
);SmartAudioPlayer(
audioUrl: 'https://example.com/audio.mp3',
title: 'My Podcast',
artist: 'Sunny Singh',
style: AudioPlayerStyle.full,
);final controller = SmartPlayerController(
config: SmartPlayerConfig.network(url),
);
await controller.initialize();
controller.subtitleController.parseAndLoad(
vttString,
SubtitleFormat.webvtt,
);| Style | Description |
|---|---|
| Minimal | Lightweight clean controls |
| YouTube | Familiar YouTube-like controls |
| Netflix | OTT / Netflix style controls |
| Platform | Support |
|---|---|
| Android | β |
| iOS | β |
- Flutter
>=3.10.0 - Dart
>=3.0.0
- Chromecast Support
- Download & Offline Playback
- DRM Support
- Playlist Queue
- PiP (Picture in Picture)
- Web Support
Contributions are welcome!
If youβd like to improve smart_player_kit, feel free to:
- Fork the repo
- Create a new branch
- Make your changes
- Submit a Pull Request
Please open an issue on GitHub if you find bugs or want to request features.
MIT License β Copyright (c) 2026 Sunny Singh
See LICENSE for details.

