mirror of
https://github.com/Iconica-Development/flutter_media_picker.git
synced 2025-05-19 08:53:45 +02:00
47 lines
1.3 KiB
Dart
47 lines
1.3 KiB
Dart
|
import 'dart:typed_data';
|
||
|
|
||
|
import 'package:flutter/material.dart';
|
||
|
import 'package:flutter_media_picker/src/abstracts/media_picker_service.dart';
|
||
|
import 'package:image_picker/image_picker.dart';
|
||
|
import 'package:flutter_media_picker/video_player/video_player_native.dart'
|
||
|
if (dart.library.html) 'package:media_picker/video_player/video_player_web.dart'
|
||
|
as vp;
|
||
|
import 'package:video_player/video_player.dart';
|
||
|
|
||
|
class MediaPickerFileService implements MediaPickerService {
|
||
|
late VideoPlayerController controller;
|
||
|
|
||
|
@override
|
||
|
Future<Uint8List?> pickImageFile() async {
|
||
|
var image = await ImagePicker().pickImage(source: ImageSource.camera);
|
||
|
|
||
|
if (image != null) {
|
||
|
return image.readAsBytes();
|
||
|
}
|
||
|
return Future.value(null);
|
||
|
}
|
||
|
|
||
|
@override
|
||
|
Future<Uint8List?> pickVideoFile() async {
|
||
|
var video = await ImagePicker().pickVideo(source: ImageSource.camera);
|
||
|
|
||
|
if (video != null) {
|
||
|
return video.readAsBytes();
|
||
|
}
|
||
|
return Future.value(null);
|
||
|
}
|
||
|
|
||
|
Future<Widget> videoPlayer(Uint8List video) async {
|
||
|
await _initialize(video);
|
||
|
return VideoPlayer(controller);
|
||
|
}
|
||
|
|
||
|
_initialize(Uint8List video) async {
|
||
|
controller = await vp.VideoPlayerWrapper().getController(video);
|
||
|
|
||
|
await controller.initialize();
|
||
|
await controller.setLooping(true);
|
||
|
await controller.play();
|
||
|
}
|
||
|
}
|