gumlet_video_player 1.1.2
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.onDownloadChangedfires on state transitions rather than continuously, so afterqueued → downloadingno further events arrived until the download finished — a UI driven purely by theeventsstream 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 onGumletDownloadManager.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
GumletFlutterlogcat 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 aSurfaceView, 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_NOTIFICATIONSwas neither declared nor requested, so the service could not post and downloads stalled. The permission is now declared in the plugin manifest, andrequestNotificationPermission()/hasNotificationPermission()were added toGumletDownloadManager. CallrequestNotificationPermission()before your first download; it is a no-op returningtrueon 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
GumletDownloadManagerfor offline downloads:downloadVideo,removeDownload,pauseDownload,resumeDownload,getDownloadState,getAllDownloads, andhasOfflineDrmKey. - Added a push-based
eventsstream (GumletDownloadEvent) reporting download state changes and progress, replacing the need to poll. - Added
GumletDownloadState/GumletDownloadStatuscovering the full download lifecycle. - Added
videoIdandenableOfflinePlaybacktoGumletPlayer. When a completed download exists forvideoIdthe 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
setDebugLoggingEnabledto toggle verbose native diagnostics (off by default). - Added
FluttersdkPlugin.handleBackgroundSessionEventson iOS so downloads that finish while the app is suspended are committed correctly.
Native SDK updates
- iOS:
GumletVideoPlayerXCFramework updated to 1.0.3. - Android:
com.gumlet.video:playerupdated to 1.1.0.
Other
- The Android plugin manifest now declares
INTERNET; the player AAR contributesGumletDownloadServiceand its foreground-service permissions via manifest merger, so no host app changes are required. update_sdk_version.shnow takes--iosand--androidseparately, 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
fluttersdkpackage and no longer compiled.
1.0.4 #
- Comprehensively updated
README.mddocumentation 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
.podspecfile 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 (
drmLicenseUrlandcertificateUrl) covering Apple FairPlay and Android Widevine contexts. - Configured automated dependency integrations bypassing standard manual SPM steps.