camera 相机

解释:系统相机,使用该组件需通过获取用户授权设置申请授权后方可对用户发起授权申请,可在 swan.authorize 中查看相关错误码信息。camera 组件还提供丰富的 API 来控制相机录像、拍照等,详见 swan.createCameraContext
Web 态说明:Web 态暂不支持 camera 组件。在 Web 态会做打开百度 App 对应小程序页面的降级处理。

属性说明

属性名类型默认值必填说明

device-position

String

back

前置或后置,值为 front、back

flash

String

auto

闪光灯,值为 auto、on、off

bindstop

EventHandle

摄像头在非正常终止时触发,如退出后台等情况

binderror

EventHandle

用户不允许使用摄像头时触发

device-position 有效值

说明
front前置摄像头
back后置摄像头

flash 有效值

说明
auto自动闪光灯
on闪光灯开
off闪光灯关

示例

跳转编辑工具

在开发者工具中打开

在 WEB IDE 中打开

扫码体验

代码示例

百度智能小程序

请使用百度APP扫码

代码示例

  • SWAN
  • JS
  1. <view class="wrap">
  2. <view class="card-area">
  3. <camera device-position="{{device}}"
  4. flash="off"
  5. bindstop="stop"
  6. binderror="error"
  7. style="width: 100%; height: 3rem;">
  8. </camera>
  9. <button type="primary" bind:tap="switchCamera">切换摄像头</button>
  10. <button type="primary" bind:tap="takePhoto">拍照</button>
  11. <button type="primary" bind:tap="startRecord">开始录像</button>
  12. <button type="primary" bind:tap="stopRecord">结束录像</button>
  13. <!-- <navigator url="/pages/camera-scan-code/camera-scan-code">
  14. <button type="primary">扫描一维码</button>
  15. </navigator> -->
  16. <view class="preview">预览</view>
  17. <image s-if="imageSrc" class="image" mode="widthFix" src="{{imageSrc}}"></image>
  18. <video s-if="videoSrc" class="video" src="{{videoSrc}}"></video>
  19. </view>
  20. </view>

设计指南

如未获取相机权限致使相机无法使用,可通过模态弹窗 showModal 进行明确的提示反馈,避免相机黑屏阻断流程,影响用户体验。

camera 相机 - 图2

正确

未获取相机权限时提示用户权限未开启

camera 相机 - 图3

错误

未获取相机权限却无提示,导致用户无措

Bug & Tip

  • Tip:camera 组件是由客户端创建的原生组件,它的层级是最高的,不能通过 z-index 控制层级。可使用 cover-view、cover-image 覆盖在上面(在基础库 3.0.0 之前需要先创建 camera,再通过的方式方s-if="{ {true} }"可在 camera 上创建 NA 组件)。
  • Tip:同一页面只能插入一个 camera 组件。
  • Tip:请勿在 scroll-view、swiper、picker-view、movable-view 中使用 camera 组件。