HarmonyOS鸿蒙Next中视频文件拿到地址后如何在沙箱中下载
HarmonyOS鸿蒙Next中视频文件拿到地址后如何在沙箱中下载 视频文件如何下载 沙箱中
3 回复
看看下面的例子:
import common from '@ohos.app.ability.common';
import request from '@ohos.request';
import { BusinessError } from '@ohos.base';
import fs from '@ohos.file.fs';
import { buffer } from '@kit.ArkTS';
// 获取应用文件路径
let context = getContext(this) as common.UIAbilityContext;
let filesDir = context.filesDir;
@Entry
@Component
struct Page69 {
build() {
Column(){
Button('下载')
.onClick(() =>{
this.down()
})
}
}
down(){
try {
let time:string = Date.now().toString()
let fileName:string = '/dist_' + time +'.mp4'
request.downloadFile(context, {
url: 'http://vjs.zencdn.net/v/oceans.mp4',
filePath: filesDir + fileName //图片下载保存的位置
}).then((downloadTask: request.DownloadTask) => {
downloadTask.on('complete', () => {
console.info('download complete');
let file = fs.openSync(filesDir + fileName, fs.OpenMode.READ_WRITE);
let arrayBuffer = new ArrayBuffer(4096);
let readLen = fs.readSync(file.fd, arrayBuffer);
let buf = buffer.from(arrayBuffer, 0, readLen);
console.info(`The content of file: ${buf.toString()}`);
fs.closeSync(file);
})
let progressCallback = (receivedSize: number, totalSize: number) => {
console.info("download 已经下载大小:" + receivedSize + " 文件总大小:" + totalSize);
if(receivedSize==totalSize){
console.log("download 文件下载成功")
}
};
downloadTask.on('progress', progressCallback);
let failCallback = (err: number) => {
console.error(`download Failed to download the task. Code: ${err}`);
};
downloadTask.on('fail', failCallback);
}).catch((err: BusinessError) => {
console.error(`Invoke downloadTask failed, code is ${err.code}, message is ${err.message}`);
});
} catch (error) {
let err: BusinessError = error as BusinessError;
console.error(`Invoke downloadFile failed, code is ${err.code}, message is ${err.message}`);
}
}
}
更多关于HarmonyOS鸿蒙Next中视频文件拿到地址后如何在沙箱中下载的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中,若已获取视频文件地址并需在沙箱中下载,可按以下步骤操作:
- 创建下载任务:使用
Download
类创建下载任务,设置URL和下载路径。 - 配置沙箱路径:指定下载路径为沙箱内的目录,如
context.getFilesDir()
或context.getCacheDir()
。 - 启动下载:调用
start
方法开始下载,并监听下载进度和状态。 - 处理下载结果:下载完成后,在沙箱中访问并使用视频文件。
示例代码:
DownloadConfig config = new DownloadConfig.Builder(context)
.setUrl(videoUrl)
.setPath(context.getFilesDir().getPath() + "/video.mp4")
.build();
DownloadTask task = new DownloadTask(config);
task.start();
确保权限和路径正确,文件将安全存储在沙箱中。