// 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 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 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 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 } } }