|
@@ -8,6 +8,8 @@ class _VidDataHostBroswer implements VidDataHostInterface {
|
|
|
|
|
|
VidUsImageData? _data;
|
|
|
|
|
|
+ VidFileDownloadCancelToken? _downloadCancelToken;
|
|
|
+
|
|
|
@override
|
|
|
int get frameCount => _data!.imageCount;
|
|
|
|
|
@@ -31,7 +33,11 @@ class _VidDataHostBroswer implements VidDataHostInterface {
|
|
|
|
|
|
@override
|
|
|
Future<VidDataHostLoadInfo?> load() async {
|
|
|
- final bytes = await VidFileDownloader.download(url);
|
|
|
+ _downloadCancelToken = VidFileDownloadCancelToken();
|
|
|
+ final bytes = await VidFileDownloader.download(
|
|
|
+ url,
|
|
|
+ cancelToken: _downloadCancelToken,
|
|
|
+ );
|
|
|
if (bytes != null && bytes.isNotEmpty) {
|
|
|
_data = VidUsImageData(bytes);
|
|
|
final info = VidDataHostLoadInfo(_data!.probe);
|
|
@@ -42,6 +48,9 @@ class _VidDataHostBroswer implements VidDataHostInterface {
|
|
|
|
|
|
@override
|
|
|
Future<void> release() async {
|
|
|
+ try {
|
|
|
+ _downloadCancelToken?.cancel();
|
|
|
+ } catch (e) {}
|
|
|
_data = null;
|
|
|
}
|
|
|
}
|