[video_player] : Add video track selection support for Android and iOS - #10688
Open
nateshmbhat wants to merge 170 commits into
Open
[video_player] : Add video track selection support for Android and iOS#10688nateshmbhat wants to merge 170 commits into
nateshmbhat wants to merge 170 commits into
Conversation
…oPlayer async updates
… fix format builders
fix(ios): fixed tests
19 sept pr review changes
feat(video_player): add platform check for audio track selection support
auto-submit Bot
pushed a commit
that referenced
this pull request
Jun 30, 2026
## Summary Android breakout PR for #10688. - Implements `getVideoTracks()` and `selectVideoTrack()` methods using ExoPlayer's `TrackSelectionOverride` - Adds `onVideoTrackChanged` event callback for track change notifications - Adds comprehensive Java and Dart unit tests ## Dependency Chain This PR is **second** in a series of breakout PRs: 1. `video_player_platform_interface` (#11474) - pending 2. `video_player_android` (this PR) 3. `video_player_avfoundation` (pending) 4. `video_player` + `video_player_web` (pending - original PR #10688 updated) **Note:** This PR depends on `video_player_platform_interface` 6.7.0 being published first. ## Test Plan
…' into feature/video-track-selection-v2
# Conflicts: # packages/video_player/video_player_android/CHANGELOG.md # packages/video_player/video_player_android/android/src/main/java/io/flutter/plugins/videoplayer/ExoPlayerEventListener.java # packages/video_player/video_player_android/android/src/main/java/io/flutter/plugins/videoplayer/VideoPlayer.java # packages/video_player/video_player_android/android/src/test/java/io/flutter/plugins/videoplayer/VideoPlayerTest.java # packages/video_player/video_player_android/lib/src/android_video_player.dart # packages/video_player/video_player_android/lib/src/messages.g.dart # packages/video_player/video_player_android/test/android_video_player_test.dart # packages/video_player/video_player_android/test/android_video_player_test.mocks.dart # packages/video_player/video_player_avfoundation/CHANGELOG.md # packages/video_player/video_player_avfoundation/darwin/RunnerTests/VideoPlayerTests.swift # packages/video_player/video_player_avfoundation/darwin/video_player_avfoundation/Sources/video_player_avfoundation/include/video_player_avfoundation/messages.g.h # packages/video_player/video_player_avfoundation/darwin/video_player_avfoundation/Sources/video_player_avfoundation_objc/FVPVideoPlayer.m # packages/video_player/video_player_avfoundation/darwin/video_player_avfoundation/Sources/video_player_avfoundation_objc/VideoPlayerInstanceMessages.g.m # packages/video_player/video_player_avfoundation/lib/src/avfoundation_video_player.dart # packages/video_player/video_player_avfoundation/lib/src/messages.g.dart # packages/video_player/video_player_avfoundation/pigeons/messages.dart # packages/video_player/video_player_avfoundation/test/avfoundation_video_player_test.dart # packages/video_player/video_player_avfoundation/test/avfoundation_video_player_test.mocks.dart # packages/video_player/video_player_platform_interface/CHANGELOG.md # packages/video_player/video_player_platform_interface/lib/video_player_platform_interface.dart # packages/video_player/video_player_platform_interface/test/video_player_platform_interface_test.dart # packages/video_player/video_player_web/CHANGELOG.md
Contributor
Author
|
good to merge this main pr ? @tarrinneal |
Collaborator
There are two unresolved comments from his review above. |
…lity Reword getVideoTracks/selectVideoTrack/VideoTrack docs so tracks are not described solely as quality variants, and drop the 'Returns' lead-in on isVideoTrackSupportAvailable per review nit.
Contributor
Author
|
Resolved @stuartmorgan-g @tarrinneal |
stuartmorgan-g
requested review from
tarrinneal
and removed request for
gmackall,
reidbaker and
stuartmorgan-g
July 6, 2026 15:00
stuartmorgan-g
removed their request for review
July 9, 2026 14:30
tarrinneal
approved these changes
Jul 15, 2026
Fixes Linux repo_checks failures: - pubspec.yaml was still at 2.13.0 while CHANGELOG.md declared 2.14.0, failing repository standards validation. Bump to 2.14.0 to match. - Reformat an expect() in video_player_test.dart per the Dart version used by repo_checks. This also fixes the publishability check, which failed only because the format step left the tree dirty. - Strip trailing whitespace from the new CHANGELOG entry.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR adds video track selection (quality switching) support to the video_player plugin for Android and iOS platforms. This allows users to programmatically get available video quality variants and select a specific quality track, similar to the existing audio track selection feature.
Addresses issue : flutter/flutter#58854
Pre-Review Checklist
[shared_preferences]pubspec.yamlwith an appropriate new version according to the [pub versioning philosophy], or I have commented below to indicate which [version change exemption] this PR falls under[^1].CHANGELOG.mdto add a description of the change, [following repository CHANGELOG style], or I have commented below to indicate which [CHANGELOG exemption] this PR falls under[^1].///).