nova_native_player
A Flutter native video player plugin for iOS and Android with full-featured controls, HLS/DASH support, danmaku (barrage), DLNA casting, Picture-in-Picture, and more.
Features
- Native playback - Uses platform-native players (AVPlayer on iOS, ExoPlayer on Android)
- HLS & DASH - Supports m3u8, mpd streaming formats
- Full controls - Play, pause, seek, volume, brightness, playback speed
- Danmaku/Barrage - Built-in danmaku overlay support
- DLNA casting - Cast video to DLNA devices
- Picture-in-Picture - PiP mode on supported devices
- Fullscreen - Portrait and landscape fullscreen with orientation lock
- Episode selector - Built-in episode list UI
- Quality selector - Multi-quality HLS switching
- Custom UI - Customizable progress bar, buttons, loading GIF, toast
Platform Support
| Platform | Support |
|---|---|
| iOS | ✅ |
| Android | ✅ |
Installation
Add to your pubspec.yaml:
dependencies:
nova_native_player: ^0.0.1
Then run:
flutter pub get
Usage
import 'package:nova_native_player/nova_native_player.dart';
// Create a controller
final controller = PlayerController();
// Build the player view
PlayerView(controller: controller)
// After the view is created, play a video
await controller.play('https://example.com/video.m3u8');
// Listen to events
controller.eventStream.listen((event) {
print('Event: ${event.event} ${event.params}');
});
// Control playback
await controller.pause();
await controller.resume();
await controller.seek(30.0); // Seek to 30 seconds
await controller.setRate(1.5); // 1.5x speed
await controller.enterFullscreen();
API Overview
PlayerController
- Playback:
play(),pause(),resume(),stop(),seek() - Info:
getCurrentTime(),getDuration(),getVolume(),getBrightness() - Settings:
setRate(),setVolume(),setMuted(),setBrightness() - Fullscreen:
enterFullscreen(),exitFullscreen(),lockOrientation() - Danmaku:
addBarrageText(),setBarrageVisible(),clearBarrage() - PiP:
enterPIP(),exitPIP() - DLNA:
startDLNADiscovery(),connectDLNADevice(),dlnaPlay(), etc. - UI:
setPlayerTitle(),setProgressSliderColor(),showEpisodeSelector(), etc.
PlayerView
A widget that renders the native video player. Pass a PlayerController to control playback and receive events.
License
MIT
Libraries
- nova_native_player
- Nova Native Player - Flutter video player plugin for iOS and Android.
- player_plugin
- player_plugin.dart Dart API for the native video player (iOS + Android).