🐛 Fixes on video caching policy

This commit is contained in:
LittleSheep 2025-06-08 20:22:46 +08:00
parent 723e17ff47
commit 37f5c61905

View File

@ -5,7 +5,6 @@ import 'package:flutter/material.dart';
import 'package:flutter_cache_manager/flutter_cache_manager.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:island/pods/network.dart';
import 'package:island/widgets/alert.dart';
import 'package:media_kit/media_kit.dart';
import 'package:media_kit_video/media_kit_video.dart';
@ -37,26 +36,16 @@ class _UniversalVideoState extends ConsumerState<UniversalVideo> {
final inCacheInfo = await DefaultCacheManager().getFileFromCache(url);
if (inCacheInfo == null) {
log('[MediaPlayer] Miss cache: $url');
final token = await getToken(ref.watch(tokenProvider));
final fileStream = DefaultCacheManager().getFileStream(
final token = ref.watch(tokenProvider)?.token;
DefaultCacheManager().downloadFile(
url,
headers: {'Authorization': 'Bearer $token'},
withProgress: true,
authHeaders: {'Authorization': 'AtField $token'},
);
await for (var fileInfo in fileStream) {
if (fileInfo is FileInfo) {
uri = fileInfo.file.path;
break;
}
}
uri = url;
} else {
uri = inCacheInfo.file.path;
log('[MediaPlayer] Hit cache: $url');
}
if (uri == null) {
showErrorAlert('Failed to open media... $url');
return;
}
_player!.open(Media(uri), play: false);
}