🐛 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_cache_manager/flutter_cache_manager.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:island/pods/network.dart'; import 'package:island/pods/network.dart';
import 'package:island/widgets/alert.dart';
import 'package:media_kit/media_kit.dart'; import 'package:media_kit/media_kit.dart';
import 'package:media_kit_video/media_kit_video.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); final inCacheInfo = await DefaultCacheManager().getFileFromCache(url);
if (inCacheInfo == null) { if (inCacheInfo == null) {
log('[MediaPlayer] Miss cache: $url'); log('[MediaPlayer] Miss cache: $url');
final token = await getToken(ref.watch(tokenProvider)); final token = ref.watch(tokenProvider)?.token;
final fileStream = DefaultCacheManager().getFileStream( DefaultCacheManager().downloadFile(
url, url,
headers: {'Authorization': 'Bearer $token'}, authHeaders: {'Authorization': 'AtField $token'},
withProgress: true,
); );
await for (var fileInfo in fileStream) { uri = url;
if (fileInfo is FileInfo) {
uri = fileInfo.file.path;
break;
}
}
} else { } else {
uri = inCacheInfo.file.path; uri = inCacheInfo.file.path;
log('[MediaPlayer] Hit cache: $url'); log('[MediaPlayer] Hit cache: $url');
} }
if (uri == null) {
showErrorAlert('Failed to open media... $url');
return;
}
_player!.open(Media(uri), play: false); _player!.open(Media(uri), play: false);
} }