收藏
回答

使用相机组件,部分华为(荣耀)拍照失败。

问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 小程序 Bug takePhoto/camera 客户端 7.0.4 2.6.6

- 当前 Bug 的表现(可附上截图)

能看到拍照的界面,但是调用 takePhoto 提示错误 operateCamera:fail:camera has not been initialized



只有部分华为(荣耀)手机出现该情况。ios正常。


如果写一个简单的demo或者官方相机组件的demo也没有问题。


- 相关代码

wxml

<view id="wrapper">
  <!-- 相机 -->
  <camera id="camera" device-position="back" flash="off" binderror="error"></camera>
  <cover-view id="customStyle">
    <!-- 点击拍摄 -->
    <cover-view class="takePhoto" bindtap="takePhoto">
      <cover-view class="inside"></cover-view>
    </cover-view>
  </cover-view>
</view>

js

Page({
  data: {
    // 图片路径
    imgUrl: ''
  },
 
  onLoad: function(options) {
    this.ctx = wx.createCameraContext()
  },
  // 拍照
  takePhoto() {
    wx.getSetting({
      success: (res) => {
        if (!res.authSetting['scope.camera']) {
          wx.openSetting({
            success(res) {
              if (res.authSetting['scope.camera']) {
                wx.navigateBack({
                  delete: 1
                })
              }
            }
          })
        } else {
          this.ctx.takePhoto({
            quality: 'high',
            success: (res) => {
              this.setData({
                imgUrl: res.tempImagePath,
                oppenPhoto: true
              })
            },
            fail: (err) => {
              console.log(err)
            }
          })
        }
      }
    })
  }
})


最后一次编辑于  04-24  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

2 个回答

  • sanford🐶~
    sanford🐶~
    04-25

    camera 组件插入后,客户端要先初始化相机。在这之前调用 take photo 等接口会失败,出现上述提示。

    下个版本增加初始化完成事件,在这之后调用就可以了。

    04-25
    赞同
    回复 1
    • ȏ.ȏ
      ȏ.ȏ
      04-25

      原因是因为相机组件高度低于60px 才会触发这个错误。不是到和你说的有没有关系。

      04-25
      回复
  • 是柿子啊
    是柿子啊
    04-23

    代码片段能复现吗?https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

    04-23
    赞同
    回复 3
    • ȏ.ȏ
      ȏ.ȏ
      04-23

      代码片段正常运行,无法复现。

      04-23
      回复
    • ȏ.ȏ
      ȏ.ȏ
      04-24

      原因是因为相机组件高度低于60px 才会触发这个错误,这算一个BUG吗?

      04-24
      回复
    • sanford🐶~
      sanford🐶~
      04-25回复ȏ.ȏ

      高度太小现在也是会有这个bug的。

      04-25
      回复