gumlet_video_player 1.1.2 copy "gumlet_video_player: ^1.1.2" to clipboard
gumlet_video_player: ^1.1.2 copied to clipboard

A robust Flutter SDK for Gumlet Video Player, providing native HLS, DASH, and DRM (Widevine & FairPlay) streaming capabilities.

1.1.2 #

  • Fixed Android download progress appearing stuck. ExoPlayer's DownloadManager.Listener.onDownloadChanged fires on state transitions rather than continuously, so after queued → downloading no further events arrived until the download finished — a UI driven purely by the events stream froze at the first reported percentage while the download ran normally underneath. The example now polls once a second while any download is active, and this is documented on GumletDownloadManager.events.
  • Download failures raised before any Dart screen subscribes to the event channel are no longer lost. The native listener is registered for the plugin's lifetime and logs every state change under the GumletFlutter logcat tag.
  • Added logcat diagnostics for method-channel calls, download state changes and platform-view creation.
  • The example shows two decimal places below 10%, since a multi-rendition DRM HLS download starts at a fraction of a percent and rounded to 0% before.

1.1.1 #

Android fixes.

  • Fixed DRM video rendering as audio-only on Android. The player was embedded with AndroidView, which uses Virtual Display and draws the platform view into a Flutter texture. ExoPlayer renders through a SurfaceView, and a Widevine-protected stream drives it as a secure surface — the secure decoder refuses to write those frames into a readable texture, so audio played over a blank video area. The Android branch now uses Hybrid Composition (PlatformViewLink + initExpensiveAndroidView), which places a real native view in the hierarchy so the secure surface composites correctly.
  • Fixed downloads never starting on Android 13+. Downloads run in a foreground service that posts a progress notification, but POST_NOTIFICATIONS was neither declared nor requested, so the service could not post and downloads stalled. The permission is now declared in the plugin manifest, and requestNotificationPermission() / hasNotificationPermission() were added to GumletDownloadManager. Call requestNotificationPermission() before your first download; it is a no-op returning true on iOS and below Android 13.
  • The plugin is now ActivityAware, which is what makes the runtime permission request possible.
  • Touches now reach the native playback controls on Android via an eager gesture recognizer.

1.1.0 #

Offline playback and downloads.

  • Added GumletDownloadManager for offline downloads: downloadVideo, removeDownload, pauseDownload, resumeDownload, getDownloadState, getAllDownloads, and hasOfflineDrmKey.
  • Added a push-based events stream (GumletDownloadEvent) reporting download state changes and progress, replacing the need to poll.
  • Added GumletDownloadState / GumletDownloadStatus covering the full download lifecycle.
  • Added videoId and enableOfflinePlayback to GumletPlayer. When a completed download exists for videoId the player reads from local storage, falling back to streaming otherwise.
  • Offline DRM playback is supported on both platforms using persistable content keys, so downloaded DRM video plays with no network connection.
  • Added setDebugLoggingEnabled to toggle verbose native diagnostics (off by default).
  • Added FluttersdkPlugin.handleBackgroundSessionEvents on iOS so downloads that finish while the app is suspended are committed correctly.

Native SDK updates

  • iOS: GumletVideoPlayer XCFramework updated to 1.0.3.
  • Android: com.gumlet.video:player updated to 1.1.0.

Other

  • The Android plugin manifest now declares INTERNET; the player AAR contributes GumletDownloadService and its foreground-service permissions via manifest merger, so no host app changes are required.
  • update_sdk_version.sh now takes --ios and --android separately, since the two SDKs version independently. It also downloads before deleting the existing framework, so a failed fetch no longer leaves the repo broken.
  • Rewrote the example app to demonstrate downloads, pause/resume, an offline-key indicator, and offline playback.
  • Fixed the integration test, which referenced the pre-rename fluttersdk package and no longer compiled.

1.0.4 #

  • Comprehensively updated README.md documentation detailing parameter specifics for cross-platform integration arrays.

1.0.3 #

  • Added native iOS `GumletPlayerListener` integrations routing deep FairPlay and AVFoundation errors into the Flutter terminal to securely debug player rejections.

1.0.2 #

  • Fixed an iOS CocoaPods integration issue where the .podspec file was incorrectly named, previously preventing successful builds when imported into a new Apple environment.

1.0.1 #

  • Initial release of the Gumlet Video Player Flutter SDK natively wrapping iOS and Android configurations.
  • Added programmatic playback support via videoUrl.
  • Bound advanced DRM protection properties (drmLicenseUrl and certificateUrl) covering Apple FairPlay and Android Widevine contexts.
  • Configured automated dependency integrations bypassing standard manual SPM steps.
3
likes
140
points
111
downloads

Documentation

API reference

Publisher

verified publishergumlet.com

Weekly Downloads

A robust Flutter SDK for Gumlet Video Player, providing native HLS, DASH, and DRM (Widevine & FairPlay) streaming capabilities.

Homepage
Repository (GitHub)

License

MIT (license)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on gumlet_video_player

Packages that implement gumlet_video_player