openStream method
Implementation
@override
Stream<List<int>> openStream([int? start, int? end]) async* {
final reader = FileReader();
int start = 0;
var startTime = DateTime.now();
while (start < file.size) {
final end = start + chunkSize > file.size ? file.size : start + chunkSize;
final blob = file.slice(start, end);
reader.readAsArrayBuffer(blob);
await reader.onLoad.first;
var res = reader.result;
if (res != null) {
yield res as List<int>;
}
start += chunkSize;
}
var duration = DateTime.now().difference(startTime);
log.fine(
"Took $duration to load ${file.name} (${file.size ~/ (1024 * 1024)}kb)");
}