12345678910111213141516171819202122232425262728 |
- import 'dart:async';
- import 'dart:typed_data';
- import 'package:video_thumbnail/video_thumbnail.dart';
- class VideoThumbnailGenerator {
- static final Map<String, Uint8List> _thumbnailCache = {};
- static Future<Uint8List?> getFirstFrameThumbnail(String videoUrl) async {
- if (_thumbnailCache.containsKey(videoUrl)) {
- return _thumbnailCache[videoUrl];
- }
- try {
- final uint8list = await VideoThumbnail.thumbnailData(
- video: videoUrl,
- imageFormat: ImageFormat.JPEG,
- maxWidth: 720,
- quality: 80,
- );
- if (uint8list != null)
- _thumbnailCache[videoUrl] = uint8list;
- return uint8list;
- } catch (e) {
- print("Thumbnail generation error: $e");
- }
- return null;
- }
- }
|