From 6d8912c58195699a07049ba83599553abdffea47 Mon Sep 17 00:00:00 2001 From: mike doornenbal Date: Wed, 1 Nov 2023 13:29:44 +0100 Subject: [PATCH 1/6] fix: debug logs removed logs on initialisation of audioService --- lib/src/service/audio_service.dart | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/lib/src/service/audio_service.dart b/lib/src/service/audio_service.dart index 6ae6024..cce8f1f 100644 --- a/lib/src/service/audio_service.dart +++ b/lib/src/service/audio_service.dart @@ -12,12 +12,9 @@ import 'package:path_provider/path_provider.dart'; import 'package:permission_handler/permission_handler.dart'; class MediaPickerAudioService implements AudioService { - final FlutterSoundRecorder _recorder = FlutterSoundRecorder( - logLevel: Level.debug, - ); - final FlutterSoundPlayer _player = FlutterSoundPlayer( - logLevel: Level.nothing, - ); + late FlutterSoundRecorder _recorder; + late FlutterSoundPlayer _player; + Directory? _directory; @override @@ -37,6 +34,10 @@ class MediaPickerAudioService implements AudioService { throw RecordingPermissionException('Microphone permission not granted'); } + _recorder = FlutterSoundRecorder( + logLevel: Level.debug, + ); + _recorder.openRecorder(); if (_recorder.isRecording) { await _recorder.resumeRecorder(); @@ -56,6 +57,9 @@ class MediaPickerAudioService implements AudioService { @override void playAudio(Uint8List audio) { + _player = FlutterSoundPlayer( + logLevel: Level.debug, + ); _recorder.closeRecorder(); _player.openPlayer(); _player.startPlayer( From 077eb9aa62f0c07893a976a094f52b2e46b18d70 Mon Sep 17 00:00:00 2001 From: mike doornenbal Date: Wed, 1 Nov 2023 13:32:57 +0100 Subject: [PATCH 2/6] fix: added permission request for camera and microphone --- example/ios/Podfile | 9 +++++ example/ios/Podfile.lock | 22 ++++++------ example/ios/Runner.xcodeproj/project.pbxproj | 6 +++- .../xcshareddata/xcschemes/Runner.xcscheme | 2 +- example/pubspec.lock | 36 +++++++++++-------- 5 files changed, 48 insertions(+), 27 deletions(-) diff --git a/example/ios/Podfile b/example/ios/Podfile index 88359b2..ee8a03c 100644 --- a/example/ios/Podfile +++ b/example/ios/Podfile @@ -37,5 +37,14 @@ end post_install do |installer| installer.pods_project.targets.each do |target| flutter_additional_ios_build_settings(target) + target.build_configurations.each do |config| + config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [ + '$(inherited)', + ## dart: PermissionGroup.camera + 'PERMISSION_CAMERA=1', + ## dart: PermissionGroup.microphone + 'PERMISSION_MICROPHONE=1', + ] + end end end diff --git a/example/ios/Podfile.lock b/example/ios/Podfile.lock index fd46eb8..c6d2c29 100644 --- a/example/ios/Podfile.lock +++ b/example/ios/Podfile.lock @@ -45,9 +45,9 @@ PODS: - FlutterMacOS - permission_handler_apple (9.0.4): - Flutter - - SDWebImage (5.15.5): - - SDWebImage/Core (= 5.15.5) - - SDWebImage/Core (5.15.5) + - SDWebImage (5.18.3): + - SDWebImage/Core (= 5.18.3) + - SDWebImage/Core (5.18.3) - SwiftyGif (5.4.4) - video_player_avfoundation (0.0.1): - Flutter @@ -57,7 +57,7 @@ DEPENDENCIES: - Flutter (from `Flutter`) - flutter_sound (from `.symlinks/plugins/flutter_sound/ios`) - image_picker_ios (from `.symlinks/plugins/image_picker_ios/ios`) - - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/ios`) + - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`) - permission_handler_apple (from `.symlinks/plugins/permission_handler_apple/ios`) - video_player_avfoundation (from `.symlinks/plugins/video_player_avfoundation/ios`) @@ -79,7 +79,7 @@ EXTERNAL SOURCES: image_picker_ios: :path: ".symlinks/plugins/image_picker_ios/ios" path_provider_foundation: - :path: ".symlinks/plugins/path_provider_foundation/ios" + :path: ".symlinks/plugins/path_provider_foundation/darwin" permission_handler_apple: :path: ".symlinks/plugins/permission_handler_apple/ios" video_player_avfoundation: @@ -92,13 +92,13 @@ SPEC CHECKSUMS: Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854 flutter_sound: c60effa2a350fb977885f0db2fbc4c1ad5160900 flutter_sound_core: 26c10e5832e76aaacfae252d8925232281c486ae - image_picker_ios: b786a5dcf033a8336a657191401bfdf12017dabb - path_provider_foundation: c68054786f1b4f3343858c1e1d0caaded73f0be9 + image_picker_ios: 4a8aadfbb6dc30ad5141a2ce3832af9214a705b5 + path_provider_foundation: eaf5b3e458fc0e5fbb9940fb09980e853fe058b8 permission_handler_apple: 44366e37eaf29454a1e7b1b7d736c2cceaeb17ce - SDWebImage: fd7e1a22f00303e058058278639bf6196ee431fe + SDWebImage: 96e0c18ef14010b7485210e92fac888587ebb958 SwiftyGif: 93a1cc87bf3a51916001cf8f3d63835fb64c819f - video_player_avfoundation: e489aac24ef5cf7af82702979ed16f2a5ef84cff + video_player_avfoundation: 81e49bb3d9fb63dccf9fa0f6d877dc3ddbeac126 -PODFILE CHECKSUM: ef19549a9bc3046e7bb7d2fab4d021637c0c58a3 +PODFILE CHECKSUM: ec189f8a09ab520123e6b3244bb0eb78d2d25fd7 -COCOAPODS: 1.12.0 +COCOAPODS: 1.13.0 diff --git a/example/ios/Runner.xcodeproj/project.pbxproj b/example/ios/Runner.xcodeproj/project.pbxproj index f81a772..1787bfb 100644 --- a/example/ios/Runner.xcodeproj/project.pbxproj +++ b/example/ios/Runner.xcodeproj/project.pbxproj @@ -155,7 +155,7 @@ 97C146E61CF9000F007C117D /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 1300; + LastUpgradeCheck = 1430; ORGANIZATIONNAME = ""; TargetAttributes = { 97C146ED1CF9000F007C117D = { @@ -204,6 +204,7 @@ files = ( ); inputPaths = ( + "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", ); name = "Thin Binary"; outputPaths = ( @@ -357,6 +358,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = 7496HVVQKN; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -526,6 +528,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = 7496HVVQKN; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -589,6 +592,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = 7496HVVQKN; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( diff --git a/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index c87d15a..a6b826d 100644 --- a/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,6 +1,6 @@ =3.0.0-417 <4.0.0" + dart: ">=3.1.0-185.0.dev <4.0.0" flutter: ">=3.3.0" From e4a54d100bb7d0b5e0a9a1983c6bd8628d9d8ae7 Mon Sep 17 00:00:00 2001 From: mike doornenbal Date: Wed, 1 Nov 2023 13:35:14 +0100 Subject: [PATCH 3/6] fix: up version --- .flutter-plugins | 48 +++++++++++++++++++++++++++--------------------- pubspec.yaml | 2 +- 2 files changed, 28 insertions(+), 22 deletions(-) diff --git a/.flutter-plugins b/.flutter-plugins index 733fa3f..35dd7fa 100644 --- a/.flutter-plugins +++ b/.flutter-plugins @@ -1,22 +1,28 @@ # This is a generated file; do not edit or check into version control. -file_picker=/Users/Bram/.pub-cache/hosted/pub.dev/file_picker-5.3.0/ -flutter_plugin_android_lifecycle=/Users/Bram/.pub-cache/hosted/pub.dev/flutter_plugin_android_lifecycle-2.0.15/ -flutter_sound=/Users/Bram/.pub-cache/hosted/pub.dev/flutter_sound-9.2.13/ -flutter_sound_web=/Users/Bram/.pub-cache/hosted/pub.dev/flutter_sound_web-9.2.13/ -image_picker=/Users/Bram/.pub-cache/hosted/pub.dev/image_picker-0.8.7+5/ -image_picker_android=/Users/Bram/.pub-cache/hosted/pub.dev/image_picker_android-0.8.6+15/ -image_picker_for_web=/Users/Bram/.pub-cache/hosted/pub.dev/image_picker_for_web-2.1.12/ -image_picker_ios=/Users/Bram/.pub-cache/hosted/pub.dev/image_picker_ios-0.8.7+4/ -path_provider=/Users/Bram/.pub-cache/hosted/pub.dev/path_provider-2.0.15/ -path_provider_android=/Users/Bram/.pub-cache/hosted/pub.dev/path_provider_android-2.0.27/ -path_provider_foundation=/Users/Bram/.pub-cache/hosted/pub.dev/path_provider_foundation-2.2.3/ -path_provider_linux=/Users/Bram/.pub-cache/hosted/pub.dev/path_provider_linux-2.1.10/ -path_provider_windows=/Users/Bram/.pub-cache/hosted/pub.dev/path_provider_windows-2.1.6/ -permission_handler=/Users/Bram/.pub-cache/hosted/pub.dev/permission_handler-10.2.0/ -permission_handler_android=/Users/Bram/.pub-cache/hosted/pub.dev/permission_handler_android-10.2.1/ -permission_handler_apple=/Users/Bram/.pub-cache/hosted/pub.dev/permission_handler_apple-9.0.8/ -permission_handler_windows=/Users/Bram/.pub-cache/hosted/pub.dev/permission_handler_windows-0.1.2/ -video_player=/Users/Bram/.pub-cache/hosted/pub.dev/video_player-2.6.1/ -video_player_android=/Users/Bram/.pub-cache/hosted/pub.dev/video_player_android-2.4.8/ -video_player_avfoundation=/Users/Bram/.pub-cache/hosted/pub.dev/video_player_avfoundation-2.4.6/ -video_player_web=/Users/Bram/.pub-cache/hosted/pub.dev/video_player_web-2.0.16/ +file_picker=/Users/mikedoornenbal/.pub-cache/hosted/pub.dev/file_picker-5.5.0/ +file_selector_linux=/Users/mikedoornenbal/.pub-cache/hosted/pub.dev/file_selector_linux-0.9.2+1/ +file_selector_macos=/Users/mikedoornenbal/.pub-cache/hosted/pub.dev/file_selector_macos-0.9.3+3/ +file_selector_windows=/Users/mikedoornenbal/.pub-cache/hosted/pub.dev/file_selector_windows-0.9.3+1/ +flutter_plugin_android_lifecycle=/Users/mikedoornenbal/.pub-cache/hosted/pub.dev/flutter_plugin_android_lifecycle-2.0.17/ +flutter_sound=/Users/mikedoornenbal/.pub-cache/hosted/pub.dev/flutter_sound-9.2.13/ +flutter_sound_web=/Users/mikedoornenbal/.pub-cache/hosted/pub.dev/flutter_sound_web-9.2.13/ +image_picker=/Users/mikedoornenbal/.pub-cache/hosted/pub.dev/image_picker-0.8.9/ +image_picker_android=/Users/mikedoornenbal/.pub-cache/hosted/pub.dev/image_picker_android-0.8.8+2/ +image_picker_for_web=/Users/mikedoornenbal/.pub-cache/hosted/pub.dev/image_picker_for_web-2.2.0/ +image_picker_ios=/Users/mikedoornenbal/.pub-cache/hosted/pub.dev/image_picker_ios-0.8.8+4/ +image_picker_linux=/Users/mikedoornenbal/.pub-cache/hosted/pub.dev/image_picker_linux-0.2.1+1/ +image_picker_macos=/Users/mikedoornenbal/.pub-cache/hosted/pub.dev/image_picker_macos-0.2.1+1/ +image_picker_windows=/Users/mikedoornenbal/.pub-cache/hosted/pub.dev/image_picker_windows-0.2.1+1/ +path_provider=/Users/mikedoornenbal/.pub-cache/hosted/pub.dev/path_provider-2.1.1/ +path_provider_android=/Users/mikedoornenbal/.pub-cache/hosted/pub.dev/path_provider_android-2.2.1/ +path_provider_foundation=/Users/mikedoornenbal/.pub-cache/hosted/pub.dev/path_provider_foundation-2.3.1/ +path_provider_linux=/Users/mikedoornenbal/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/ +path_provider_windows=/Users/mikedoornenbal/.pub-cache/hosted/pub.dev/path_provider_windows-2.2.1/ +permission_handler=/Users/mikedoornenbal/.pub-cache/hosted/pub.dev/permission_handler-10.4.5/ +permission_handler_android=/Users/mikedoornenbal/.pub-cache/hosted/pub.dev/permission_handler_android-10.3.6/ +permission_handler_apple=/Users/mikedoornenbal/.pub-cache/hosted/pub.dev/permission_handler_apple-9.1.4/ +permission_handler_windows=/Users/mikedoornenbal/.pub-cache/hosted/pub.dev/permission_handler_windows-0.1.3/ +video_player=/Users/mikedoornenbal/.pub-cache/hosted/pub.dev/video_player-2.8.1/ +video_player_android=/Users/mikedoornenbal/.pub-cache/hosted/pub.dev/video_player_android-2.4.10/ +video_player_avfoundation=/Users/mikedoornenbal/.pub-cache/hosted/pub.dev/video_player_avfoundation-2.5.1/ +video_player_web=/Users/mikedoornenbal/.pub-cache/hosted/pub.dev/video_player_web-2.1.1/ diff --git a/pubspec.yaml b/pubspec.yaml index 5f87caf..b761270 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: flutter_media_picker description: A new Flutter package project. -version: 0.6.2 +version: 0.6.3 homepage: https://github.com/Iconica-Development/flutter_media_picker publish_to: "none" From 3463537354baf21251d361362ba892a791c54f50 Mon Sep 17 00:00:00 2001 From: mike doornenbal Date: Wed, 1 Nov 2023 13:41:29 +0100 Subject: [PATCH 4/6] fix; update info.plist --- example/ios/Runner/Info.plist | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/example/ios/Runner/Info.plist b/example/ios/Runner/Info.plist index 7f55346..93b6c21 100644 --- a/example/ios/Runner/Info.plist +++ b/example/ios/Runner/Info.plist @@ -2,6 +2,14 @@ + NSPhotoLibraryUsageDescription + This app requires access to the photo library. + NSMicrophoneUsageDescription + This app does not require access to the microphone. + NSCameraUsageDescription + This app requires access to the camera. + CADisableMinimumFrameDurationOnPhone + CFBundleDevelopmentRegion $(DEVELOPMENT_LANGUAGE) CFBundleDisplayName From 5bbcc423f97d3a5c65ed8b4c7a3d2c33f91b07a4 Mon Sep 17 00:00:00 2001 From: mike doornenbal Date: Wed, 1 Nov 2023 14:01:22 +0100 Subject: [PATCH 5/6] fix: updated readme --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index d95101d..17beab1 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,10 @@ [![style: effective dart](https://img.shields.io/badge/style-effective_dart-40c4ff.svg)](https://github.com/tenhobi/effective_dart) -Flutter package which adds a dialog to pick various types of media +# Flutter Media Picker + +Flutter package which adds a dialog to pick various types of media. + +![Media Picker GIF](flutter_media_picker.gif) ## Setup From ebe055d86756db46c910fc98ab1f1de518ad45e8 Mon Sep 17 00:00:00 2001 From: mike doornenbal Date: Wed, 1 Nov 2023 14:03:49 +0100 Subject: [PATCH 6/6] feature: added CI workflow --- .flutter-plugins | 28 ------------------ .github/workflows/flutter.yml | 14 +++++++++ .gitignore | 1 + ...ckerGifNew.gif => flutter_media_picker.gif | Bin lib/video_player/video_player_web.dart | 2 +- 5 files changed, 16 insertions(+), 29 deletions(-) delete mode 100644 .flutter-plugins create mode 100644 .github/workflows/flutter.yml rename MediaPickerGifNew.gif => flutter_media_picker.gif (100%) diff --git a/.flutter-plugins b/.flutter-plugins deleted file mode 100644 index 35dd7fa..0000000 --- a/.flutter-plugins +++ /dev/null @@ -1,28 +0,0 @@ -# This is a generated file; do not edit or check into version control. -file_picker=/Users/mikedoornenbal/.pub-cache/hosted/pub.dev/file_picker-5.5.0/ -file_selector_linux=/Users/mikedoornenbal/.pub-cache/hosted/pub.dev/file_selector_linux-0.9.2+1/ -file_selector_macos=/Users/mikedoornenbal/.pub-cache/hosted/pub.dev/file_selector_macos-0.9.3+3/ -file_selector_windows=/Users/mikedoornenbal/.pub-cache/hosted/pub.dev/file_selector_windows-0.9.3+1/ -flutter_plugin_android_lifecycle=/Users/mikedoornenbal/.pub-cache/hosted/pub.dev/flutter_plugin_android_lifecycle-2.0.17/ -flutter_sound=/Users/mikedoornenbal/.pub-cache/hosted/pub.dev/flutter_sound-9.2.13/ -flutter_sound_web=/Users/mikedoornenbal/.pub-cache/hosted/pub.dev/flutter_sound_web-9.2.13/ -image_picker=/Users/mikedoornenbal/.pub-cache/hosted/pub.dev/image_picker-0.8.9/ -image_picker_android=/Users/mikedoornenbal/.pub-cache/hosted/pub.dev/image_picker_android-0.8.8+2/ -image_picker_for_web=/Users/mikedoornenbal/.pub-cache/hosted/pub.dev/image_picker_for_web-2.2.0/ -image_picker_ios=/Users/mikedoornenbal/.pub-cache/hosted/pub.dev/image_picker_ios-0.8.8+4/ -image_picker_linux=/Users/mikedoornenbal/.pub-cache/hosted/pub.dev/image_picker_linux-0.2.1+1/ -image_picker_macos=/Users/mikedoornenbal/.pub-cache/hosted/pub.dev/image_picker_macos-0.2.1+1/ -image_picker_windows=/Users/mikedoornenbal/.pub-cache/hosted/pub.dev/image_picker_windows-0.2.1+1/ -path_provider=/Users/mikedoornenbal/.pub-cache/hosted/pub.dev/path_provider-2.1.1/ -path_provider_android=/Users/mikedoornenbal/.pub-cache/hosted/pub.dev/path_provider_android-2.2.1/ -path_provider_foundation=/Users/mikedoornenbal/.pub-cache/hosted/pub.dev/path_provider_foundation-2.3.1/ -path_provider_linux=/Users/mikedoornenbal/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/ -path_provider_windows=/Users/mikedoornenbal/.pub-cache/hosted/pub.dev/path_provider_windows-2.2.1/ -permission_handler=/Users/mikedoornenbal/.pub-cache/hosted/pub.dev/permission_handler-10.4.5/ -permission_handler_android=/Users/mikedoornenbal/.pub-cache/hosted/pub.dev/permission_handler_android-10.3.6/ -permission_handler_apple=/Users/mikedoornenbal/.pub-cache/hosted/pub.dev/permission_handler_apple-9.1.4/ -permission_handler_windows=/Users/mikedoornenbal/.pub-cache/hosted/pub.dev/permission_handler_windows-0.1.3/ -video_player=/Users/mikedoornenbal/.pub-cache/hosted/pub.dev/video_player-2.8.1/ -video_player_android=/Users/mikedoornenbal/.pub-cache/hosted/pub.dev/video_player_android-2.4.10/ -video_player_avfoundation=/Users/mikedoornenbal/.pub-cache/hosted/pub.dev/video_player_avfoundation-2.5.1/ -video_player_web=/Users/mikedoornenbal/.pub-cache/hosted/pub.dev/video_player_web-2.1.1/ diff --git a/.github/workflows/flutter.yml b/.github/workflows/flutter.yml new file mode 100644 index 0000000..697a146 --- /dev/null +++ b/.github/workflows/flutter.yml @@ -0,0 +1,14 @@ +name: Iconica Standard Component CI Workflow +# Workflow Caller version: 2.0.0 + +on: + pull_request: + workflow_dispatch: + +jobs: + call-global-iconica-workflow: + uses: Iconica-Development/.github/.github/workflows/component-ci.yml@master + secrets: inherit + permissions: write-all + with: + subfolder: "." diff --git a/.gitignore b/.gitignore index fa0c788..b912244 100644 --- a/.gitignore +++ b/.gitignore @@ -29,3 +29,4 @@ migrate_working_dir/ .packages build/ .flutter-plugins-dependencies +.flutter-plugins \ No newline at end of file diff --git a/MediaPickerGifNew.gif b/flutter_media_picker.gif similarity index 100% rename from MediaPickerGifNew.gif rename to flutter_media_picker.gif diff --git a/lib/video_player/video_player_web.dart b/lib/video_player/video_player_web.dart index d8c65db..20db1e3 100644 --- a/lib/video_player/video_player_web.dart +++ b/lib/video_player/video_player_web.dart @@ -12,6 +12,6 @@ class VideoPlayerWrapper { Future getController(Uint8List video) async { final blob = Blob([video]); final url = Url.createObjectUrlFromBlob(blob); - return VideoPlayerController.network(url); + return VideoPlayerController.networkUrl(Uri.parse(url)); } }