保存图像和视频以供离线访问
Saving images and videos for offline access
我正在开发一个从我的 REST API 获取自定义对象的应用程序。该对象的 class 称为 MyItem
,它看起来像这样:
class MyItem {
String title;
String profilePicURL;
String videoURL;
}
如您所见,class 包含两个 URL,指向 png
和 mp4
文件。
我想实现一项功能,允许用户下载对象,以便离线访问其内容。我保存 title
属性 没有问题,但是如何保存两个 URL(因为我不想保存 URL 本身,我会喜欢保存它指向的文件)。
知道在 Flutter 和 Dart 中最好的方法是什么吗?
谢谢!
import 'package:dio/dio.dart';
import 'package:path_provider/path_provider.dart';
var directory = await getApplicationDocumentsDirectory();
Dio dio = Dio();
//Below function will download the file you want from url and save it locally
void Download(String title, String downloadurl) async{
try{
await dio.download(downloadurl,"${directory.path}/$title.extensionoffile",
onReceiveProgress: (rec,total){
print("Rec: $rec, Total:$total");
setState(() {
//just to save completion in percentage
String progressString = ((rec/total)*100).toStringAsFixed(0)+"%";
}
);
});
}
catch(e){
//Catch your error here
}
}
现在又可以在任何地方使用
var directory = await getApplicationDocumentsDirectory();
String filepath = "{directory.path}/filename.fileextension";
现在你可以使用这个Image.file('filepath');
//来显示那些图像
你也可以使用
video player plugin
再次 VideoPlayerController.file('filepath')
// 显示视频但正确阅读文档
这些只是整个步骤或更广阔的视野,您需要将它们用作地图并构建您的 code.That 保存或正确获取或映射的正确文件名和扩展名
我正在开发一个从我的 REST API 获取自定义对象的应用程序。该对象的 class 称为 MyItem
,它看起来像这样:
class MyItem {
String title;
String profilePicURL;
String videoURL;
}
如您所见,class 包含两个 URL,指向 png
和 mp4
文件。
我想实现一项功能,允许用户下载对象,以便离线访问其内容。我保存 title
属性 没有问题,但是如何保存两个 URL(因为我不想保存 URL 本身,我会喜欢保存它指向的文件)。
知道在 Flutter 和 Dart 中最好的方法是什么吗?
谢谢!
import 'package:dio/dio.dart';
import 'package:path_provider/path_provider.dart';
var directory = await getApplicationDocumentsDirectory();
Dio dio = Dio();
//Below function will download the file you want from url and save it locally
void Download(String title, String downloadurl) async{
try{
await dio.download(downloadurl,"${directory.path}/$title.extensionoffile",
onReceiveProgress: (rec,total){
print("Rec: $rec, Total:$total");
setState(() {
//just to save completion in percentage
String progressString = ((rec/total)*100).toStringAsFixed(0)+"%";
}
);
});
}
catch(e){
//Catch your error here
}
}
现在又可以在任何地方使用
var directory = await getApplicationDocumentsDirectory();
String filepath = "{directory.path}/filename.fileextension";
现在你可以使用这个Image.file('filepath');
//来显示那些图像
你也可以使用
video player plugin
再次 VideoPlayerController.file('filepath')
// 显示视频但正确阅读文档
这些只是整个步骤或更广阔的视野,您需要将它们用作地图并构建您的 code.That 保存或正确获取或映射的正确文件名和扩展名