Skip to content

Conversation

@vmalyi
Copy link

@vmalyi vmalyi commented Mar 22, 2023

This PR fixes the flutter/flutter#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

  • I read the Contributor Guide and followed the process outlined there for submitting PRs.
  • I read the Tree Hygiene wiki page, which explains my responsibilities.
  • 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.)
  • I signed the CLA.
  • The title of the PR starts with the name of the package surrounded by square brackets, e.g. [shared_preferences]
  • I listed at least one issue that this PR fixes in the description above.
  • I updated pubspec.yaml with an appropriate new version according to the pub versioning philosophy, or this PR is exempt from version changes.
  • 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.
  • All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel on Discord.

Copy link
Member

@jmagman jmagman left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@@ -1,3 +1,7 @@
## 2.4.3

* Fixes playback speed doesn't get persisted after reinitializing with new VideoPlayerController (https://github.com/flutter/flutter/issues/100351)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We don't usually link to the GitHub issue.

Suggested change
* Fixes playback speed doesn't get persisted after reinitializing with new VideoPlayerController (https://github.com/flutter/flutter/issues/100351)
* Fixes playback speed doesn't get persisted after reinitializing with new VideoPlayerController.

@stuartmorgan-g
Copy link
Collaborator

@vmalyi Are you still planning on updating this PR based on the feedback above?

@vmalyi
Copy link
Author

vmalyi commented Apr 12, 2023

@vmalyi Are you still planning on updating this PR based on the feedback above?

@stuartmorgan, sorry for delay here.

Yeah, this will be ready for another review this week.

@vmalyi
Copy link
Author

vmalyi commented Apr 16, 2023

@stuartmorgan, sorry for inconvenience: I've accidentally closed this PR and couldn't reopen it.

The new PR addressing all comments is now: #3720

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[video_player] Playback speed doesn't get set after reinitializing with new VideoPlayerController

4 participants