95 lines
2.2 KiB
JavaScript
95 lines
2.2 KiB
JavaScript
// mycomponent/yz_upVideo/yz_upVideo.js
|
|
var app = getApp();
|
|
Component({
|
|
/**
|
|
* 组件的属性列表
|
|
*/
|
|
properties: {
|
|
width:{
|
|
value:"100%",
|
|
type:String
|
|
},
|
|
height:{
|
|
value:"100%",
|
|
type:String
|
|
},
|
|
videoUrl:{
|
|
value:"",
|
|
type:String
|
|
},
|
|
limit:{
|
|
value:0,
|
|
type:Number
|
|
}
|
|
},
|
|
|
|
/**
|
|
* 组件的初始数据
|
|
*/
|
|
data: {
|
|
|
|
},
|
|
|
|
/**
|
|
* 组件的方法列表
|
|
*/
|
|
methods: {
|
|
onReadVideo() {
|
|
//iOS中选择上传视频不能超过60秒
|
|
wx.chooseVideo({
|
|
sourceType: ["album", "camera"],
|
|
maxDuration: 60,
|
|
camera: "back",
|
|
success: (res) => {
|
|
this.getDuration(res.duration, res.tempFilePath);
|
|
},
|
|
});
|
|
},
|
|
getDuration(durationData, videoData) {
|
|
let duration = durationData;
|
|
|
|
//获取视频或者音频时长
|
|
this.data.duration = duration;
|
|
console.log("视频时长:", this.data.duration, this.data.limit + 1, this.data.limit && this.data.duration > this.data.limit + 1);
|
|
if (this.data.duration < 1) {
|
|
this.setData({
|
|
videoUrl: null,
|
|
});
|
|
return app.tips("视频时长太短了!");
|
|
} else if (this.data.limit != 0 && this.data.duration > parseInt(this.data.limit) + 1) {
|
|
this.setData({
|
|
videoUrl: null,
|
|
});
|
|
return app.tips(`视频时长不能超过${this.data.limit}秒`);
|
|
} else {
|
|
this.setData({
|
|
videoUrl: videoData,
|
|
});
|
|
this.setSrcAndCaptureImage(videoData);
|
|
return;
|
|
}
|
|
},
|
|
setSrcAndCaptureImage(videoData) {
|
|
this.triggerEvent('beforeUp', videoData);
|
|
this.uploadAudioM(videoData); //上传视频 --------------
|
|
},
|
|
uploadAudioM(videoData) {
|
|
let urlStr = app.getNetAddresss("upload.uploadPic");
|
|
urlStr += "&upload_type=video";
|
|
wx.uploadFile({
|
|
url: urlStr, //仅为示例,非真实的接口地址
|
|
filePath: videoData,
|
|
name: "file",
|
|
formData: {},
|
|
success:(resdata)=> {
|
|
let res = JSON.parse(resdata.data);
|
|
if(res.result!=1){
|
|
this.setData({videoUrl:null});
|
|
}
|
|
this.triggerEvent('successUp', {res});
|
|
},
|
|
});
|
|
},
|
|
}
|
|
});
|