uniapp的移动端录制视频,压缩,并保存本地
录视频和压缩
videoRecording() {
let that = this;
uni.showLoading({
title: '正在加载...'
})
uni.chooseVideo({
count: 1,
sourceType: ['camera'],
maxDuration: 30,
mediaType: ['video'],
compressed: false,
success: res => {
console.log('chooseVideo.size1', res.size / 1048576)
//视频在60-70-80M之间,压缩后约为6M
uni.compressVideo({
src: res.tempFilePath,
quality: 'high',//视频质量高低,基本上高质量时60m视频压缩后为6做左右,中质量60m压缩为3m左右,低质量60m压缩为2m左右(看不清人了)
bitrate: 2000,
fps: 30,
resolution: 1,
success: (result) => {
that.videoRecordingPath = result.tempFilePath;
console.log('compressVideo.size2', result.size / 1048576)
that.saveFile(result.tempFilePath);
},
fail: () => {
uni.hideLoading();
uni.showToast({
title: '相机调用失败!',
icon: 'none',
duration: 1500
});
}
})
},
fail: (err) => {
uni.showToast({
title: '视频录制失败!',
duration: 2000
});
}
})
},
保存本地
saveFile(filePath) {
uni.saveFile({
tempFilePath: filePath,
success: (res2) => {
uni.hideLoading();
this.getSavedFileInfo(res2.savedFilePath)
},
fail: () => {
uni.hideLoading();
uni.showToast({
title: '视频本地保存失败!',
icon: 'none',
duration: 1500
});
}
})
},
读取本地视频
//读取视频
getSavedFileInfo(filePath) {
let that = this;
uni.getSavedFileInfo({
filePath: filePath,
success: (res) => {
uni.getVideoInfo({
src: filePath,
success: (res) => {
// that.videoImgShow = true;
that.videoList.push(filePath)
},
fail: (err) => {
uni.hideLoading();
uni.showToast({
title: '视频获取失败!',
icon: 'none',
duration: 1500
});
}
})
}
});
},
删除视频
closeHandler() {
// this.addIconShow = false;
let that=this;
uni.removeSavedFile({
filePath: that.videoList[0],
success: (res) => {
that.videoList=[]
},
fail: () => {
uni.hideLoading();
uni.showToast({
title: '视频删除失败!',
icon: 'none',
duration: 1500
});
}
})
}
开源中国博客地址:https://my.oschina.net/u/2998098/blog/1540520

浙公网安备 33010602011771号