A cross-platform media library application built with Flutter.
- Flutter SDK: 3.27.1 (Required)
- Android Studio (for Android builds)
- Xcode (for iOS/macOS builds, macOS only)
- Visual Studio (for Windows builds)
This project uses Flutter 3.27.1 and includes an automatic patch for media_kit_video compatibility.
What's the issue?
- Flutter 3.27+ introduced changes to the
TextureRegistry.SurfaceProducer.CallbackAPI - The current version of
media_kit_video(1.3.1) doesn't include the requiredonSurfaceDestroyed()method - Our build automatically applies a patch to fix this (see
scripts/patch_media_kit.sh)
To install Flutter 3.27.1:
# Using fvm (Flutter Version Management) - Recommended
fvm install 3.27.1
fvm use 3.27.1
# Or using flutter
flutter upgrade
# or
flutter downgrade 3.27.1# One command to install dependencies and apply patches
bash scripts/setup.sh- Clone the repository
- Install dependencies and apply patches:
flutter pub get
bash scripts/patch_media_kit.sh # Apply media_kit_video patch- Run the app:
# Debug mode
flutter run
# Release mode (Android)
flutter build apk --release# APK (split per ABI)
flutter build apk --release --split-per-abi
# App Bundle (for Play Store)
flutter build appbundle --release
# Android TV
flutter build apk --release --target-platform android-arm64# iOS
flutter build ios --release
# macOS
flutter config --enable-macos-desktop
flutter build macos --releaseflutter config --enable-linux-desktop
flutter build linux --releaseflutter config --enable-windows-desktop
flutter build windows --releaseThis project includes comprehensive GitHub Actions workflows:
- build-release.yml: Builds for all platforms (Android, iOS, macOS, Linux, Windows)
- pr-checks.yml: Runs code analysis, tests, and build checks on pull requests
- nightly-build.yml: Automated nightly builds if there are changes
To create a release with all platform builds:
git tag v1.0.0
git push origin v1.0.0This will automatically build all platforms and create a GitHub release with downloadable artifacts.
Key dependencies:
media_kit- Video playbackmedia_kit_video- Video renderingflutter_bloc- State managementflutter_inappwebview- Web contentwindow_manager- Desktop window management
For a full list, see pubspec.yaml.
- Compile SDK: 36 (required by media_kit plugins)
- Min SDK: Set by Flutter
- Target SDK: Set by Flutter
- NDK: 27.0.12077973
-
media_kit_video Flutter 3.27 Compatibility
- Issue: media_kit_video 1.3.1 lacks
onSurfaceDestroyed()method for Flutter 3.27+ - Solution: Automatic patch applied via
scripts/patch_media_kit.sh - Status: Patch required until media_kit_video releases an update
If you encounter build issues, run:
flutter pub get bash scripts/patch_media_kit.sh flutter clean flutter build apk
- Issue: media_kit_video 1.3.1 lacks
- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
[Add your license here]