better_player_android 1.12.0
better_player_android: ^1.12.0 copied to clipboard
The Android implementation of the better_player plugin, providing high-performance video playback using ExoPlayer (Media3) and FFI for seamless integration in Flutter apps.
1.12.0 #
- Updated: Upgraded
androidx.media3to1.11.1,androidx.lifecycleto2.11.0,androidx.annotationto1.11.0, andandroidx.work:work-runtimeto2.12.0. - Updated: Removed legacy unused
androidx.media:mediadependency and imports. - Fixed: Pre-cache worker falsely reporting HTTP errors as completed downloads.
- Fixed: Widevine DRM defaulting to L3 software security level when drmSecurityLevel is not specified.
1.11.0 #
- Updated: Modernized
analysis_options.yamlto inherit root options and resolved static analysis lints.
1.10.1 #
- Fixed: Synchronized
BetterPlayerApi.activityduring activity configuration changes and removed duplicated screen capture protection logic.
1.10.0 #
- Added: Window screen capture and recording protection via Android
FLAG_SECUREwindow flag. - Updated: Dependency
better_player_platform_interfaceto^1.6.0.
1.9.0 #
- Added: Native pre-cache progress reporting in
CacheWorkerviaBetterPlayerPreCacheCallback.
1.8.0 #
- Added:
setTextTrackmethod onBetterPlayerandTrackSelectionOverrideon ExoPlayer text renderer for embedded closed captions (#1066). - Added:
onCuescallback onBetterPlayerCallbackemitting decoded cues from Media3CueGroup.
1.7.1 #
- Added: Better Player logo screenshot and branding metadata for pub.dev package listing.
1.7.0 #
- Fixed: Guarded
getAbsolutePositionagainst unset timeline window start times (C.TIME_UNSET) and out-of-range epoch values on live streams (#1206, #1198) (by @RtypeStudios, @geriby23). - Fixed: Avoided enqueueing
ImageWorkerwhen notificationimageUrlis empty and removed unusedsendSeekToEventmethod (#1041, #1135) (by @ptsekov).
1.6.1 #
- Fixed: Resolved Android media notification tap intent via
packageManager.getLaunchIntentForPackageby default and supported fully qualifiedactivityNamevalues (#1138). - Fixed: Supported
file://URIs and proper bitmap bounds sampling when loading local notification images inImageWorker(#883). - Fixed: Restored
sendBufferingUpdateemission during position polling and playback readiness so buffered progress updates on the seekbar.
1.6.0 #
- Fixed: Resolved Android cache clearing failure and OutOfMemory bugs by properly delegating
clearCache()to ExoPlayer'sSimpleCache.removeResource(). - Fixed: Blocked HLS pre-caching attempts. Pre-caching HLS streams natively caches only the playlist file (causing 0% progress bugs on Android).
- Fixed: Added try-catch block to
enterPictureInPictureModeto prevent crashes when the activity is not in a valid state for PiP.
1.5.0 #
- Added: Configurable Android Auto Frame Rate (AFR) matching via ExoPlayer's
setVideoChangeFrameRateStrategy. - Fixed: Resolved issue where video events were broadcast to all active players instead of the specific player instance by correctly capturing the texture ID.
1.4.0 #
- Added: Supported RTSP streaming on Android via
androidx.media3:media3-exoplayer-rtsp.
1.3.1 #
- Updated: package metadata
1.3.0 #
- [BREAKING_CHANGE] Updated: Upgraded
androidx.media3version from1.1.1to1.11.0. - [BREAKING_CHANGE] Updated: Raised
minSdkVersionto24. - [BREAKING_CHANGE] Updated: Upgraded
androidx.media:mediato1.7.0. - Fixed: Resolved MediaSession token resolution error (
sessionCompatToken) introduced in the Media3 upgrade. - Added: Supported configurable
drmSecurityLevelto enable Widevine L1 playback.
1.2.0 #
- Added: Support for native-to-Dart log streaming (
setupLogCallback) via JNI for ExoPlayer. - Added: Reintroduced
exampledirectory with documentation to the package. - Updated: Enhanced package description in
pubspec.yamlfor better discoverability.
1.1.0 #
- Added: Migrated native bridge to JNI using
jnigenfor high-performance direct communication with the Android media engine. - Fixed: Memory leak in player disposal and optimized WorkManager threading for caching.
1.0.2 #
- Docs: Updated model name references in example.md.
1.0.1 #
- Add thin examples to platform packages and decoupled example app.
1.0.0 #
- Updated: Extracted Android native code from the core package into a standalone federated plugin package (
better_player_android). - Fixed: Added missing
result.success(null)forsetMixWithOthersmethod channel call.
