screen_record_plus 1.1.0
screen_record_plus: ^1.1.0 copied to clipboard
Native screen recording with coordinate-based capture for Android and iOS.
1.1.0 #
Features #
- Video Cropping: Implemented FFmpeg-based video cropping for region-specific recording
- Re-added
ffmpeg_kit_flutterdependency for post-processing - Videos are now automatically cropped to
recordingRectafter recording - Full screen is recorded, then cropped to specified region during export
- Re-added
- Widget-based Recording: Added
ScreenRecorderController.getWidgetRect()helper method to easily record specific widgets- Use
GlobalKeyto get widget position and size on screen - Automatically converts widget boundaries to recording coordinates
- See new
WidgetRecordingExamplein example app
- Use
- Documentation: Updated README and API documentation with widget recording examples
- Example: Added new widget recording example demonstrating how to capture specific UI components
Technical Details #
- Recording workflow: Record full screen → Export → Crop to region (if specified) → Return cropped video
- FFmpeg is used only for post-processing (cropping), not for recording
- Package size will increase due to FFmpeg dependency (~100MB)
1.0.2 #
Features #
- Widget-based Recording: Added
ScreenRecorderController.getWidgetRect()helper method to easily record specific widgets- Use
GlobalKeyto get widget position and size on screen - Automatically converts widget boundaries to recording coordinates
- See new
WidgetRecordingExamplein example app
- Use
- Documentation: Updated README and API documentation with widget recording examples
- Example: Added new widget recording example demonstrating how to capture specific UI components
1.0.1 #
Bug Fixes #
- iOS: Fixed video duration issue where recordings of a few seconds were exported as 35+ minute videos
- Root cause: AVAssetWriter was starting session at
.zerotimestamp, but ReplayKit sample buffers use system uptime timestamps - Solution: Now starts the session using the timestamp from the first sample buffer for accurate duration calculation
- This fix only affects iOS; Android implementation was not affected
- Root cause: AVAssetWriter was starting session at
1.0.0 BREAKING CHANGES #
Major refactoring to native-only implementation
Breaking Changes #
- REMOVED: Widget-based recording mode (RecordingMode.widget)
- REMOVED: ScreenRecorder widget (RepaintBoundary-based recording)
- REMOVED: FFmpeg dependency (ffmpeg_kit_flutter)
- REMOVED: Dependencies: bitmap, image, intl
- REMOVED:
pixelRatioparameter from ScreenRecorderController - REMOVED:
skipFramesBetweenCapturesparameter from ScreenRecorderController - REMOVED:
recordingModeparameter from ScreenRecorderController - REMOVED: RecordingMode enum
- REMOVED: Frame class
- REMOVED: Widget-based frame capture functionality
What's Changed #
- Simplified API - only native screen recording is now supported
- Reduced package size by removing FFmpeg (~100MB reduction)
- Better performance using native platform APIs
- Cleaner, more maintainable codebase
Migration Guide #
Before (v0.x):
final controller = ScreenRecorderController(
recordingMode: RecordingMode.native, // No longer needed
pixelRatio: 3.0, // Removed
skipFramesBetweenCaptures: 0, // Removed
recordingRect: Rect.fromLTWH(100, 100, 400, 400),
);
After (v1.0.0):
final controller = ScreenRecorderController(
recordingRect: Rect.fromLTWH(100, 100, 400, 400), // Only parameter
);
Requirements #
- Android: Minimum API 21 (Lollipop)
- iOS: Minimum iOS 11.0
0.0.5 #
- Add native screen recording API support for Android and iOS
- Add coordinate-based recording to capture specific screen regions
- Add RecordingMode enum (widget vs native)
- Add NativeScreenRecorder class for platform-specific recording
- Update ScreenRecorderController with recordingRect parameter
- Enhanced video export functionality for native recordings
- Update example app to demonstrate native recording with coordinates
- Update README with comprehensive usage documentation
0.0.4 #
- Update repository
0.0.3 #
- Update repository
0.0.2 #
- Update example and README.md
0.0.1 #
- Init project with basic structure
- Basic widget-based screen recording with FFmpeg