Fix the error of incomplete data loading on the Android emulator.
This commit is contained in:
parent
bba4ba97b6
commit
f75767ea2a
|
@ -117,21 +117,21 @@ class YoutubeHttpClient extends http.BaseClient {
|
||||||
int errorCount = 0}) async* {
|
int errorCount = 0}) async* {
|
||||||
var url = streamInfo.url;
|
var url = streamInfo.url;
|
||||||
var bytesCount = start;
|
var bytesCount = start;
|
||||||
for (var i = start; i < streamInfo.size.totalBytes; i += 9898989) {
|
while (bytesCount != streamInfo.size.totalBytes) {
|
||||||
try {
|
try {
|
||||||
final response = await retry(() {
|
final response = await retry(() {
|
||||||
final request = http.Request('get', url);
|
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);
|
return send(request);
|
||||||
});
|
});
|
||||||
if (validate) {
|
if (validate) {
|
||||||
_validateResponse(response, response.statusCode);
|
_validateResponse(response, response.statusCode);
|
||||||
}
|
}
|
||||||
final stream = StreamController<List<int>>();
|
final stream = StreamController<List<int>>();
|
||||||
response.stream.listen((data) {
|
response.stream.listen((data) {
|
||||||
bytesCount += data.length;
|
bytesCount += data.length;
|
||||||
stream.add(data);
|
stream.add(data);
|
||||||
}, onError: (_) => null, onDone: stream.close, cancelOnError: false);
|
}, onError: (_) => null, onDone: stream.close, cancelOnError: false);
|
||||||
errorCount = 0;
|
errorCount = 0;
|
||||||
yield* stream.stream;
|
yield* stream.stream;
|
||||||
} on Exception {
|
} on Exception {
|
||||||
|
|
Loading…
Reference in New Issue