flutter_media_picker/lib/src/service/media_picker_service.dart

47 lines
1.3 KiB
Dart
Raw Normal View History

2022-10-25 14:20:18 +02:00
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();
}
}