video_thumbnail_generator.dart 748 B

12345678910111213141516171819202122232425262728
  1. import 'dart:async';
  2. import 'dart:typed_data';
  3. import 'package:video_thumbnail/video_thumbnail.dart';
  4. class VideoThumbnailGenerator {
  5. static final Map<String, Uint8List> _thumbnailCache = {};
  6. static Future<Uint8List?> getFirstFrameThumbnail(String videoUrl) async {
  7. if (_thumbnailCache.containsKey(videoUrl)) {
  8. return _thumbnailCache[videoUrl];
  9. }
  10. try {
  11. final uint8list = await VideoThumbnail.thumbnailData(
  12. video: videoUrl,
  13. imageFormat: ImageFormat.JPEG,
  14. maxWidth: 720,
  15. quality: 80,
  16. );
  17. if (uint8list != null)
  18. _thumbnailCache[videoUrl] = uint8list;
  19. return uint8list;
  20. } catch (e) {
  21. print("Thumbnail generation error: $e");
  22. }
  23. return null;
  24. }
  25. }