hq_video_player 0.1.0 copy "hq_video_player: ^0.1.0" to clipboard
hq_video_player: ^0.1.0 copied to clipboard

A high-performance Flutter video player package powered by media_kit & flutter_bloc with gesture controls, subtitle rendering, and modern video controls.

0.1.0 #

  • Controller & Multi-Player Management Architecture:
    • HqVideoPlayerController: Programmatically control playback (play(), pause(), togglePlayPause(), seekTo(), setVolume(), setPlaybackSpeed(), setMute(), loadUrl()) and listen to reactive ValueNotifier<HqVideoPlayerValue> state changes.
    • HqVideoPlayerManager: Central singleton registry (HqVideoPlayerManager.instance) for managing multiple active controllers with automatic single-active-player enforcement (autoPauseOthers: true) and batch operations (pauseAll(), muteAll(), unmuteAll(), playOnly(), disposeAll()).
    • HqVideoPoolManager: LRU controller pool manager for swipable vertical video feeds (Reels, TikTok, Shorts) with configurable maxPoolSize and chunked asynchronous eviction (Future.delayed(Duration.zero)) yielding to the main thread to protect RAM and eliminate Codec OOM crashes.
  • Enhanced HqVideoPlayer Widget Integration:
    • Added optional HqVideoPlayerController? controller and autoRegisterManager parameters to HqVideoPlayer constructors.
    • Support for dynamic controller switching in didUpdateWidget.
  • Showcase Example App Update:
    • Added a new "Multi-Player & Controllers" tab showcasing side-by-side video card controllers, batch global actions, and a vertical Reels feed using HqVideoPoolManager.
  • Documentation & Screenshots:
    • Added visual screenshots showcasing standard player, subtitles, gesture overlay, custom theme, callbacks, and multi-controller feed pool.

