需要用到的几个方法:
// 从本地缓存中同步获取指定 key 对应的内容。
uni.getStorageSync(KEY)
// 下载文件资源到本地,客户端直接发起一个 HTTP GET 请求,返回文件的本地临时路径。
uni.downloadFile(OBJECT)
// 保存视频到本地
uni.saveFile(OBJECT)
// 将 data 存储在本地缓存中指定的 key 中,会覆盖掉原来该 key 对应的内容,这是一个同步接口。
uni.setStorageSync(KEY,DATA)
首先定义一个变量:获取本地缓存数据,看本地视频是存在。
获取已下载视频目录中的视频列表,删除无关视频。
const videoData = uni.getStorageSync('videoData')
// 获取本地视频列表
uni.getSavedFileList({
success: function (res) {
let fileList = res.fileList
console.log(fileList);
let needArr = videoData.map(item => item.videoAddress)
fileList.forEach((item, index) => {
if(needArr.includes(item.filePath)){
item.text = "需要这个视频"
}else{
// 删除视频列表中无关视频
uni.removeSavedFile({
filePath: item.filePath,
complete: function (res) {
console.log(res);
}
});
}
});
console.log(fileList)
}
});
写个条件判断:如果存在直接将视频地址插入页面进行播放,如果不存在则进行下载视频-保存视频-缓存本地链接。
const _this = this;
// 判断是否有缓存
if(videoData){
console.log('我是视频-有缓存')
_this.videoSrc = videoData
}else{
console.log('我是视频-没有有缓存')
_this.videoSrc = url // 我是在线链接
// 下载视频
_this.downFile(videoUrlYi,'videoData');
}
// 下载视频
downFile(url,name){
const _this = this;
uni.downloadFile({
url: url,
success: (res) => {
if (res.statusCode === 200) {
console.log('下载成功');
console.log(res.tempFilePath)
//保存视频到本地
uni.saveFile({
tempFilePath: res.tempFilePath,
success: function (res) {
console.log('保存成功');
var savedFilePath = res.savedFilePath;
console.log(savedFilePath)
_this.videoSrc = savedFilePath
console.log('当前连接'+_this.videoSrc)
uni.setStorageSync(name, savedFilePath);
}
});
}
}
});
}
小编推荐:程序员网址导航
作为一名码农,随着平时工作的需要,这里收集了国内外很多优秀网站,这其中包括在线工具、在线运行、免费接口、在线资源、在线学习、技术论坛、技术博客等等,满足一般程序员日常需求。
12 个评论
要回复文章请先登录或注册
1***@qq.com
1***@qq.com
samshum22
samshum22
samshum22
unicorn_up
machi的奶茶
machi的奶茶
1***@qq.com
最菜的韭菜