2.1.3
·
344 commits
to main
since this release
Playback fix: rapid play/pause no longer swallowed
Transport state sync. No public API change, existing 2.1.x callers are unaffected.
Fixed
- Rapid play/pause presses no longer get swallowed on the native (AVPlayer) path. The engine never derived its
statefrom the player, so when something other thanengine.play()/pause()drove the AVPlayer (a host that keeps AVKit's transport bar active for Control Center skip routing, Control Center itself, or the hardware play/pause button AVKit handles internally), the engine'sstatewent stale and the nexttogglePlayPause()resolved to the action already in effect, a visible no-op.
How it works now
NativeAVPlayerHostpublishestimeControlStatus; the engine reconcilesstate(playing / paused) from it, guarded to the steady transport states so loading, seeking, error and idle are never clobbered.waitingToPlayAtSpecifiedRatemaps to playing, so the play/pause icon does not flicker on a rebuffer.togglePlayPause()decides from the live player rather than the publishedstate, closing the async gap during fast presses.
Full diff: 2.1.2...2.1.3