Files
QingTing-Player/lib/utils/artwork_helper.dart
T
lxh2875931338 0e8921742c 引入部分缓存机制
引入封面图信息

正在进入测试阶段
2026-08-25 22:13:36 +08:00

56 lines
1.4 KiB
Dart

// lib/utils/artwork_helper.dart
import 'dart:io';
import 'dart:typed_data';
import 'package:path_provider/path_provider.dart';
class ArtworkHelper {
static const String _artworkDir = 'artworks';
/// 保存封面图到本地
static Future<String?> saveArtwork(Uint8List data, String songKey) async {
try {
final dir = await getApplicationDocumentsDirectory();
final artworkDir = Directory('${dir.path}/$_artworkDir');
if (!await artworkDir.exists()) {
await artworkDir.create(recursive: true);
}
final path = '${artworkDir.path}/$songKey.jpg';
final file = File(path);
await file.writeAsBytes(data);
return path;
} catch (e) {
return null;
}
}
/// 获取封面图文件
static Future<File?> getArtwork(String songKey) async {
try {
final dir = await getApplicationDocumentsDirectory();
final path = '${dir.path}/$_artworkDir/$songKey.jpg';
final file = File(path);
if (await file.exists()) {
return file;
}
return null;
} catch (e) {
return null;
}
}
/// 删除封面图
static Future<void> deleteArtwork(String songKey) async {
try {
final dir = await getApplicationDocumentsDirectory();
final path = '${dir.path}/$_artworkDir/$songKey.jpg';
final file = File(path);
if (await file.exists()) {
await file.delete();
}
} catch (e) {
// ignore
}
}
}