热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

微信小程序发布视频带封面图标题

视频标题:

视频标题:上传视频封面{sourcell}}" src='{{sourcel}}' />
-->上传视频封面{poster}}" src="{{poster}}" mode="aspectFill" bindtap="chooseVideo"/> -->{poster}}" src="{{poster}}" mode="aspectFill"/> -->{clickFlag}}">上传视频 -->确认上传上传视频

/* pages/video/video.wxss */
.main{width:100%;
}
.playerInfo{}
.video{/* border :2rpx solid #cccccc; */
}
.videoContent{display: flex;align-items: center;justify-content: center;width: 200rpx;height: 146rpx;background: #F5F5F5;position: relative;
}
/*播放小图标*/
.playImg{position: absolute;top: 36%;left:46%;width:64rpx;height: 64rpx;
}
.footerbtn{display: flex;margin-top: 20rpx;
}
.button{width:40%;
}
.videoUrlResult{width: 100%;margin-top: 20rpx;
}
.videoUrlResult .title{ font-size: 28rpx;font-weight: bold;color: red;margin-left: 20rpx;
}/* ------------ */.userflex{display: flex;justify-content: flex-start;align-items: center;margin: 70rpx 0;
}
.mylistname{
font-size: 28rpx;
font-weight: 700;
}
.weui-input{
margin-left: 40rpx;
}
.shipin{width: 200rpx;
height: 146rpx;
background: #F5F5F5;
border-radius: 6rpx;
position: relative;
}
.shangtext{font-size: 32rpx;
font-weight: 700;
margin-bottom: 30rpx;
}
.tiajiaimg{position: absolute;top: 50%;left: 50%;transform: translate(-50%,-50%);width: 34rpx;height: 34rpx;}
.playImgl{width: 100%;height: 100%;
}
.baocun{margin-top: 140rpx;
width: 100%;
height: 86rpx;
background: #7CAAFF;
border-radius: 43px;
text-align: center;
line-height: 86rpx;
font-size: 32rpx;
color: #FFF;
}
.tiajiaimgm{width: 100%;height: 100%;
}


