openStream method

  1. @override
Stream<List<int>> openStream([
  1. int? start,
  2. int? end
])
override

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)");
}