私のアプリでは、電話のストレージからすべてのビデオを一覧表示しています。グリッドビューでは、すべてのビデオを表示しています。私は video_thumbnail ウィジェットの親としてのフューチャービルダーです。エミュレーターでは正常に動作し、サムネイル付きのすべてのビデオを表示しますが、ビルドして携帯電話で実行すると、円形の進行状況バーのみが表示されます。
私のコード:
import 'dart:io';
import 'dart:typed_data';
import 'package:flutter/material.dart';
import 'package:video_thumbnail/video_thumbnail.dart';
class VideoWithThumbnail extends StatefulWidget {
final String filePath;
VideoWithThumbnail({@required this.filePath});
@override
_VideoWithThumbnailState createState() => _VideoWithThumbnailState();
}
class _VideoWithThumbnailState extends State<VideoWithThumbnail> {
Future futureThumbnail;
void initState() {
super.initState();
futureThumbnail = getThumbnail();
}
@override
Widget build(BuildContext context) {
return FutureBuilder(
future: futureThumbnail,
builder: (context, snapshot) {
if (ConnectionState.done == snapshot.connectionState) {
return Image.memory(snapshot.data);
} else {
return CircularProgressIndicator();
}
},
);
}
Future<Uint8List> getThumbnail() async {
Uint8List unit8List = await VideoThumbnail.thumbnailData(
video: widget.filePath,
imageFormat: ImageFormat.JPEG,
maxWidth:
128,
quality: 25,
);
return unit8List;
}
}