Updated SongPictureInfo use to async copy of picture data stream. Update other classes accordingly.

This commit is contained in:
2025-03-02 23:28:28 -05:00
parent 1a9c1a5478
commit 0675131195
11 changed files with 178 additions and 149 deletions

View File

@@ -46,20 +46,20 @@ public class AudioImageExtractor : IAudioImageExtractor
];
}
public SongPictureInfo? ExtractImage(string path)
public async Task<SongPictureInfo?> ExtractImageAsync(string path, CancellationToken cancellationToken)
{
SongTagInfo songTagInfo = _tagResolver.GetSongTagInfo(path);
return ExtractImage(path, songTagInfo);
return await ExtractImageAsync(path, songTagInfo, cancellationToken);
}
public SongPictureInfo? ExtractImage(string path, SongTagInfo songTagInfo)
public async Task<SongPictureInfo?> ExtractImageAsync(string path, SongTagInfo songTagInfo, CancellationToken cancellationToken)
{
if (songTagInfo.FrontCover != null)
{
using MemoryStream memoryStream = new(songTagInfo.FrontCover.Data);
return SongPictureInfo.FromStream(memoryStream);
return await SongPictureInfo.FromStreamAsync(memoryStream, cancellationToken);
}
else
{
@@ -68,7 +68,7 @@ public class AudioImageExtractor : IAudioImageExtractor
if (string.IsNullOrWhiteSpace(imagePath))
return null;
return SongPictureInfo.FromFile(path);
return await SongPictureInfo.FromFileAsync(path, cancellationToken);
}
}