fix(playback): 播放页/迷你播放器立即显示已有封面,不再等元数据流程
原因有两层: 1) Song 模型没有封面路径,播放时只带 url/title/artist, 播放页只能等元数据服务返回 artwork 字节后才显示; 2) 元数据回来后用新 Song 覆盖当前歌曲时丢了 artworkPath, 即使带上了也会被冲掉。 - Song 增加 artworkPath 字段 - PlaybackController / 首页收藏 / playPlaylist 构造 Song 时带上 - 播放页:artwork 字节优先,其次直接读 artwork_path 文件 - 迷你播放器同样加 FileImage 兜底 - 元数据更新重建 Song 时保留 artworkPath 真机验证:点击播放后封面立即出现,不再先显示音符占位。
This commit is contained in:
@@ -98,6 +98,7 @@ class PlaybackController {
|
||||
final dbSong = await _db.getSongByPath(songPath);
|
||||
final song = Song(
|
||||
id: songPath,
|
||||
artworkPath: dbSong?['artwork_path'] as String?,
|
||||
title: dbSong?['title'] as String? ??
|
||||
songPath.split('/').last.replaceAll(RegExp(r'\.[^.]*$'), ''),
|
||||
artist: dbSong?['artist'] as String? ?? '未知艺术家',
|
||||
@@ -117,6 +118,7 @@ class PlaybackController {
|
||||
if (dbSong != null) {
|
||||
queue.add(Song(
|
||||
id: item.path,
|
||||
artworkPath: dbSong['artwork_path'] as String?,
|
||||
title: dbSong['title'] as String? ??
|
||||
item.name.replaceAll(RegExp(r'\.[^.]*$'), ''),
|
||||
artist: dbSong['artist'] as String? ?? '未知艺术家',
|
||||
|
||||
Reference in New Issue
Block a user