Вы не можете использовать rootBundle
для доступа к файлам на телефоне. RootBundle (как сказано в его документах ) работает только для файлов, упакованных с приложением, когда оно было построено (возможно, сохранено на ресурсах, объявленных в pubspe c, et c).
Если вы хотите загрузить изображение с телефона, это может помочь.
ОТВЕТ
Эта функция может читать filePath и возвращать Uint8List (a byteArray):
Future<Uint8List> _readFileByte(String filePath) async {
Uri myUri = Uri.parse(filePath);
File audioFile = new File.fromUri(myUri);
Uint8List bytes;
await audioFile.readAsBytes().then((value) {
bytes = Uint8List.fromList(value);
print('reading of bytes is completed');
}).catchError((onError) {
print('Exception Error while reading audio from path:' +
onError.toString());
});
return bytes;
}
И, чтобы получить ByteData
просто:
var path = 'Some path to an image';
var byteArray = _readFileByte(path);
ByteData data = ByteData.view(byteArray.buffer);
(Ответ основан на это )