Code Review Optimierungen: Typsicherheit, Scanner-Performance, DB Upgrade Template, Division Guard
This commit is contained in:
@@ -100,7 +100,7 @@ class DownloadService {
|
||||
await for (final chunk in fileStream) {
|
||||
sink.add(chunk);
|
||||
downloaded += chunk.length;
|
||||
_fortschritt = downloaded / total;
|
||||
_fortschritt = total > 0 ? downloaded / total : 0.0;
|
||||
}
|
||||
await sink.flush();
|
||||
await sink.close();
|
||||
|
||||
@@ -26,6 +26,8 @@ class MusikScanner {
|
||||
final gefunden = <Song>[];
|
||||
final pfade = await _sammleMusikPfade();
|
||||
|
||||
final player = AudioPlayer();
|
||||
|
||||
for (final pfad in pfade) {
|
||||
try {
|
||||
final file = File(pfad);
|
||||
@@ -35,7 +37,7 @@ class MusikScanner {
|
||||
titel: _dateiNameOhneEndung(pfad),
|
||||
kuenstler: 'Unbekannt',
|
||||
album: '',
|
||||
dauerSekunden: await _ermittleDauer(pfad),
|
||||
dauerSekunden: await _ermittleDauer(player, pfad),
|
||||
dateiPfad: pfad,
|
||||
coverPfad: null,
|
||||
groesseBytes: stat.size,
|
||||
@@ -47,6 +49,10 @@ class MusikScanner {
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
await player.dispose();
|
||||
} catch (_) {}
|
||||
|
||||
// In DB speichern
|
||||
final vorhandene = await _db.alleSongs();
|
||||
final vorhandenePfade = vorhandene.map((s) => s.dateiPfad).toSet();
|
||||
@@ -126,12 +132,10 @@ class MusikScanner {
|
||||
} catch (_) {}
|
||||
}
|
||||
|
||||
Future<int> _ermittleDauer(String pfad) async {
|
||||
Future<int> _ermittleDauer(AudioPlayer player, String pfad) async {
|
||||
try {
|
||||
final player = AudioPlayer();
|
||||
await player.setFilePath(pfad);
|
||||
final dauer = player.duration;
|
||||
await player.dispose();
|
||||
return dauer?.inSeconds ?? 0;
|
||||
} catch (_) {
|
||||
return 0;
|
||||
|
||||
Reference in New Issue
Block a user