var app=getApp()
Page({/*** 页面的初始数据*/data: {thumbTempFilePath:"",name:"",video_upload:"",// -------------videoUrl:"",poster:"",clickFlag:true, //防重复点击 source:"../../images/tiajial.png",lte:true},name(e) {console.log("name",e.detail.value);this.setData({name: e.detail.value})},uploadimg: function () {var that = this;wx.chooseImage({ //从本地相册选择图片或使用相机拍照count: 1, // 默认9sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有success: function (res) {var tempFilePaths = res.tempFilePathswx.uploadFile({url: app.globalData.baseUrl + "/Video/video_upload_img",filePath: tempFilePaths[0],name: 'file',formData: {file: tempFilePaths[0],},success: function (res) {var jso = JSON.parse(res.data)console.log("单图", jso.data);that.setData({source: jso.data,lte: false})}})}})},/*** 生命周期函数--监听页面加载*/onLoad: function (options) {},/*** 生命周期函数--监听页面显示*/onShow: function () {},/*** 拍摄或选择视频并上传服务器*/chooseVideo: function () {console.log("chooseVideo")this.setData({clickFlag: false})let that = this//1.拍摄视频或从手机相册中选择视频wx.chooseMedia({sourceType: ['album', 'camera'], // album 从相册选视频,camera 使用相机拍摄// maxDuration: 60, // 拍摄视频最长拍摄时间,单位秒。最长支持60秒camera: 'back',//默认拉起的是前置或者后置摄像头,默认backcompressed: true,//是否压缩所选择的视频文件success: function(res){console.log("说裸图",res)var thumbnail = res.tempFiles[0]let tempFilePath = thumbnail.tempFilePath//选择定视频的临时文件路径(本地路径)let thumbTempFilePath=thumbnail.thumbTempFilePathlet duration = res.duration //选定视频的时间长度let size = parseFloat(res.size/1024/1024).toFixed(1) //选定视频的数据量大小// let height = res.height //返回选定视频的高度// let width = res.width //返回选中视频的宽度 that.setData({thumbTempFilePath:thumbTempFilePath})that.data.duration = durationif(parseFloat(size) > 100){that.setData({clickFlag: false,duration: ''})let beyOndSize= parseFloat(size) - 100wx.showToast({title: '上传的视频大小超限,超出'+beyondSize+'MB,请重新上传',//image: '',//自定义图标的本地路径,image的优先级高于iconicon:'none'})}else{//2.本地视频资源上传到服务器that.uploadFile(tempFilePath)}},fail: function() {// fail},complete: function() {// complete}})},/*** 将本地资源上传到服务器* */uploadFile:function(tempFilePath){let that = thislet third_session = wx.getStorageSync('third_session')wx.showLoading({title: '上传进度:0%',mask: true //是否显示透明蒙层,防止触摸穿透})const uploadTask = wx.uploadFile({url: app.globalData.baseUrl + "/Video/video_upload",//开发者服务器地址filePath:tempFilePath,//要上传文件资源的路径(本地路径)name:'file',//文件对应key,开发者在服务端可以通过这个 key 获取文件的二进制内容// header: {}, // 设置请求的 headerformData: {third_session: third_session,// workerid :wx.getStorageSync('workeridl')}, // HTTP 请求中其他额外的 form datasuccess: function(res){console.log("uploadFile",res)// successlet data = JSON.parse(res.data)wx.hideLoading()// if(data.returnCode == 200){that.setData({video_upload:data.data,videoUrl: data.videoUrl,poster: data.imgUrl,duration: that.data.duration,// clickFlag:true})// wx.showToast({// title: '上传成功',// icon: 'success'// })// }else{// that.setData({// videoUrl: '',// poster: '',// duration: '',// clickFlag:true// })// wx.showToast({// title: '上传失败',// icon: 'none'// })// }},fail: function() {// failwx.hideLoading()that.setData({videoUrl: '',poster: '',duration: '',clickFlag:true})wx.showToast({title: '上传失败',icon: 'none'})}})//监听上传进度变化事件uploadTask.onProgressUpdate((res) =>{wx.showLoading({title: ''+res.progress+'%',mask: true //是否显示透明蒙层,防止触摸穿透})console.log("上传进度",res.progress)console.log("已经上传的数据长度,单位 Bytes:",res.totalBytesSent)console.log("预期需要上传的数据总长度,单位 Bytes:",res.totalBytesExpectedToSend)})},//保存数据库saveVideo(){console.log(this.data.video_upload);//调用服务器保存视频信息接口wx.request({url: app.globalData.baseUrl + "/Video/setVideo",data: {workerid:wx.getStorageSync('workeridl') ,title :this.data.name ,imageurl:this.data.source ,videourl: this.data.video_upload},method: 'post',success: function (res) {console.log("dasxzv",res);wx.showToast({title: '上传成功',icon: 'success'})},fail: function() {wx.showToast({title: '上传失败',icon: 'none'})}});}
})

{"navigationBarTitleText": "发布视频","usingComponents": {}
}


推荐阅读
  • 在PHP中如何正确调用JavaScript变量及定义PHP变量的方法详解 ... [详细]
  • 本文介绍了如何使用 Node.js 和 Express(4.x 及以上版本)构建高效的文件上传功能。通过引入 `multer` 中间件,可以轻松实现文件上传。首先,需要通过 `npm install multer` 安装该中间件。接着,在 Express 应用中配置 `multer`,以处理多部分表单数据。本文详细讲解了 `multer` 的基本用法和高级配置,帮助开发者快速搭建稳定可靠的文件上传服务。 ... [详细]
  • 微信公众号推送模板40036问题
    返回码错误码描述说明40001invalidcredential不合法的调用凭证40002invalidgrant_type不合法的grant_type40003invalidop ... [详细]
  • 在JavaWeb开发中,文件上传是一个常见的需求。无论是通过表单还是其他方式上传文件,都必须使用POST请求。前端部分通常采用HTML表单来实现文件选择和提交功能。后端则利用Apache Commons FileUpload库来处理上传的文件,该库提供了强大的文件解析和存储能力,能够高效地处理各种文件类型。此外,为了提高系统的安全性和稳定性,还需要对上传文件的大小、格式等进行严格的校验和限制。 ... [详细]
  • 技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统
    技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统 ... [详细]
  • 本文介绍了如何利用Struts1框架构建一个简易的四则运算计算器。通过采用DispatchAction来处理不同类型的计算请求,并使用动态Form来优化开发流程,确保代码的简洁性和可维护性。同时,系统提供了用户友好的错误提示,以增强用户体验。 ... [详细]
  • 基于 Vue 和 Element UI 实现的简洁登录界面设计
    本文介绍了一种利用 Vue.js 和 Element UI 框架构建的简洁登录界面设计。该设计不仅注重用户体验,还确保了界面的美观性和易用性。通过合理的布局和组件配置,实现了高效、响应式的登录功能,适用于多种前端应用场景。 ... [详细]
  • 本文探讨了使用JavaScript在不同页面间传递参数的技术方法。具体而言,从a.html页面跳转至b.html时,如何携带参数并使b.html替代当前页面显示,而非新开窗口。文中详细介绍了实现这一功能的代码及注释,帮助开发者更好地理解和应用该技术。 ... [详细]
  • 如果应用程序经常播放密集、急促而又短暂的音效(如游戏音效)那么使用MediaPlayer显得有些不太适合了。因为MediaPlayer存在如下缺点:1)延时时间较长,且资源占用率高 ... [详细]
  • oracle c3p0 dword 60,web_day10 dbcp c3p0 dbutils
    createdatabasemydbcharactersetutf8;alertdatabasemydbcharactersetutf8;1.自定义连接池为了不去经常创建连接和释放 ... [详细]
  • 开发日志:高效图片压缩与上传技术解析 ... [详细]
  • 2.2 组件间父子通信机制详解
    2.2 组件间父子通信机制详解 ... [详细]
  • ### 优化后的摘要本学习指南旨在帮助读者全面掌握 Bootstrap 前端框架的核心知识点与实战技巧。内容涵盖基础入门、核心功能和高级应用。第一章通过一个简单的“Hello World”示例,介绍 Bootstrap 的基本用法和快速上手方法。第二章深入探讨 Bootstrap 与 JSP 集成的细节,揭示两者结合的优势和应用场景。第三章则进一步讲解 Bootstrap 的高级特性,如响应式设计和组件定制,为开发者提供全方位的技术支持。 ... [详细]
  • 本文详细介绍了一种利用 ESP8266 01S 模块构建 Web 服务器的成功实践方案。通过具体的代码示例和详细的步骤说明,帮助读者快速掌握该模块的使用方法。在疫情期间,作者重新审视并研究了这一未被充分利用的模块,最终成功实现了 Web 服务器的功能。本文不仅提供了完整的代码实现,还涵盖了调试过程中遇到的常见问题及其解决方法,为初学者提供了宝贵的参考。 ... [详细]
  • QT框架中事件循环机制及事件分发类详解
    在QT框架中,QCoreApplication类作为事件循环的核心组件,为应用程序提供了基础的事件处理机制。该类继承自QObject,负责管理和调度各种事件,确保程序能够响应用户操作和其他系统事件。通过事件循环,QCoreApplication实现了高效的事件分发和处理,使得应用程序能够保持流畅的运行状态。此外,QCoreApplication还提供了多种方法和信号槽机制,方便开发者进行事件的定制和扩展。 ... [详细]
author-avatar
詹姵慧3482
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有