Code Review Optimierungen: Typsicherheit, Scanner-Performance, DB Upgrade Template, Division Guard
This commit is contained in:
@@ -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