Skip to content

Conversation

@nateshmbhat
Copy link
Contributor

  • Implemented getAudioTracks() method to retrieve available audio tracks from both HLS streams and regular video files

AVFoundation Platform PR for : #9925

Pre-Review Checklist

  • I read the [Contributor Guide] and followed the process outlined there for submitting PRs.
  • I read the [Tree Hygiene] page, which explains my responsibilities.
  • I read and followed the [relevant style guides] and ran [the auto-formatter].
  • 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 [linked to 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 I have commented below to indicate which [version change exemption] this PR falls under[^1].
  • I updated CHANGELOG.md to 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].
  • I updated/added any relevant documentation (doc comments with ///).
  • I added new tests to check the change I am making, or I have commented below to indicate which [test exemption] this PR falls under[^1].
  • All existing and new tests are passing.

- Implemented getAudioTracks() method to retrieve available audio tracks from both HLS streams and regular video files
- Added comprehensive test suite for audio track detection and selection functionality
- Lowered minimum deployment target from iOS 13/macOS 10.15 to iOS 12/macOS 10.14
- Updated version to 2.9.0 and adjusted minimum Flutter SDK version to 3.29/Dart 3.7

The commit adds new functionality for managing audio tracks in the
Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request introduces audio track selection support for AVFoundation, enabling users to retrieve and select audio tracks from both HLS streams and regular video files. The changes include modifications to the CHANGELOG, platform-specific code (ObjC, Swift), example app, and test files. The minimum supported SDK versions have been updated, and new methods (getAudioTracks(), selectAudioTrack()) have been implemented. The code adheres to the repository's style guide, focusing on objective summaries and using code as the source of truth.


* Updates minimum supported version to iOS 13 and macOS 10.15.
* Updates minimum supported SDK version to Flutter 3.35/Dart 3.9.
* Implements `getAudioTracks()` and `selectAudioTrack()` methods.

Choose a reason for hiding this comment

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

medium

It's great to see the new features documented in the changelog. However, consider adding a bit more detail about the specific use cases or benefits of these methods for developers.

Comment on lines 23 to 24
s.ios.deployment_target = '12.0'
s.osx.deployment_target = '10.14'

Choose a reason for hiding this comment

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

medium

The deployment target has been lowered. Ensure this change is thoroughly tested across the targeted iOS and macOS versions to maintain compatibility and stability.

Comment on lines 12 to 13
.iOS("12.0"),
.macOS("10.14"),

Choose a reason for hiding this comment

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

medium

The deployment target has been lowered. Ensure this change is thoroughly tested across the targeted iOS and macOS versions to maintain compatibility and stability.

Comment on lines +498 to +500
// Skip nil options
if (!option || [option isKindOfClass:[NSNull class]]) {
continue;

Choose a reason for hiding this comment

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

medium

Consider adding a comment explaining why nil options are skipped. This will help future developers understand the logic behind this check.

Comment on lines +679 to +681
}
// For asset tracks, we don't have a direct way to select them in AVFoundation
// This would require more complex track selection logic that's not commonly used

Choose a reason for hiding this comment

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

medium

Add a comment explaining why direct selection isn't possible and what the limitations are. This will help future developers understand the current implementation and potential areas for improvement.

</array>
<key>MinimumOSVersion</key>
<string>13.0</string>
<string>12.0</string>

Choose a reason for hiding this comment

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

medium

The minimum OS version has been lowered. Ensure this change is thoroughly tested across the targeted iOS versions to maintain compatibility and stability.

GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
IPHONEOS_DEPLOYMENT_TARGET = 12.0;

Choose a reason for hiding this comment

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

medium

The deployment target has been lowered. Ensure this change is thoroughly tested across the targeted iOS versions to maintain compatibility and stability.

@@ -1,4 +1,4 @@
platform :osx, '10.15'
platform :osx, '10.14'

Choose a reason for hiding this comment

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

medium

The platform version has been lowered. Ensure this change is thoroughly tested across the targeted macOS versions to maintain compatibility and stability.

GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.15;
MACOSX_DEPLOYMENT_TARGET = 10.14;

Choose a reason for hiding this comment

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

medium

The deployment target has been lowered. Ensure this change is thoroughly tested across the targeted macOS versions to maintain compatibility and stability.

assets:
- assets/flutter-mark-square-64.png
- assets/Butterfly-209.mp4
# FOR TESTING AND INITIAL REVIEW ONLY. DO NOT MERGE.

Choose a reason for hiding this comment

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

medium

Per the repository style guide, the review agent should not comment about dependency_overrides sections in pubspec.yaml files that have a comment starting with: "FOR TESTING AND INITIAL REVIEW ONLY. DO NOT MERGE." 1

Style Guide References

Footnotes

  1. The review agent should not comment about dependency_overrides sections in pubspec.yaml files that have a comment starting with: "FOR TESTING AND INITIAL REVIEW ONLY. DO NOT MERGE." (link)

- Increased minimum iOS deployment target from 12.0 to 13.0 across all configuration files
- Updated minimum macOS deployment target from 10.14 to 10.15 in podspec, Package.swift, and Xcode project settings
- Updated minimum supported SDK version requirements to Flutter 3.35/Dart 3.9
- Updated CHANGELOG.md to document version changes and new minimum requirements
- Modified example app configuration files to align with new platform requirements
@stuartmorgan-g stuartmorgan-g added the triage-ios Should be looked at in iOS triage label Oct 28, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants