微信小程序的 camera 组件用于调起设备的摄像头并进行拍照或录制视频。以下是一些基本的 camera 组件的用法:

拍照
<camera bindtakephoto="takePhoto"></camera>
Page({
  takePhoto: function () {
    const ctx = wx.createCameraContext();
    ctx.takePhoto({
      quality: 'high',
      success: (res) => {
        console.log('拍照成功', res.tempImagePath);
      },
      fail: (error) => {
        console.error('拍照失败', error);
      },
    });
  },
});

录制视频
<camera bindstart="startRecord" bindstop="stopRecord"></camera>
Page({
  data: {
    isRecording: false,
  },

  startRecord: function () {
    const ctx = wx.createCameraContext();
    ctx.startRecord({
      success: () => {
        this.setData({ isRecording: true });
      },
      fail: (error) => {
        console.error('开始录制失败', error);
      },
    });
  },

  stopRecord: function () {
    const ctx = wx.createCameraContext();
    ctx.stopRecord({
      success: (res) => {
        console.log('录制成功', res.tempVideoPath);
        this.setData({ isRecording: false });
      },
      fail: (error) => {
        console.error('录制失败', error);
      },
    });
  },
});

在这个示例中,camera 组件通过 bindtakephoto 绑定了 takePhoto 函数,用于处理拍照事件。同样,通过 bindstart 和 bindstop 绑定了 startRecord 和 stopRecord 函数,用于处理开始录制和结束录制事件。

需要注意的是,使用 camera 组件时,需要在 app.json 中的 "permission" 字段中声明相应的权限,比如 "camera" 权限。
{
  "permission": {
    "scope.userLocation": {
      "desc": "你的位置信息将用于小程序位置接口的效果展示"
    },
    "scope.address": {
      "desc": "你的地址信息将用于小程序位置接口的效果展示"
    },
    "scope.camera": {
      "desc": "你的摄像头将用于小程序摄像头接口的效果展示"
    }
  }
}

以上是基本的 camera 组件的使用示例。根据实际需求,你可以调整参数以满足不同的拍摄和录制场景。


转载请注明出处:http://www.zyzy.cn/article/detail/820/微信小程序