尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

微信小程序(uniapp)拍照和拍视频

微信小程序(uniapp)拍照和拍视频
📅 发布时间:2026/7/15 15:03:59

前言

微信小程序想要实现拍照和拍小视频功能,就得使用camera组件以及配合一些api来完成。

提示:以下是本篇文章正文内容,下面案例可供参考

HTML:

<camerav-if="isAuth"style="height:60%;"class="camera"device-position="back"flash="off"></camera><!-- 拍照按钮 --><viewclass="image_btn"v-if="show"@click="takePhoto"><image:src="imageIcon + 'takephoto_btn.png'"class="image"mode=""></image></view><!-- 拍小视频按钮 --><viewclass="time"v-if="showTime"><textclass="point">·</text><text>00:</text><textv-if="timingSum < 10">0</text>{{ timingSum }}</text></view><viewclass="image_btn bottom_btn"@longpress="startShootVideo"@touchstart="handleTouchStart"@touchend="handleTouchEnd"><image:src="imageIcon + 'takeVideo_btn.png'"class="image"mode=""></image></view>

JS:

// 先校验用户是否授权使用摄像头,麦克风onLoad(){const_this=this;uni.getSetting({success:res=>{if(res.authSetting['scope.camera']){// 用户已经授权_this.isAuth=true;}else{// 用户还没有授权,向用户发起授权请求uni.authorize({scope:'scope.camera',success(){// 用户同意授权_this.isAuth=true;},fail(){// 用户不同意授权_this.openSetting('camera').then(res=>{_this.isAuth=true;});}});}},fail:res=>{console.log('获取用户授权信息失败');}});uni.getSetting({success:res=>{if(res.authSetting['scope.record']){// 用户已经授权_this.isAuth=true;}else{// 用户还没有授权,向用户发起授权请求uni.authorize({scope:'scope.record',success(){// 用户同意授权_this.isAuth=true;},fail(){// 用户不同意授权_this.openSetting('record').then(res=>{_this.isAuth=true;});}});}},fail:res=>{console.log('获取用户授权信息失败');}});},methods:{// 拍照takePhoto(){if(this.sum==3){// 只能拍3张照片showToast({title:'只能添加3张照片',icon:'none'});return;}constctx=uni.createCameraContext();ctx.takePhoto({quality:'normal',// 成像质量 high-高质量 normal-普通质量 low-低质量 original-原图success:res=>{uni.showLoading({title:'图片处理中'});// res.tempImagePath 拍摄的照片地址this.arr[this.sum].url=res.tempImagePath;this.sum++;uni.hideLoading();}});}}
// 开始录像startShootVideo(){uni.showLoading({title:'正在处理中'});this.ctx.startRecord({success:res=>{this.videoShow=true;this.showTime=true;uni.hideLoading();// 计时this.timing=setInterval(()=>{this.timingSum++;},1000);},fail(){uni.hideLoading();}});},// 结束录像stopShootVideo(e){if(this.stopContienr){if(this.timing){clearInterval(this.timing);}this.videoShow=false;uni.showLoading({title:'正在处理中'});this.ctx.stopRecord({compressed:true,success:res=>{this.timingSum=0;this.showTime=false;uni.saveFile({tempFilePath:res.tempVideoPath,success:res=>{uni.hideLoading();// res.savedFilePath 视频地址uni.setStorageSync('videoUrl',JSON.stringify(res.savedFilePath));}});},fail(){uni.hideLoading();}});}},//touch start 手指触摸开始handleTouchStart(e){this.startTime=e.timeStamp;},//touch end 手指触摸结束handleTouchEnd(e){this.endTouch=false;if(this.timing){clearInterval(this.timing);}this.videoShow=false;this.endTime=e.timeStamp;//判断是点击还是长按,长按 触发结束录像if(this.endTime-this.startTime>350){if(this.timingSum<5){this.ctx.stopRecord({success:res=>{showToast({title:'录制时间过短!',icon:'none'});},fail(){}});this.timingSum=0;}else{this.stopShootVideo();}}}

注意:首页确保授权了相关权限,其次拍的小视频最好限制时长,过长会有性能问题。调试以真机为准。

相关新闻

  • 从玩家到开发者:贡献代码到Aleph One开源项目的完整流程
  • 免费解锁Wand高级功能:5分钟完成游戏修改器终极增强指南
  • 程序员做菜指南小程序计时器功能使用教程:精准掌握烹饪时间

最新新闻

  • 终极VR视频转换指南:如何用VR-Reversal解锁360度自由视角观看体验
  • 知乎数据采集引擎zhihu-spider:多线程架构与MySQL存储的Python爬虫实践
  • CANN/asc-devkit元素级算术示例
  • 如何使用RSpotify访问音频特征数据:打造数据驱动的音乐分析工具 [特殊字符]
  • java项目开发 -- 学习记录(一)
  • openGraphScraper 测试驱动开发:编写高质量集成测试的完整教程

日新闻

  • 告别启动盘残留:用Diskpart彻底清除U盘EFI分区与恢复完整空间
  • 2026 年宜春诚信的塑料缠绕膜厂家哪个好,缠绕膜背后的秘密:你不知道的成本陷阱 - 领域鉴赏官
  • Arch ECS 入门指南:10分钟掌握C#高性能数据驱动架构

周新闻

  • IX9104 PCIe5.0 高速交换芯片@ACP#完整规格 + 应用场景总结
  • Unity游戏集成Coze智能体:实现NPC智能对话与知识库联动
  • SAP EPIC 建行回单查询:从标准类CL_EPIC_EXAMPLE_CN_CCB_GHTD到Z类的5处关键修改

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号