Repository navigation
[camera] add custom path ouput to recording - #11774
auto-submit[bot] merged 67 commits into
Conversation
…ple file saving functionality.
…icationSupportsIndirectInputEvents in Info.plist
…roject configuration and dependencies.
|
/gemini review |
There was a problem hiding this comment.
Code Review
This pull request adds support for a custom videoOutputPath to the startVideoRecording API across Android, iOS, Windows, and Web platforms. The changes include updates to the camera_platform_interface, native implementation logic for path validation, and a new interactive example app. Technical feedback identifies several improvement opportunities: the Android example should use path_provider instead of hardcoded paths, and the UI should be updated to reflect that content:// URIs are not supported. Additionally, the reviewer recommended properly managing TextEditingController lifecycles, using locale-aware string conversions in Java, fixing a potential logic error in the Swift path validation, and integrating the new demo into the existing example app structure rather than replacing the main entry point.
…urces/camera_avfoundation/DefaultCamera.swift Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
…r/plugins/camera/Camera.java Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
…o/flutter/plugins/camerax/RecorderProxyApi.java Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
…eb support from video recording example
… and standardizing app entry point
|
/gemini review |
bparrishMines
left a comment
There was a problem hiding this comment.
LGTM
Platform interface and app facing look good to me. It looks like there isn't a camera_web implementation, but I'm assuming this is because you can't access the file system with web.
However, to keep platform parity and prevent web from ignoring the value silently, can you update the file creation name at:
https://github.com/flutter/packages/blob/main/packages/camera/camera_web/lib/src/camera.dart#L470
And then also do a check that it is only a filename and doesn't include directories (e.g. myVideo.mp4 and not some/folder/myVideo.mp4.
The windows implementation looks fine to me as well, but I'm not that familiar with the platform. @stuartmorgan-g Is there someone that usually handles that review or is it up to me?
…oRecording (#12667) Part of #11774 ## Pre-Review Checklist **Note**: The Flutter team is currently trialing the use of [Gemini Code Assist for GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code). Comments from the `gemini-code-assist` bot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed. [^1]: Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling.
For now, I’ve avoided changing the web implementation. But I’ll take a closer look at it separately. |
# Conflicts: # packages/camera/camera_platform_interface/test/method_channel/method_channel_camera_test.dart
…ependency overrides
…ependency overrides
Windows reviews have mostly been me recently, but @Piinks is following up on ownership for Windows plugin implementations. |
|
Touched base with @loic-sharma, added @flutter/windows-reviewers and tagged |
…r#193351) flutter/packages@431ea69...e55e7ac 2026-09-25 50643541+Mairramer@users.noreply.github.com [material_ui] Add labelTextDirection handling in InputDecorator (flutter/packages#12607) 2026-09-24 tarrinneal@gmail.com [pigeon] Fix NSnumber edge cases and null value bug (flutter/packages#12997) 2026-09-24 50643541+Mairramer@users.noreply.github.com [camera] add custom path ouput to recording (flutter/packages#11774) 2026-09-24 jessiewong401@gmail.com [Android 17] Update packages CI test runners to SDK 37 (flutter/packages#12376) 2026-09-24 21270878+elliette@users.noreply.github.com [pigeon][video_player] Disable `video_player` and `pigeon` flakes blocking latest flutter -> packages roll (flutter/packages#13003) 2026-09-24 5684363+tenninebt@users.noreply.github.com [google_maps_flutter] Add onPointOfInterestTap platform implementations (flutter/packages#12880) If this roll has caused a breakage, revert this CL and set the roller to dry run mode using the controls here: https://autoroll.skia.org/r/flutter-packages-flutter-autoroll Please CC flutter-ecosystem@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
This PR introduces the ability to save videos to custom locations, taking into account the limitations and behavior of each platform.
Due to platform-specific security restrictions and limitations:
/storage/emulated/0/Download/video.mp4without issues.On My iPhone -> Camera Example -> Movies.Closes flutter/flutter#91680
Pre-Review Checklist
[shared_preferences]///).If you need help, consider asking for advice on the #hackers-new channel on Discord.
Note: The Flutter team is currently trialing the use of Gemini Code Assist for GitHub. Comments from the
gemini-code-assistbot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed.Footnotes
Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling. ↩ ↩2