getRecordings method
Implementation
Future<List<RecordingSession>> getRecordings() async {
final directory = await getApplicationDocumentsDirectory();
final recordingsDir = Directory(path.join(directory.path, 'recordings'));
if (!recordingsDir.existsSync()) {
return [];
}
final recordings = <RecordingSession>[];
final files = recordingsDir
.listSync()
.where((entity) => entity is File && entity.path.endsWith('.wav'))
.cast<File>();
for (final file in files) {
try {
final stat = file.statSync();
final session = RecordingSession(
id: path.basenameWithoutExtension(file.path),
filePath: file.path,
startTime: stat.modified,
duration: Duration
.zero, // Would need to parse WAV header for exact duration
sampleRate: _sampleRate,
deviceName: 'Unknown',
);
recordings.add(session);
} catch (e) {
print('Error processing recording file: $e');
// Skip invalid files
}
}
recordings.sort((a, b) => b.startTime.compareTo(a.startTime));
return recordings;
}