Skip to main content

better_player_ios 1.13.0 copy "better_player_ios: ^1.13.0" to clipboard
better_player_ios: ^1.13.0 copied to clipboard

PlatformiOS

The iOS implementation of the better_player plugin, providing high-performance video playback using AVPlayer and FFI for seamless integration in Flutter apps.

1.13.0 #

  • Added: getAudioTracks implementation to query audible options on AVPlayer's current media asset.
  • Updated: Increased playback speed ceiling from 4.0 to 10.0 in setSpeed.

1.12.0 #

  • [BREAKING_CHANGE] Fixed: Resolved FairPlay key loading thread deadlocks by removing blocking DispatchSemaphore, made assetId strictly local per request to prevent race conditions, added thread-safe certificate caching with in-flight request deduplication, and scoped EZDRM URL path rewriting to EZDRM domains only. Non-EZDRM license servers now receive standard direct POST requests.
  • Fixed: CacheManager shared state race condition during concurrent pre-caching and dynamic maxCacheSize updates.

1.11.1 #

  • Updated: Modernized analysis_options.yaml to inherit root options and resolved static analysis lints.

1.11.0 #

  • Added: Native AirPlay route picker (AVRoutePickerView) and externalPlaybackActive KVO state stream.
  • Updated: Bumped better_player_platform_interface dependency to ^1.7.0.

1.10.1 #

  • Fixed: Kept KVO and legible output observers attached on playback completion and updated isPlaying state so replay and post-completion seeks remain functional.
  • Fixed: Implemented secure screen capture and recording protection on window layer using UITextField.isSecureTextEntry hierarchy.
  • Fixed: Ensured screen capture protection is disabled on plugin cleanup.
  • Fixed: Resolved black screen on iOS Simulator by returning stable FlutterPlatformView instances per platform view ID, skipping AVMutableVideoComposition for unrotated videos, and resolving video track dimensions before presentation size checks (#1632).
  • Fixed: App crash on hot restart by using asynchronous listener callbacks (implementAsListener), dispatching KVO observer updates to the main thread, tracking observedItem for observer removal, and cleaning up orphaned native players on initialization (#1632).

1.10.0 #

  • Added: Screen capture and recording protection via secure text field view hierarchy and UIScreen.capturedDidChangeNotification.
  • Updated: Dependency better_player_platform_interface to ^1.6.0.

1.9.0 #

  • Fixed: Forwarded data source HTTP headers to native iOS playback, with and without caching (by @by291).
  • Added: Native pre-cache progress reporting in CacheManager via BetterPlayerPreCacheCallback.

1.8.0 #

  • Fixed: Added fallback matching by displayName, language, and index in setAudioTrack to support HLS audio tracks lacking common title metadata.

1.7.0 #

  • Added: setTextTrack method on BetterPlayer to select or disable legible media selection group tracks in AVPlayerItem (#1066).
  • Added: AVPlayerItemLegibleOutput push delegate and onCues callback on BetterPlayerCallback emitting parsed subtitle cues.
  • Fixed: Forwarded dynamic presentation size changes to Flutter to resolve black screen on HLS playback with delayed track resolution (#1595).

1.6.1 #

  • Added: Better Player logo screenshot and branding metadata for pub.dev package listing.

1.6.0 #

  • Fixed: Guarded getAbsolutePosition against out-of-range epoch values on live streams (#1206) (by @RtypeStudios).
  • Fixed: Forwarded videoExtension as customFileExtension when creating uncached CachingPlayerItem instances in CacheManager (#990) (by @ajzome).
  • Fixed: Passed assetId instead of the full URL string as contentIdentifier in BetterPlayerEzDrmAssetsLoaderDelegate (#866) (by @aeonmine).

1.5.2 #

  • Fixed: Disabled automatic native closed caption selection (appliesMediaSelectionCriteriaAutomatically = false) on AVPlayer to prevent duplicate subtitles on iOS (#1103).

1.5.1 #

  • Fixed: Reset isInitialized when swapping AVPlayerItem data sources so the new stream emits onInitialized properly.

1.5.0 #

  • Fixed: Blocked HLS pre-caching attempts. Pre-caching HLS streams natively caches only the playlist file (causing silent bypasses on iOS).
  • Updated: Documented the fallback to mp4 in CacheManager for streams with unknown extensions.
  • Fixed: Enhanced error logging to include NSError details in FlutterError payload for AVPlayerItem failures.
  • Fixed: iOS player crash and freeze during seek operations (#1342).

1.4.0 #

  • Updated: Increased playback speed limit to 4x and improved audio quality at high speeds using .timeDomain pitch algorithm.
  • Fixed: Programmatic PiP dismissal no longer stops the parent media player.

1.3.1 #

  • Updated: package metadata

1.3.0 #

  • Fixed: Resolved a race condition where video duration was reported as zero on iOS for non-live sources.
  • Fixed: Resolved CocoaPods build issues including protocol loading exceptions, static linking stripping, and podspec alignments.

1.2.0 #

  • Added: Support for native-to-Dart log streaming (setupLogCallback) via FFI for AVPlayer.
  • Added: Reintroduced example directory with documentation to the package.
  • Updated: Enhanced package description in pubspec.yaml for better discoverability.

1.1.0 #

  • Added: Migrated native implementation to Swift FFI using swiftgen, enabling direct AVPlayer interaction without MethodChannel overhead.

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 iOS native code from the core package into a standalone federated plugin package (better_player_ios).
  • Fixed: Restored remote notification (lock screen) controls by correctly storing data source information.
0
likes
140
points
2.4k
downloads
screenshot

Documentation

Documentation
API reference

Publisher

verified publisherhasoft.pl

Weekly Downloads

The iOS implementation of the better_player plugin, providing high-performance video playback using AVPlayer and FFI for seamless integration in Flutter apps.

Repository (GitHub)
View/report issues

Topics

#video #video-player #ios #avplayer #streaming

License

Apache-2.0 (license)

Dependencies

better_player_platform_interface, ffi, flutter, objective_c

More

Packages that depend on better_player_ios

Packages that implement better_player_ios