Uniapp小程序通过camera组件实现视频拍摄

uni中可以通过调用api的方式去拍摄或者是选择相册的视频,但是在这里我们不采取这种方式,因为调用api的方式,必须跳转,而我们需要在页面中实现,下面看下具体步骤吧...

<camera v-if="!srcUrl && showCamera" device-position="back" flash="auto" binderror="onCameraError" style="width: 100%; height: 400rpx;"></camera>
<video v-if="srcUrl" id="myVideo" :src="srcUrl" controls></video>
<view @click="startShoot">开始
</view>
<view>------------------------------------------------------------------------------------
</view>
<view @click="stopShoot">结束
</view>data() {return {cameraContext: null,showCamera: false,srcUrl: null,timer: null,totalSeconds: 0};
}

 接下来看下,怎么样实现拍摄

onReady() {this.cameraContext = uni.createCameraContext()
}methods: {// 开始拍摄startShoot() {this.totalSeconds = 0this.showCamera = truethis.cameraContext.startRecord({timeoutCallback: () => {console.log(this.totalSeconds,'超出限制时长');},timeout: 300,success: (res) => {this.timer = setInterval(() => {this.totalSeconds++}, 1000)console.log(res, '开始拍摄');},fail: (err) => {this.showCamera = falseuni.showToast({title: '录制视频失败',icon: 'none',mask: true})}})},// 结束拍摄stopShoot() {if(this.timer) clearInterval(this.timer)this.cameraContext.stopRecord({compressed: true,success: (res) => {this.srcUrl = res.tempVideoPath// TODO 获取数据帧console.log(res, '结束拍摄');},fail: (err) => {uni.showToast({title: '录制视频失败',icon: 'none',mask: true})console.log(err, '录制视频失败');},complete: () => {this.showCamera = false}})},
}

到这里已经基本实现了所需的功能,但是还需要处理一下拍摄超时的情况

watch: {totalSeconds: {handler(newVal){if(newVal >= 270) {console.log(newVal, 'newVal');this.stopShoot()}}}
}

感觉对你有帮助的小伙伴可以留个star...

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/224057.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TypeScript 使用泛型 接收后端的统一返回对象

后端往往在返回数据的时候都会有一个固定的格式&#xff0c;来搭配前端的数据接收工作。 比如&#xff1a; // 返回格式 一 {code:200,message:success,data:{name:勿语,age:18} } // 返回格式 二 {code:200,message:success,data:dawkn23n1io2nkfdawbdkbwfa }从返回结果来看…

RFID技术在物流仓储解决方案中的应用

行业现状 当前市场竞争日益激烈&#xff0c;提高生产效率、降低运营成本对企业至关重要。仓库和物流管理在各行业中广泛应用。建立完善的仓库管理流程&#xff0c;提高仓库周转率&#xff0c;减少资金占用&#xff0c;实现资产变现&#xff0c;降低仓库淘汰成本&#xff0c;是…

c++面经总结

C基础语法 C和c的区别 c中new和delete是对内存分配的运算符&#xff0c;取代了c中的malloc和free 标准c中的字符串类取代了标准c函数库头文件中的字符数组处理函数(c中没有字符串类型). 在c中&#xff0c;允许有相同的函数名&#xff0c;不过他们的参数类型不能完全相同&…

【状态机FSM 序列检测 饮料机_2023.12.1】

同步状态机 概念 同步状态机&#xff08;同一脉冲边沿触发&#xff09;&#xff1a;有限个离散状态及某状之间的转移 异步状态机无法综合 分类 Moore状态机 只和状态有关&#xff0c;与输入无关 Mealy状态机 和状态和输入都有关 Mealy型比Moore型少一个状态 结构 由状态寄…

Tomcat从认识安装到详细使用

文章目录 一.什么是Tomact?二.Tomcat的安装1.下载安装包2.一键下载3.打开Tomcat进行测试4.解决Tomcat中文服务器乱码 三.Tomcat基本使用1.启动与关闭Tomcat2.Tomcat部署项目与浏览器访问项目 四.Tomcat操作中的常见问题1.启动Tomcat后&#xff0c;启动窗口一闪而过&#xff1f…

排序 | 冒泡插入希尔选择堆快排归并计数排序

排序 | 冒泡插入希尔选择堆快排归并计数排序 文章目录 排序 | 冒泡插入希尔选择堆快排归并计数排序冒泡排序插入排序希尔排序选择排序堆排序快速排序--交换排序三数取中快速排序hoare版本快速排序挖坑法快速排序前后指针法 快速排序--非递归实现归并排序归并排序非递归实现非比…

【AutoDL】使用云服务器跑深度学习代码

一、AutoDL租用服务器 1.选用服务器 1.算力市场 租用服务器&#xff0c;选择自己心仪的服务器 2.镜像 可以选择一些基础的镜像&#xff0c;社区镜像里是git上有的环境。 3.上传文件 在文件存储中&#xff0c;选择上传的区&#xff0c;在右边点击上传&#xff0c;选择自己的文…

Dockerfile创建镜像LNMP+WordPress

