From f75767ea2a353ed60ea88c9a8038b20197df9f21 Mon Sep 17 00:00:00 2001 From: vi-k Date: Fri, 3 Sep 2021 16:12:30 +1000 Subject: [PATCH] Fix the error of incomplete data loading on the Android emulator. --- lib/src/reverse_engineering/youtube_http_client.dart | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/src/reverse_engineering/youtube_http_client.dart b/lib/src/reverse_engineering/youtube_http_client.dart index 242baec..e63883f 100644 --- a/lib/src/reverse_engineering/youtube_http_client.dart +++ b/lib/src/reverse_engineering/youtube_http_client.dart @@ -117,21 +117,21 @@ class YoutubeHttpClient extends http.BaseClient { int errorCount = 0}) async* { var url = streamInfo.url; var bytesCount = start; - for (var i = start; i < streamInfo.size.totalBytes; i += 9898989) { + while (bytesCount != streamInfo.size.totalBytes) { try { final response = await retry(() { final request = http.Request('get', url); - request.headers['range'] = 'bytes=$i-${i + 9898989 - 1}'; + request.headers['range'] = 'bytes=$bytesCount-${bytesCount + 9898989 - 1}'; return send(request); }); if (validate) { _validateResponse(response, response.statusCode); } final stream = StreamController>(); - response.stream.listen((data) { - bytesCount += data.length; - stream.add(data); - }, onError: (_) => null, onDone: stream.close, cancelOnError: false); + response.stream.listen((data) { + bytesCount += data.length; + stream.add(data); + }, onError: (_) => null, onDone: stream.close, cancelOnError: false); errorCount = 0; yield* stream.stream; } on Exception {