load method
- String key
override
Retrieve a binary resource from the asset bundle as a data stream.
Throws an exception if the asset is not found.
The returned ByteData
can be converted to a Uint8List (a list of bytes)
using ByteData.buffer to obtain a ByteBuffer, and then
ByteBuffer.asUint8List to obtain the byte list. Lists of bytes can be
used with APIs that accept Uint8List objects, such as
decodeImageFromList, as well as any API that accepts a List<int>, such
as File.writeAsBytes or Utf8Codec.decode (accessible via utf8).
Implementation
@override
Future<ByteData> load(String key) async {
final HttpClientRequest request = await _httpClient.getUrl(_urlFromKey(key));
final HttpClientResponse response = await request.close();
if (response.statusCode != HttpStatus.ok) {
throw FlutterError.fromParts(<DiagnosticsNode>[
_errorSummaryWithKey(key),
IntProperty('HTTP status code', response.statusCode),
]);
}
final Uint8List bytes = await consolidateHttpClientResponseBytes(response);
return bytes.buffer.asByteData();
}