0.0.1 #

  • Initial Release of hq_video_player.
  • Core Engine: Built on top of media_kit for hardware-accelerated video rendering and flutter_bloc for robust state management.
  • Explicit Enum Source Architecture (HqVideoSourceType, HqSubtitleSourceType, HqPosterSourceType):
    • HqVideoSourceType: Explicit enum for Video sources (network, asset, file) with named constructors (HqVideoPlayer.network, HqVideoPlayer.asset, HqVideoPlayer.file).
    • HqSubtitleSource: Explicit enum and model for Subtitle sources (HqSubtitleSource.network, HqSubtitleSource.asset, HqSubtitleSource.file).
    • HqPosterSource: Explicit enum and model for Poster thumbnail image sources (HqPosterSource.network, HqPosterSource.asset, HqPosterSource.file).
  • Fullscreen Route System & Vertical Video Preset (HqVideoPlayerBehavior.vertical()):
    • Immersive sticky full-screen navigation route with system UI hiding and orientation locking.
    • HqVideoPlayerBehavior.vertical() preset for short-form vertical videos (TikTok, Shorts, Reels, Stories) expanding vertically without auto-rotating.
  • In-Stream Subtitles & Multi-Audio Track Selection:
    • Popover modal menus for selecting in-stream embedded subtitle tracks (SRT, VTT, ASS/SSA) and multi-audio stream tracks.
  • Asset & File Auto URI Formatting: Automatic URI resolution for any Flutter asset directory path (asset:///assets/...), local file path (file://...), and network stream.
  • Picker-Style Customization Architecture (HqVideoPlayerConfig):
    • HqVideoPlayerTheme: Complete control over primary colors, overlays, timeline track/handle, popover menus, and text styles.
    • HqVideoPlayerLocalizations: Full control over all text labels with a built-in Arabic preset (HqVideoPlayerLocalizations.ar()).
    • HqVideoPlayerIcons: Customizable icon widget overrides across all controls and gesture overlays.
    • HqVideoPlayerGestures: Custom seek seconds, hold speed multiplier, toggle double-tap, vertical volume/brightness, and pinch-to-zoom.
    • HqVideoPlayerBehavior: Custom auto-hide controls timer, initial volume, start muted, mute toggle button, autoPlay, looping, and allowed playback speeds list.
    • HqVideoPlayerControlsConfig: Granular toggles for top bar, title, speed, timeline, and lock buttons.
    • HqVideoPlayerTimelineConfig: Custom track height, thumb radius, drag thumb radius, and buffered track visibility.
    • HqVideoPlayerTransformConfig: Custom rotation angle (0°, 90°, 180°, 270°), horizontal/vertical mirroring (flip), and aspect ratio constraints.
    • HqVideoPlayerAudioConfig: Audio volume boost up to 200% (maxVolume: 2.0) and volume step granularity.
    • HqVideoPlayerBrightnessConfig: Initial screen brightness and gesture step granularity.
    • HqVideoPlayerPipConfig: Picture-in-Picture floating miniplayer width (pipWidth), aspect ratio (pipAspectRatio), corner radius (pipCornerRadius), screen margin, and drag toggle.
    • HqVideoPlayerHapticsConfig: Granular haptic feedback toggles for seek, lock, and speed boost gestures (enableHapticsOnSeek, enableHapticsOnLock, enableHapticsOnSpeedBoost).
    • HqVideoPlayerFilterConfig: Cinematic video color filters (grayscale, sepia).
    • HqVideoPlayerLoopConfig: Custom A-B range looping between startPosition and endPosition.
    • HqVideoPlayerSkipConfig: Auto-skipping video intro/outro (autoSkipIntro, introDuration, outroDuration).
    • HqVideoPlayerLoadingConfig: Buffering indicator visibility, size (loadingIndicatorSize), and color (loadingIndicatorColor).
    • HqVideoPlayerPosterConfig: Support for video poster thumbnail images via HqPosterSource (posterSource, posterFit, showPosterOnEnd).
    • HqVideoPlayerSeekFeedbackConfig: Custom double-tap seek animation ripple duration and colors (showSeekFeedbackRipple, rippleColor, rippleDuration).
    • HqVideoPlayerTrackOptions: Support for audio & subtitle stream track selection options.
    • HqVideoPlayerCustomWidgets: Support for custom watermark overlays, custom top/bottom bars, custom overlays (SKIP INTRO), custom controls builder, custom loading spinners, and error widgets.
    • HqVideoPlayerSubtitleConfig: Customizable subtitle font size, font family, text/background colors, and bottom padding.
    • HqVideoPlayerNetworkConfig: Support for custom HTTP headers (customHeaders for auth tokens/cookies) and weak network timeouts.
    • HqVideoPlayerCallbacks: Live callbacks for onPositionChanged, onPlayingChanged, onFullscreenChanged, onVolumeChanged, onSpeedChanged, onSeek, onBufferingChanged, onFitModeChanged, onLockChanged, and onSubtitleChanged.
  • Interactive Gesture Overlay: Double-tap seek, vertical swipe for volume and brightness, long-press for speed boost, and 2-finger pinch-to-zoom.
  • Subtitle System: SubRip (.srt) and WebVTT (.vtt) subtitle parser and synchronized overlay renderer with asset, network, and file support.
  • Miniplayer Service: Draggable picture-in-picture floating overlay with customizable dimensions and smooth transition.
  • Zero setState Architecture: Clean state management driven entirely by HqVideoPlayerBloc and optimized BlocSelector rebuilds.
1
likes
160
points
--
downloads

Documentation

API reference

Publisher

unverified uploader

A high-performance Flutter video player package powered by media_kit & flutter_bloc with gesture controls, subtitle rendering, and modern video controls.

Repository (GitHub)
View/report issues

License

MIT (license)

Dependencies

equatable, flutter, flutter_bloc, http, media_kit, media_kit_libs_video, media_kit_video

More

Packages that depend on hq_video_player