Releases: plug-and-pay/flutter-native-video-player
Release list
v1.4.0 — embedded caption text-size scaling
Added
- Embedded caption text-size scaling (#43):
NativeVideoPlayerSubtitleStyle.embeddedTextScale(default1.0= platform default) and the convenience methodcontroller.setNativeSubtitleTextScale(double)scale the text size of EMBEDDED (native-rendered) subtitle tracks — ExoPlayer'sSubtitleViewon Android (both the lightweight and PlayerView display paths),AVPlayerItem.textStyleRuleson iOS. Takes effect live without a playback restart, survives quality/audio/variant switches, item reloads, and native view recreation, and scales relative to the user's system caption size preference. Sidecar overlay sizing (subtitleStyle.fontSize) is unaffected.
v1.3.1 — iOS Swift Package Manager build fix
iOS Swift Package Manager build fix
Fixes a build failure on iOS when the host app uses Flutter's Swift Package Manager integration (issues #36, #42):
Swift Compiler Error: Cannot find 'npLog' in scope
.../ios/better_native_video_player/Sources/better_native_video_player/View/VideoPlayerView.swift
Root cause
The plugin ships two parallel iOS source trees. CocoaPods compiles everything under ios/Classes/ (s.source_files = 'Classes/**/*.swift'), while the SwiftPM target (ios/better_native_video_player) symlinks each subdirectory of Classes/ into its Sources/ folder. Logging.swift — which defines npLog and is the only file at the top level of Classes/ — had no symlink, so it was excluded from the SwiftPM target. Any call site then failed to compile under a SwiftPM build. CocoaPods builds were never affected.
Fix
Added the missing Logging.swift symlink to the SwiftPM target. Verified by building the example app on an iOS simulator with flutter config --enable-swift-package-manager: it fails with the reported error before the change and builds cleanly after.
Upgrading
Bump to better_native_video_player: ^1.3.1. If you hit this on 1.3.0, also clear caches after upgrading — SwiftPM caches in DerivedData, or cd ios && pod deintegrate && pod install for CocoaPods.
Full changelog: https://github.com/plug-and-pay/flutter-native-video-player/blob/master/CHANGELOG.md
v1.3.0 — quality audio fix, qualityChangedStream, Android background playback
Quality-selection and Android background-playback fixes.
Fixed
- Quality switching no longer drops audio (iOS + Android). Selecting an HLS quality — or switching back to Auto — previously reloaded a single video-only variant playlist, replacing the master. On adaptive streams that carry audio as a separate rendition (
#EXT-X-MEDIA:TYPE=AUDIO), that silenced the audio while video kept playing. The plugin now keeps the master loaded and constrains the video track via the player's track selector (preferredMaximumResolution/preferredPeakBitRateon iOS,setMaxVideoSize/setMaxVideoBitrateon Android), so audio is untouched and the switch is instant (no buffering reload). (#40) qualityChangedStreamnow emits the selected quality. Native emits the quality fields flat in the event map, but the Dart handler only accepted a nestedqualitykey, so the stream stayed silent and any UI bound to it was stuck on "Auto". The handler now accepts both shapes. (#39)- iOS: position/time updates no longer stop when Auto quality is enabled. The old auto-quality monitor reused the shared periodic time observer that drives
timeUpdate, clobbering position reporting. The monitor is removed — AVPlayer's native ABR handles Auto. (#40) - Android: background playback (live + VOD) no longer dies after a few minutes. The plugin posted a media notification but never ran a real foreground service, so Doze/App-Standby cut the app's network and ExoPlayer failed with
UnknownHostException. Playback now runs as a real foreground service while playing (stopped on pause/stop), and the shared player usessetWakeMode(WAKE_MODE_NETWORK)(partial WakeLock + WifiLock). Adds theWAKE_LOCKpermission to the plugin manifest. (#38)
Full Changelog: v1.2.1...v1.3.0
v1.0.0
What's Changed
- Add video looping support with smooth native playback by @DaniKemper010 in #2
- Add support for local files and MP4 video URLs by @DaniKemper010 in #3
- Fix iOS media controls issues with multiple videos, PiP, and lock screen by @DaniKemper010 in #4
- Feature/media item not working after pip by @DaniKemper010 in #6
- Convert AirPlay mode from controller-based by @DaniKemper010 in #8
- Fix Android PiP issues: whole app showing in PiP, missing controls, and black screen on video switch by @DaniKemper010 in #7
- Update dependencies and enhance Android PiP support by @DaniKemper010 in #10
- Feature/fix live streaming n pause for ios when in background by @DaniKemper010 in #14
- Fixed emitting states by @DaniKemper010 in #17
- Add subtitle by @DaniKemper010 in #18
- Release version 0.4.0: Added comprehensive subtitle and closed captio… by @DaniKemper010 in #19
- Fixed play on background by @DaniKemper010 in #27
New Contributors
- @DaniKemper010 made their first contribution in #2
Full Changelog: https://github.com/plug-and-pay/flutter-native-video-player/commits/v1.0.0