Camera 扩展
在布局中显示相机以拍照和录制视频。程序控制拍照、自动拍照实现,而无需点击系统相机拍照按钮。
下载链接
Camera.aia - 示例项目
功能概述
Camera 扩展允许在应用的布局中显示相机预览,支持拍照和录制视频功能。扩展提供了多种相机控制选项,包括前后摄像头切换、缩放控制等功能。
截图
1:1 宽高比

3:4 宽高比

9:16 宽高比

全屏宽高比

相机权限设置


函数
- StartCamera 启动相机(面向,宽度,高度)
- 启动相机并在布局中显示相机预览。
- 面向:文本类型,指定相机朝向(”front”前置/”rear”后置)
- 宽度:数字类型,相机预览宽度
- 高度:数字类型,相机预览高度
- StopCamera 停止相机()
- 停止相机并释放资源。
- SwitchCamera 切换相机()
- 在前置和后置相机之间切换。
- TakePicture 拍照()
- 拍照并自动保存。
- SetZoomLevel 设置缩放级别(级别)
- 设置相机的缩放级别。
- 级别:数字类型,缩放级别(1.0为原始大小)
- StartRecording 开始录制()
- 开始录制视频。
- StopRecording 停止录制()
- 停止录制视频并保存。
事件
- AfterPicture 拍照后(图片路径)
- 拍照完成后触发。
- 图片路径:字符串类型,保存的图片文件路径
- AfterRecording 录制后(视频路径)
- 录制完成后触发。
- 视频路径:字符串类型,保存的视频文件路径
属性
- IsRecording 正在录制 {:.boolean .read-only}
- 返回当前是否正在录制视频。
- IsCameraActive 相机已激活 {:.boolean .read-only}
- 返回相机是否已启动并激活。
- CameraFacing 相机朝向 {:.text .read-only}
- 返回当前相机的朝向(”front” 或 “rear”)。
- ZoomLevel 缩放级别 {:.number .read-only}
- 返回当前的缩放级别。
使用示例
基本相机启动
当 屏幕1.初始化
调用 Camera1.启动相机 "rear" 300 400
拍照功能
当 拍照按钮.被点击
调用 Camera1.拍照
录制视频功能
当 开始录制按钮.被点击
调用 Camera1.开始录制
设置 录制状态文本.文本 为 "录制中..."
设置 录制状态文本.颜色 为 红色
当 停止录制按钮.被点击
调用 Camera1.停止录制
设置 录制状态文本.文本 为 "已停止"
设置 录制状态文本.颜色 为 绿色
相机控制
当 切换相机按钮.被点击
调用 Camera1.切换相机
如果 Camera1.相机朝向 = "front" 则
设置 当前相机文本.文本 为 "前置相机"
否则
设置 当前相机文本.文本 为 "后置相机"
缩放控制
当 放大按钮.被点击
设置 当前缩放 为 Camera1.缩放级别
如果 当前缩放 < 5 则
调用 Camera1.设置缩放级别 当前缩放 + 1
显示通知 "缩放级别: " & (当前缩放 + 1)
否则
显示通知 "已达到最大缩放级别"
处理拍照结果
当 Camera1.拍照后 图片路径
设置 图片路径标签.文本 = "照片已保存: " & 图片路径
设置 图片组件.图片 = 图片路径
显示通知 "拍照成功!"
处理录制结果
当 Camera1.录制后 视频路径
设置 视频路径标签.文本 = "视频已保存: " & 视频路径
显示通知 "录制完成!"
// 可选:播放录制的视频
设置 视频播放器.来源 = 视频路径
调用 视频播放器.开始
注意事项
- 权限要求:首次使用时需要授予相机和存储权限
- 宽高比:支持 1:1、3:4、9:16 和全屏等多种宽高比
- 资源管理:使用完毕后建议调用 StopCamera 释放资源
- 存储位置:拍摄的照片和录制的视频会自动保存到设备存储
- 设备兼容性:在不同设备上相机功能可能略有差异
版权信息
- 原作者:Joejsanz
- 原始网址:https://community.appinventor.mit.edu/t/camera-displays-the-camera-to-take-photos-and-record-videos-in-an-arrangement/154998
- 发布日期:2025年9月4日
文档最后更新:2025年11月17日
扫码添加客服咨询