max_player 3.0.1
max_player: ^3.0.1 copied to clipboard
Max Player is a simple package to that helps you to play videos from your local, network and from the internet weather youtube, vimeo, etc.
3.0.1 #
- Fix: YouTube videos now extract HLS streams in addition to muxed streams, enabling higher quality options (720p, 1080p+) when available. Previously only muxed streams were used which are typically limited to 360p.
3.0.0 #
New Features #
- Position & Status Streams:
positionStream,bufferedPositionStream,statusStreamfor real-time playback monitoring. - Player Status Enum:
MaxPlayerStatuswith states: idle, initializing, playing, paused, buffering, completed, error. - Playback Speed API:
setPlaybackSpeed(double),currentSpeedgetter, configurableavailableSpeedsinMaxPlayerConfig. - Error Handling:
onErrorstream withMaxPlayerError(type: network, format, source, timeout, unknown),retry()method, built-in error UI with retry button. - Buffering Timeout: Configurable
bufferingTimeoutDuration(default 15s) — surfaces timeout error when buffering stalls. - State Getters:
isPlaying,isPaused,isBuffering,progress(0.0–1.0),totalDuration. - YouTube Live Stream Fix: Fallback extraction via
getManifest(requireWatchPage: false)whengetHttpLiveStreamUrlfails due to bot detection.
UI Improvements #
- YouTube-Style Overlay: Top and bottom gradient overlays for better readability over video content.
- Redesigned Bottom Controls: Progress bar on top, time + fullscreen below — matches YouTube/Netflix layout.
- Isolated Play/Pause Button: Centered play/pause no longer mixed with double-tap seek zones.
- Compact Controls: Smaller icons and tighter spacing for a cleaner look.
Code Quality #
- Upgraded
very_good_analysis: From ^5.0.0+1 to ^10.0.0 (resolved to 10.1.0). - Fixed 200+ lint warnings: Constructor ordering,
super.key, package imports, discarded futures, line lengths, type inference, and more. - Only 3 info-level issues remain: All
avoid_positional_boolean_parameterson existing public API callbacks — cannot change without breaking backward compatibility. - Removed
flutter_lintsdev dependency (replaced byvery_good_analysis).
Example App #
- 6 example screens: Basic player, speed & streams, error handling, video list, custom theme.
- 13 sample videos from Google's public sample library.
- Platform configs: Android
networkSecurityConfigand iOSNSAppTransportSecurityfor HTTP URLs.
Breaking Changes #
videoPlaybackSpeeds(List<String>) replaced byMaxPlayerConfig.availableSpeeds(List<double>). The speed selector UI now reads from config.setDoubeTapForwarDuration()deprecated in favor ofdoubleTapForwardDurationsetter.
Migration from 2.x #
- Wrap your app root with
ProviderScope(required byflutter_riverpod). - If you used
videoPlaybackSpeeds, move speed values toMaxPlayerConfig(availableSpeeds: [...]). - All existing
MaxPlayerControllerandMaxVideoPlayerAPIs continue to work unchanged.
2.0.1 #
- Fix: Resolved
Null check operator used on a null valueinMaxPlayerController. - Feature: Added comprehensive
exampleproject. - Fix: Exported
MaxPlayerThemeand fixedSystemUiModeusage in example. - Docs: Updated README with comprehensive usage examples including
networkQualityUrlsandvimeoPrivateVideos.
2.0.0 #
- Breaking Change: Removed all web-specific code and dependencies to focus on mobile platforms.
- Refactor: Renamed controller files and classes to remove "GetX" naming and standardized structure.
- Docs: Updated README.md with Usage, License, Author, and Contribution guidelines.
- Fix: Fixed various analysis issues and file naming typos.
1.1.1 #
- Version 1.1.1 of max_player package.