首页 > 解决方案 > Flutter 在 Isolate 上通过 DIO 包上传视频

问题描述

我正在尝试使用 dio 包在我的 AWS S3 服务器上上传视频。

怎么了:

视频上传成功,但 api 调用阻塞了 UI 线程,它会在上传过程中真正减慢应用程序的速度。通过 dio 的所有其他 api 调用都不会影响 UI。

这是我的代码:

dio.FormData formData = dio.FormData.fromMap({
        "video": multiplartFiles,
        "video_id": videoId,
      });

dio.Dio dioInstance = new dio.Dio(); 
dioInstance.options.headers = headers;
final response = await dioInstance.post(uploadVideoEndPoint, data: formData, onSendProgress: (val1, val2) {
print('$val1 / $val2');
}).catchError((error) { 
return Response(success: false, error: "Unable to upload video. Please check your network connection and try again"); 
});

我做的事情:

将我所有的上传代码移动到 Isolate 它命中 api 但它没有得到任何响应并且它没有在服务器端显示任何错误。

dio 对隔离有效吗?

预期结果:

虽然上传视频 UI 不应该变慢。

标签: flutterdartfile-uploaddart-isolates

解决方案


推荐阅读