packages
packages copied to clipboard
[video_player_avfoundation] Fix playback speed doesn't get persisted on iOS after reinitializing with new VideoPlayerController
This PR fixes the https://github.com/flutter/flutter/issues/100351 by using the playImmediately(atRate:)
instead of play()
because calling play()
has an effect of setting back the rate
to 1.0 which is unwanted in case of VideoPlayerController
's reinitialization.
Using playImmediately(atRate:)
is safe even with slower internet connections because AVPlayer automatically compensates eventual lack of media in the buffer by simply behaving as if it has encountered a stall during playback.
Considering that updatePlayingState()
function which, in turn, invokes the playImmediately(atRate:)
, is only called when handling "pause" or "play" events or in AVPlayerItemStatusReadyToPlay
state, it's safe for user experience to use the playImmediately(atRate:)
instead of play()
.
Pre-launch Checklist
- [x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
- [x] I read the Tree Hygiene wiki page, which explains my responsibilities.
- [x] I read and followed the relevant style guides and ran the auto-formatter. (Unlike the flutter/flutter repo, the flutter/packages repo does use
dart format
.) - [x] I signed the CLA.
- [x] The title of the PR starts with the name of the package surrounded by square brackets, e.g.
[shared_preferences]
- [x] I listed at least one issue that this PR fixes in the description above.
- [x] I updated
pubspec.yaml
with an appropriate new version according to the pub versioning philosophy, or this PR is exempt from version changes. - [x] I updated
CHANGELOG.md
to add a description of the change, following repository CHANGELOG style. - [ ] I updated/added relevant documentation (doc comments with
///
). - [ ] I added new tests to check the change I am making, or this PR is test-exempt.
- [x] All existing and new tests are passing.
If you need help, consider asking for advice on the #hackers-new channel on Discord.