mirror of
https://github.com/Iconica-Development/flutter_media_picker.git
synced 2025-05-19 00:43:45 +02:00
Compare commits
8 commits
Author | SHA1 | Date | |
---|---|---|---|
03d9ac1f5d | |||
|
bb044ce0b5 | ||
|
83cb1857a0 | ||
|
1e579005f2 | ||
|
41030cfa13 | ||
66e1354484 | |||
|
c27d3a078e | ||
|
a865e651b1 |
9 changed files with 49 additions and 23 deletions
3
.fvmrc
Normal file
3
.fvmrc
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
"flutter": "3.24.3"
|
||||||
|
}
|
1
.github/workflows/flutter.yml
vendored
1
.github/workflows/flutter.yml
vendored
|
@ -12,3 +12,4 @@ jobs:
|
||||||
permissions: write-all
|
permissions: write-all
|
||||||
with:
|
with:
|
||||||
subfolder: "."
|
subfolder: "."
|
||||||
|
flutter_version: "3.24.3"
|
||||||
|
|
3
.gitignore
vendored
3
.gitignore
vendored
|
@ -19,7 +19,7 @@ migrate_working_dir/
|
||||||
# The .vscode folder contains launch configuration and tasks you configure in
|
# The .vscode folder contains launch configuration and tasks you configure in
|
||||||
# VS Code which you may wish to be included in version control, so this line
|
# VS Code which you may wish to be included in version control, so this line
|
||||||
# is commented out by default.
|
# is commented out by default.
|
||||||
#.vscode/
|
.vscode/
|
||||||
|
|
||||||
# Flutter/Dart/Pub related
|
# Flutter/Dart/Pub related
|
||||||
# Libraries should not include pubspec.lock, per https://dart.dev/guides/libraries/private-files#pubspeclock.
|
# Libraries should not include pubspec.lock, per https://dart.dev/guides/libraries/private-files#pubspeclock.
|
||||||
|
@ -33,7 +33,6 @@ build/
|
||||||
|
|
||||||
# FVM Version Cache
|
# FVM Version Cache
|
||||||
.fvm/
|
.fvm/
|
||||||
.fvmrc
|
|
||||||
|
|
||||||
.metadata
|
.metadata
|
||||||
example/ios
|
example/ios
|
||||||
|
|
12
CHANGELOG.md
12
CHANGELOG.md
|
@ -1,3 +1,15 @@
|
||||||
|
## 1.0.1
|
||||||
|
|
||||||
|
- Add imagesource and quality attributes when picking file
|
||||||
|
|
||||||
|
## 1.0.0
|
||||||
|
|
||||||
|
- Use modern flutter version as minimal version support
|
||||||
|
|
||||||
|
## 0.7.0
|
||||||
|
|
||||||
|
- Added 'pickFileOfType' to the MediaPickerService
|
||||||
|
|
||||||
## 0.6.6
|
## 0.6.6
|
||||||
|
|
||||||
- Upgraded 'logger' package to ^2.4.0
|
- Upgraded 'logger' package to ^2.4.0
|
||||||
|
|
|
@ -4,16 +4,21 @@
|
||||||
|
|
||||||
import 'dart:typed_data';
|
import 'dart:typed_data';
|
||||||
|
|
||||||
import 'package:file_picker/file_picker.dart';
|
|
||||||
import 'package:flutter_media_picker/flutter_media_picker.dart';
|
import 'package:flutter_media_picker/flutter_media_picker.dart';
|
||||||
|
|
||||||
abstract class MediaPickerService {
|
abstract class MediaPickerService {
|
||||||
/// Returns [MediaResult] based on given [ImageSource].
|
/// Returns [MediaResult] based on given [ImageSource].
|
||||||
Future<MediaResult?> pickImageFile();
|
Future<MediaResult?> pickImageFile({
|
||||||
|
ImageSource source = ImageSource.camera,
|
||||||
|
int quality = 20,
|
||||||
|
});
|
||||||
|
|
||||||
/// Returns [Uint8List] based on given [VideoSource].
|
/// Returns [Uint8List] based on given [VideoSource].
|
||||||
Future<MediaResult?> pickVideoFile();
|
Future<MediaResult?> pickVideoFile();
|
||||||
|
|
||||||
/// Returns [FilePickerResult] based on given [File].
|
/// Returns [FilePickerResult] based on given [File].
|
||||||
Future<FilePickerResult?> pickFile(List<String> fileExtensions);
|
Future<FilePickerResult?> pickFile(List<String> fileExtensions);
|
||||||
|
|
||||||
|
/// Returns [FilePickerResult] with type [FileType] based on given [File].
|
||||||
|
Future<FilePickerResult?> pickFileOfType(FileType type);
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: BSD-3-Clause
|
// SPDX-License-Identifier: BSD-3-Clause
|
||||||
|
|
||||||
import 'package:file_picker/file_picker.dart';
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:mime/mime.dart';
|
import 'package:mime/mime.dart';
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,6 @@
|
||||||
|
|
||||||
import 'dart:typed_data';
|
import 'dart:typed_data';
|
||||||
|
|
||||||
import 'package:file_picker/file_picker.dart';
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_media_picker/flutter_media_picker.dart';
|
import 'package:flutter_media_picker/flutter_media_picker.dart';
|
||||||
import 'package:image_picker/image_picker.dart';
|
import 'package:image_picker/image_picker.dart';
|
||||||
|
@ -12,13 +11,20 @@ import 'package:flutter_media_picker/video_player/video_player_native.dart'
|
||||||
if (dart.library.html) 'package:flutter_media_picker/video_player/video_player_web.dart'
|
if (dart.library.html) 'package:flutter_media_picker/video_player/video_player_web.dart'
|
||||||
as vp;
|
as vp;
|
||||||
import 'package:video_player/video_player.dart';
|
import 'package:video_player/video_player.dart';
|
||||||
|
export 'package:file_picker/file_picker.dart';
|
||||||
|
|
||||||
class MediaPickerFileService implements MediaPickerService {
|
class MediaPickerFileService implements MediaPickerService {
|
||||||
late VideoPlayerController controller;
|
late VideoPlayerController controller;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<MediaResult?> pickImageFile() async {
|
Future<MediaResult?> pickImageFile({
|
||||||
var image = await ImagePicker().pickImage(source: ImageSource.camera);
|
ImageSource source = ImageSource.camera,
|
||||||
|
int quality = 20,
|
||||||
|
}) async {
|
||||||
|
var image = await ImagePicker().pickImage(
|
||||||
|
source: source,
|
||||||
|
imageQuality: quality,
|
||||||
|
);
|
||||||
|
|
||||||
if (image != null) {
|
if (image != null) {
|
||||||
return MediaResult(
|
return MediaResult(
|
||||||
|
@ -58,17 +64,17 @@ class MediaPickerFileService implements MediaPickerService {
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<FilePickerResult?> pickFile(List<String> extensions) async {
|
Future<FilePickerResult?> pickFile(List<String> extensions) async =>
|
||||||
var file = await FilePicker.platform.pickFiles(
|
FilePicker.platform.pickFiles(
|
||||||
withData: true,
|
withData: true,
|
||||||
type: FileType.custom,
|
type: FileType.custom,
|
||||||
allowedExtensions: extensions,
|
allowedExtensions: extensions,
|
||||||
);
|
);
|
||||||
|
|
||||||
if (file != null) {
|
@override
|
||||||
return file;
|
Future<FilePickerResult?> pickFileOfType(FileType type) async =>
|
||||||
}
|
FilePicker.platform.pickFiles(
|
||||||
|
withData: true,
|
||||||
return Future.value(null);
|
type: type,
|
||||||
}
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,3 +4,4 @@
|
||||||
|
|
||||||
export './audio_service.dart';
|
export './audio_service.dart';
|
||||||
export './media_picker_service.dart';
|
export './media_picker_service.dart';
|
||||||
|
export 'package:image_picker/image_picker.dart' show ImageSource;
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
name: flutter_media_picker
|
name: flutter_media_picker
|
||||||
description: A new Flutter package project.
|
description: A new Flutter package project.
|
||||||
version: 0.6.6
|
version: 1.0.1
|
||||||
homepage: https://github.com/Iconica-Development/flutter_media_picker
|
homepage: https://github.com/Iconica-Development/flutter_media_picker
|
||||||
|
|
||||||
publish_to: https://forgejo.internal.iconica.nl/api/packages/internal/pub
|
publish_to: https://forgejo.internal.iconica.nl/api/packages/internal/pub
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ">=3.0.0 <4.0.0"
|
sdk: ">=3.5.3 <4.0.0"
|
||||||
flutter: ">=1.17.0"
|
flutter: ">=3.24.3"
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
flutter:
|
flutter:
|
||||||
|
|
Loading…
Reference in a new issue