【一步步开发AI运动APP】四、使用相机组件抽帧

简介: 本文介绍了如何使用`ai-camera`组件开发AI运动APP,助力开发者深耕AI运动领域。`ai-camera`是专为AI运动场景设计的相机组件,支持多平台,提供更强的抽帧处理能力和API。文章详细讲解了获取相机上下文、执行抽帧操作以及将帧保存到相册的功能实现,并附有代码示例。无论是AI运动APP还是其他场景,该组件都能满足预览、拍照、抽帧等需求。下篇将聚焦人体识别检测,敬请期待!

之前我们为您分享了【一步步开发AI运动小程序】开发系列博文,通过该系列博文,很多开发者开发出了很多精美的AI健身、线上运动赛事、AI学生体测、美体、康复锻炼等应用场景的AI运动小程序;为了帮助开发者继续深耕AI运动领域市场,今天开始我们将为您分享新系列【一步步开发AI运动APP】的博文,带您开发性能更强、体验更好的AI运动APP。

一、ai-camera组件介绍

使用过uni开发过APP的开发者,应该了解在uni-appuni-app x的APP模式下,不像小程序模式下有原生Camera组件可以使用操控相机,需要引入第三方插件或自行实现相机的预览、拍照、抽帧、录像等能力。
为了进一步减轻AI运动APP开发者的工作量,降低AI运动能力集成难度,在UNI-APP版的「AI运动识别」插件中,我们专门为AI运动场景量身打造了相机操控组件ai-camera
组件同时支持Android和iOS多平台;配置和操控API借鉴了小程序的风格,以减少开发者的学习使用成本;ai-camera相较于小程序的Camera更贴合AI运动场景,有些更强的操控能力、更高的抽帧处理效果、更多的高频应用API。
当然其他非AI运动APP开发者,也可以用来平替APP模式无相机组件的问题,完全能满足其它场景的预览、拍照、抽帧需求,以满足相机多端发布的需求。

二、获取相机上下文

在对相机进行抽帧、拍照等操作前,需要获得相机组件的操控上下文,而且成功获取上下的前提是,页面中有ai-camera组件,且建议在on-ready触发时获取,代码如下:

<template>
    <yz-ai-camera id="camera" class="camera" :device="cameraDevice" resolution="medium" @on-camera-ready="onCameraReady" />
</template>
<script>
//相机调用前须申请相应权限
import {
    Frame, ExtractFrameOptions, getCameraContext} from "@/uni_modules/yz-ai-sport";
export default {
    
    data(){
    
        cameraDevice: 'back'
    },
    methods:{
    
        onCameraReady() {
    
            const context = getCameraContext();
            let cameraDesc = context.getCurrentCamera();
            console.log(cameraDesc);
        }
    }
}
</script>

三、执行相机抽帧

在获得了相机操控上下文后,就可以对相机进行抽帧操作了,代码如下:

...
<script>
export default {
    
    ....
    methods:{
    
        onExtract() {
    
            const context = getCameraContext();
            context.startExtractFrame({
    
                onFrame(frame){
    
                    console.log(frame.width,frame.height,frame);
                }
            });

            //5s后停止抽帧
            setTimeout(()=>{
    
                context.stopExtractFrame();
            },5000);
        }
    }
}
</script>

四、将帧保存到相册

在相机抽帧中,经常会遇到需要将抽取的帧将转换成jpg等格式图像进行保存,插件专门为类似场景提供解析并保存帧图像至相册中的能力,代码如下:

...
<script>
export default {
    
    ....
    methods:{
    
        onExtract() {
    
            const context = getCameraContext();
            context.startExtractFrame({
    
                onFrame(frame){
    
                    //不建议每帧都保存,抽帧率都非常高,容易在相册中留下非常多的文件,浪费存储空
                    let file = context.saveFrameToAlbum(frame);
                    console.log(file);
                }
            });
        }
    }
}
</script>

好了,相机组件的基本应用就为您介绍到这,更多的相机能力,请参考插件API文档和Demo。

下篇我们将为您介绍人体识别检测,敬请期待...

115969-20250319202253060-79047414.png

相关文章
|
8月前
|
缓存 移动开发 JavaScript
如何优化UniApp开发的App的启动速度?
如何优化UniApp开发的App的启动速度?
1363 139
|
8月前
|
移动开发 JavaScript weex
UniApp开发的App在启动速度方面有哪些优势和劣势?
UniApp开发的App在启动速度方面有哪些优势和劣势?
600 137
|
8月前
|
人工智能 安全 API
20 万奖金池就位!Higress AI 网关开发挑战赛参赛指南
本次赛事共设三大赛题方向,参赛者可以任选一个方向参赛。本文是对每个赛题方向的参赛指南。
642 64
|
8月前
|
人工智能 运维 安全
加速智能体开发:从 Serverless 运行时到 Serverless AI 运行时
在云计算与人工智能深度融合的背景下,Serverless 技术作为云原生架构的集大成者,正加速向 AI 原生架构演进。阿里云函数计算(FC)率先提出并实践“Serverless AI 运行时”概念,通过技术创新与生态联动,为智能体(Agent)开发提供高效、安全、低成本的基础设施支持。本文从技术演进路径、核心能力及未来展望三方面解析 Serverless AI 的突破性价值。
|
8月前
|
存储 人工智能 前端开发
Qoder + ADB Supabase :5分钟GET超火AI手办生图APP
本文介绍如何利用Qoder、阿里云ADB Supabase和通义千问图像编辑模型,快速搭建AI手办生图Flutter应用。无需传统后端,实现从前端生成到数据存储、AI服务集成的全链路敏捷开发,展现Vibe Coding的高效实践。
Qoder + ADB Supabase :5分钟GET超火AI手办生图APP
|
8月前
|
人工智能 运维 Java
Spring AI Alibaba Admin 开源!以数据为中心的 Agent 开发平台
Spring AI Alibaba Admin 正式发布!一站式实现 Prompt 管理、动态热更新、评测集构建、自动化评估与全链路可观测,助力企业高效构建可信赖的 AI Agent 应用。开源共建,现已上线!
7894 110
|
8月前
|
数据采集 JavaScript 前端开发
开发比分App?你缺的不是程序员
开发体育比分App,关键不在代码,而在懂体育、懂数据、懂用户。明确定位、理清需求、选好数据源,再找专业的产品、数据与技术人才协同,才能少走弯路。程序员最后入场,效率最高。
363 154
|
人工智能 自然语言处理 前端开发
产品经理也能“开发”需求?淘宝信息流从需求到上线的AI端到端实践
淘宝推荐信息流业务,常年被“需求多、技术栈杂、协作慢”困扰,需求上线周期动辄一周。WaterFlow——一套 AI 驱动的端到端开发新实践,让部分需求两天内上线,甚至产品经理也能“自产自销”需求。短短数月,已落地 30+ 需求、自动生成 5.4 万行代码,大幅提升研发效率。接下来,我们将揭秘它是如何落地并改变协作模式的。
1242 37
产品经理也能“开发”需求?淘宝信息流从需求到上线的AI端到端实践
|
8月前
|
移动开发 前端开发 Android开发
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
1440 12
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡

热门文章

最新文章