分享自己已经解决问题的方法
<template>
<view>
<button @click="chooseVideo">选择视频</button>
<video v-if="videoPath" :src="videoPath" controls="controls"></video>
</view>
</template>
<script>
export default {
data() {
return {
videoPath: '', // 视频路径
serverAddress:''//服务器地址
};
},
methods: {
chooseVideo() {
uni.chooseVideo({
sourceType: ['album', 'camera'], // 从相册或相机选择
camera: 'back', // 默认使用后置摄像头,可以指定front为前置
maxDuration: 60, // 最大视频录制时长(秒)
success: (res) => {
//这样就可以直接在本地进行播放
this.videoPath = res.tempFilePath;
// 这里可以添加上传视频到服务器的代码
uni.uploadFile({
url: '', // 服务器上传接口
filePath: this.videoPath,
name: 'file', // 这里根据服务器要求的字段来定义
success: (uploadRes) => {
console.log('upload success:', uploadRes);
//在这个地方需要将你服务器的地址与上传成功返回的字段进行拼接保存之后再想去给后端
//发送请求只需要把这个地址给过去就好了
this.serverAddress = "服务器地址"+ uploadRes.data.data
},
fail: (uploadErr) => {
console.error('upload fail:', uploadErr);
}
});
},
fail: (err) => {
console.error('choose video fail:', err);
}
});
}
}
};
</script>