目录 实验部署 nginx 配置mysql 配置php 实验部署 INMPwordpress nginx 172.111.0.10 docker-nginx mysql 172.111.0.20 docker-mysql php 172.111.0.30 docker-php nginx 关闭防火墙和安全机制在opt目录创建nginx MySQL php目录 cd nginx mysql php vim Dockerfile#声…

VueRouter的编程式导航和导航守卫

编程式导航 Vue Router 提供了编程式导航的方法&#xff0c;这意味着你可以在 JavaScript 中编写代码来导航到不同的路由。这通常在处理用户交互或其他异步操作时很有用。 要实现编程式导航&#xff0c;你可以使用 this.$router.push() 方法。这个方法接受一个路由对象或者一…

Arduino中读取SD卡文本文件数据

1、硬件 2、代码 #include <SD.h> #include <SPI.h> // needed for Arduino versions later than 0018const long _1000msTime 1000; // 1000 milli seconds unsigned long _1000msLastTime;File myFile; int date; int Lastdate; String strDate;//…

什么是分布式光伏发电系统?哪些地点适合建设?

随着全球环保意识的提高&#xff0c;光伏发电以发电效率高、环境污染小和能源来源丰富等优势脱颖而出。光伏发电是指利用太阳能辐射直接转变成电能的发电方式&#xff0c;能够有效帮助减少二氧化碳。 分布式光伏发电特指在用户场地附近建设&#xff0c;运行方式以用户侧自发自…

YOLOv5独家原创改进:SPPF自研创新 | SPPF与感知大内核卷积UniRepLK结合,大kernel+非膨胀卷积提升感受野

💡💡💡本文自研创新改进:SPPF与感知大内核卷积UniRepLK结合,大kernel+非膨胀卷积,使SPPF增加大kernel,提升感受野,最终提升检测精度 收录 YOLOv5原创自研 https://blog.csdn.net/m0_63774211/category_12511931.html 💡💡💡全网独家首发创新(原创),…

垃圾回收 (GC) 在 .NET Core 中是如何工作的?(二)

接上一篇文章垃圾回收 (GC) 在 .NET Core 中是如何工作的&#xff1f;-CSDN博客 GC 会分配堆段&#xff0c;其中每个段都是一系列连续的内存。 置于堆中的对象归类为 3 个代系之一&#xff1a;0、1 或 2。 代系可确定 GC 尝试在应用不再引用的托管对象上释放内存的频率。 编号…

【亚马逊云科技】使用Vscode Amazon-Q完成GUI界面粉笔脚本开发

本篇文章授权活动官方亚马逊云科技文章转发、改写权&#xff0c;包括不限于在 亚马逊云科技开发者社区, 知乎&#xff0c;自媒体平台&#xff0c;第三方开发者媒体等亚马逊云科技官方渠道 前言 亚马逊云科技-Q&#xff0c;可以快速获得紧迫问题的相关答案&#xff0c;解决问题…

如何选择适合自己的API:实用指南

导语&#xff1a;在当今的软件开发世界中&#xff0c;API&#xff08;应用程序接口&#xff09;已成为数据传输和功能调用的重要桥梁。然而&#xff0c;面对众多的API&#xff0c;如何选择适合自己的API成为了一个挑战。本文将为你提供一份实用指南&#xff0c;帮助你选择适合自…

Linux常用长命令总结

1、批量杀死进程 程序意外终止&#xff0c;但进程还在占用资源&#xff0c;如何批量杀死多进程&#xff1f; 可以先使用命令 ps aux 查看所有被启动进程的相同部分&#xff0c;使用grep过滤&#xff0c;然后运行语句&#xff1a; ps -ef | grep train.py | awk {print $2} |…

生物信息学分析领域领先的特制语言环境NGLess(Next Generation Less)介绍、安装配置和详细使用方法

介绍 NGLess&#xff08;Next Generation Less&#xff09;是一种用于生物信息学分析的领先的领域特定语言&#xff08;DSL&#xff09;。它旨在简化和加速NGS&#xff08;Next Generation Sequencing&#xff09;数据的分析过程。NGLess具有清晰的语法和功能&#xff0c;使用户…

使用React将JSON渲染为组件

使用React将JSON 渲染为组件 实现思路 要将JSON Schema渲染为React组件&#xff0c;我们可以按照以下步骤进行实现&#xff1a; 得到JSON . 构建自定义组件 。 嵌套渲染功能实现 。 示例代码 import React, { useState, useEffect } from "react";interface Sc…

机器翻译:跨越语言边界的智能大使

导言 机器翻译作为人工智能领域的瑰宝&#xff0c;正在以前所未有的速度和精度&#xff0c;为全球沟通拓展新的可能性。本文将深入研究机器翻译的技术原理、应用场景以及对语言交流未来的影响。 1. 简介 机器翻译是一项致力于通过计算机自动将一种语言的文本翻译成另一种语言的…

[Unity]关于Unity接入Appsflyer并且打点支付

首先需要去官方下载Appsflyer的UnityPackage 链接在这afPackage 然后导入 导入完成 引入此段代码 using AppsFlyerSDK; using System.Collections; using System.Collections.Generic; using UnityEngine;public class AppflysManager : MonoBehaviour {public static App…