首页 > 编程语言 >抖音小程序安卓摄像头和ios前置摄像头不一致得解决方法

抖音小程序安卓摄像头和ios前置摄像头不一致得解决方法

时间:2023-03-03 14:14:43浏览次数:77  
标签:res 安卓 ctx height width ios tt 摄像头

目前安卓测试正常,需要把抖音拍的照片用canvas反转过来

直接上代码

  • html
<camera  device-position="front" flash="off" one rror="error" style="width: 320px;height:190px;" frame-size="large" canvas-id="camera-canvas" >
    </camera>
<!--创建一个 canvas 用来反转头像,canvas不能隐藏,不然会报错误-->
<canvas canvas-id="result-canvas" style="position:fixed;left:100%;height: 190px;width: 320px;" ></canvas>
  <button bindtap="takePhoto" style="border-radius: 50rpx;margin: 40rpx;">拍照  </button>
  • css

启动的时候获取系统信息,记得data里添加一个isapple变量

onLoad(options) {
    tt.getSystemInfo({
      success: (res) => {
        console.log(res)
        if( res.platform=="ios"){
          this.setData({isapple:true})
        }else{
          this.setData({isapple:false})
        }
      },
      fail: (res) => {
      },
    });
  },
 takePhoto() {
    var that = this
    const ctx1 = tt.createCameraContext()

    ctx1.takePhoto({
      quality: 'high',
      success: (res) => {
        console.log(res)
        if (that.data.isapple){
          let tempFilePath = res.tempImagePath
          const width = 320
          const height = 190
          const ctx = tt.createCanvasContext("result-canvas");
          ctx.clearRect(0, 0, width, height);
          ctx.drawImage(tempFilePath, 0, 0, width, height);
          // 对图像进行水平翻转
          ctx.scale(-1, 1);
          ctx.drawImage(tempFilePath, -width, 0, width, height);
          // 保存处理后的图像
          ctx.draw(false, () => {
            tt.canvasToTempFilePath({
              canvasId: 'result-canvas',
              success: (res) => {
                console.log(res)
                tt.navigateTo({
                  url:'xxxx'
                })
                // this.setData({src:res.tempFilePath})
              },
              fail:(res)=>{
                console.log("error",res)
              }
            });
          })

        }else {
          //安卓直接跳转
          tt.navigateTo({
            url:'xxxx'
          })
        }
       
      }
    })
  },

标签:res,安卓,ctx,height,width,ios,tt,摄像头
From: https://www.cnblogs.com/zdoubly/p/17175409.html

相关文章

  • 6.封装axios定义ajax请求函数模块与优化统一处理异常
    安装axios包:【版本:1.3.3】npminstallaxios初级版本api/ajax.js文件内容/*能发送异步ajax请求的函数模块封装axios库函数的返回值是promise对象:.......
  • 解决 ios 调用 wx
    1.不需要使用网页授权域名方式在进入H5公众号后,利用js进行刷新一次,然后打个标记if(window.location.href.indexOf("refresh")===-1){varnewUrl=window.......
  • 坏消息,new Date()方法在IOS系统中存在null值情况
    背景介绍笔者最近在开发小程序,发现在使用newDate()函数在电脑模拟器上倒是没什么影响能很好实现效果,但是在我的Iphone上看到的效果跟预想有出入。图为在电脑微信小程序......
  • iOS Programing
    ARC1.ARC-AutomaticReferenceCounting办公室照明原理2.函数release立即释放,autorelease进入autoreleasepool里3.IMPCaching提高OC函数运行速度4.NSAutorelea......
  • 3.2每日总结——安卓
       今天在做第一阶段的安卓作业。   尝试用安卓连接数据库。这个我感觉和JAVA连接数据库大同小异。   今天只写了一个.java文件,还没有完全搞明白这个......
  • iOS-修改项目名称
    热烈欢迎,请直接点击!!!进入博主AppStore主页,下载使用各个作品!!!注:博主将坚持每月上线一个新app!!!修改前的项目结构: 修改前的项目结构1、打开项目,对项目名进行Rena......
  • 路飞:路飞前端全局css,全局配置文件、配置axios实现前后台交互、安装vue-cookies、安装e
    目录一、路飞前端全局css,全局配置文件1.1整理项目1.2设置全局css1.3配置全局js二、配置axios实现前后台交互三、安装vue-cookies四、安装elementui五、安装bootstrap和j......
  • iPhone能在PC端接打电话了!安卓用户笑而不语:早两年已支持
    本周,微软更新了Windows11上的PhoneLink(手机连接)应用,最新版version1.23012.169.0已经面向三个Insider通道的部分会员推送。幸运的测试会员可以尝鲜Win11蓝牙连接iPhone......
  • 从熟悉的 axios 上手 Postman
    目录get请求post请求避免400状态码一、get请求一般get请求的传参是把参数包含在URL中。浏览器当前的实现是不允许get发送body,但后端应用可以发送,比......
  • iOS应用发布ITMS-90704错误解决
    iOS应用发布ITMS-90704错误解决今天第一次用XCode9GM版打包上传应用。貌似上传的过程更简单了。选择“Automaticallymanagesigning”(自动管理签名)后它就直接显示一个......