【发布时间】:2021-09-12 05:54:14
【问题描述】:
我正在通过 URL 在我的应用中播放视频。我需要将该视频下载到手机的内部存储器中。我怎样才能做到这一点。有没有什么办法。我是 Flutter 新手?
【问题讨论】:
标签: flutter dart flutter-layout
我正在通过 URL 在我的应用中播放视频。我需要将该视频下载到手机的内部存储器中。我怎样才能做到这一点。有没有什么办法。我是 Flutter 新手?
【问题讨论】:
标签: flutter dart flutter-layout
您可以使用以下代码下载视频....
static var httpClient = HttpClient();
Future<File> downloadFile(String url1, String filename) async {
var request = await httpClient.getUrl(Uri.parse(url1));
var response = await request.close();
var bytes = await consolidateHttpClientResponseBytes(response);
String dir = (await getApplicationDocumentsDirectory()).path;
File file = new File('$dir/$filename');
await file.writeAsBytes(bytes);
return file;
}
【讨论】:
path_provider, http
这是一个可以帮助你的例子
downloadVideo()
{ var url = "Your url";
var status = await Permission.storage.status;
if (!status.isGranted) {
await Permission.storage.request();
}
var tempPath = await ExtStorage.getExternalStoragePublicDirectory(
ExtStorage.DIRECTORY_DOWNLOADS);
try {
var res = await http.get(
'$url',
headers: <String, String>{
'Authorization': _userDataController.userDataModel.token,//if authorization is not required then remove this line
},
);
filePath = tempPath + '/Video1.mp4';//use you own video format
} catch (e) {
print(e);
}}
你必须使用permission_handler: ^8.1.2 & http: ^0.13.3 和 path_provider: ^2.0.2
【讨论】: