• uniapp h5+ 拍照、录音功能实现


    uniapp h5+ 拍照、录音功能实现

    uniapp 功能实现


    提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档


    前言

    记录一些uniapp的功能实现

    uniapp 扫码、拍照_mtl1994的博客-CSDN博客_uniapp 扫码

    [HTML5+ API Reference](https://www.html5plus.org/doc/h5p.html)


    提示:以下是本篇文章正文内容,下面案例可供参考

    一、拍照

    1.调取摄像头拍摄照片

    代码如下:示例

    // 获取摄像头管理对象 getCamera 参数 index 指定要获取摄像头的索引值,1表示主摄像头,2表示辅摄像头。如果没有设置则使用系统默认主摄像头。
    // 安卓不能默认打开前置摄像头 ios可以
    const cmr = plus.camera.getCamera()
    // 字符串数组,摄像头支持的拍照分辨率
    const res = cmr.supportedImageResolutions[0]
    // 字符串数组,摄像头支持的拍照文件格式
    const fmt = cmr.supportedImageFormats[0]
    // 进行拍照操作
    cmr.captureImage((path) => {
        // this.compressImage(path)
        // path 图片地址
        console.log(path)
    },
    (error) => {
        console.log('Capture image failed: ' + error.message)
    }, {
        resolution: res,
        format: fmt
    })
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    属性类型作用可取值备注
    cropCameraCropStyles配置裁剪图片设置裁剪图片项后,在拍照后会进入裁剪编辑界面,确认后返回裁剪后的图片。
    filenameString拍照或摄像文件保存的路径可设置具体文件名(如"_doc/camera/a.jpg");也可只设置路径,以"/“结尾则表明是路径(如”_doc/camera/")。 如未设置文件名称或设置的文件名冲突则文件名由程序程序自动生成。
    formatString拍照或摄像的文件格式可通过Camera对象的supportedImageFormats或supportedVideoFormats获取,如果设置的参数无效则使用系统默认值。
    indexString拍照或摄像默认使用的摄像头拍照或摄像界面默认使用的摄像头编号,1表示主摄像头,2表示辅摄像头
    videoMaximumDurationNumber视频长度单位为秒(s),小于等于0表示不限定视频长度。 默认值为0(不限定视频长度)。 注意:仅在调用拍摄视频(startVideoCapture)时有效。
    optimizeBoolean是否优化图片自动调整图片的方向,在部分设备上可能出现图片方向不正确的问题,此参数将配置是否自动调整图片方向。 可取值: true - 自动调整图片方向; false - 不调整。 默认值为true。 注意:自动调整图片方向将消耗部分系统资源,可能会导致拍照后回调触发时机延迟,将此值设置为false则可避免延迟问题。
    resolutionString拍照或摄像使用的分辨率可通过Camera对象的supportedImageResolutions或supportedVideoResolutions获取,如果设置的参数无效则使用系统默认值
    popoverPopPosition拍照或摄像界面弹出指示区域对于大屏幕设备如iPad,拍照或摄像界面为弹出窗口,此时可通过此参数设置弹出窗口位置,其为JSON对象,格式如{top:“10px”,left:“10px”,width:“200px”,height:“200px”},默认弹出位置为屏幕居中

    2.管理系统相册,支持从相册中选择图片或视频文件、保存图片或视频文件到相册等功能

    代码如下:示例

    // 从系统相册选择文件(图片或视频) option GalleryOptions
    plus.gallery.pick((res) => {
        console.log(res.files); 
    }, function(e) {
        console.log('取消选择图片');
    }, {
        filter: 'image',
        multiple: true,
        maximum: 3 // 可选数量
    })
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    GalleryOptions

    属性类型作用可取值备注
    animationBoolean是否显示系统相册文件选择界面的动画true/false平台支持

    Android - 2.2+ (不支持) :

    忽略此参数,无动画效果。


    iOS - 4.3+ (支持) :

    支持动画效果。
    confirmTextString确认按钮文字不传入此参数时,使用默认确认按钮文字“确定”。

    注意:HBuilderX3.1.5+版本支持。
    cropGalleryCropStyles配置裁剪图片配置裁剪图片
    editableBoolean是否支持编辑图片true/false注意:HBuilderX3.1.5+版本支持
    filenameString选择文件保存的路径某些系统不能直接使用系统相册的路径,这时需要将选择的文件保存到应用可访问的目录中,可通过此参数设置保存文件的路径。 如果路径中包括文件后缀名称,则表明指定文件路径及名称,否则仅指定文件保存目录,文件名称自动生成。
    filterGalleryFilter相册中选择文件类型过滤器系统相册选择器中可选择的文件类型,可设置为仅选择图片文件(“image”)、视频文件(“video”)或所有文件(“none”),默认值为“image”。
    maximumNumber最多选择的图片数量仅在支持多选时有效,取值范围为1到Infinity,默认值为Infinity,即不限制选择的图片数。 如果设置的值非法则使用默认值Infinity。
    multipleBoolean是否支持多选图片可从系统相册中选择多张图片,选择图片后通过GalleryMultiplePickSuccessCallback回调返回选择的图片。
    onmaxedFunction超过最多选择图片数量事件使用相册多选图片时,可通过maximum属性设置最多选择的图片数量,当用户操作选择的数量大于此时触发此事件。
    permissionAlertBoolean是否检测权限可取值:


    true - 检测到用户没有授权访问相册,将会弹出提示框引导用户授权

    false - 检测到用户没有授权访问相册,触发错误回调,无界面提示

    默认值为false。
    popoverPopPosition相册选择界面弹出指示区域对于大屏幕设备如iPad,相册选择界面为弹出窗口,此时可通过此参数设置弹出窗口位置。 其为JSON对象,格式如{top:“10px”,left:“10px”,width:“200px”,height:“200px”},所有值为像素值,左上坐标相对于容器的位置,默认弹出位置为屏幕居中。
    selectedArray[String已选择的图片路径列表仅在多图片选择时生效,相册选择界面将选中指定的图片路径列表。 如果指定的路径无效,则忽略此项;如果指定的路径数超过maximum属性指定的最大选择数目则超出的图片不选中。

    二、压缩图片

    1.uniapp 压缩图片

    代码如下(示例):

    uni.compressImage({
        src: url,
        quality: 50, // 图片质量
        width: 250, // 宽
        height: 320, // 高
        success: res => {
            console.log('compressImage', res.tempFilePath)
        },
        fail: (err) => {
            console.log(err.errMsg)
        },
        complete: () => {
            // uni.hideLoading();
        }
    })
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    2.h5+压缩图片

    代码如下(示例):

    plus.zip.compressImage(
        {
            src: url, // src: (String 类型 )压缩转换原始图片的路径
            dst: url, // 压缩转换目标图片的路径
            quality: 90, // quality: (Number 类型 )压缩图片的质量.取值范围为1-100
            overwrite: true, // overwrite: (Boolean 类型 )覆盖生成新文件
            width: '250',
            height: '320'
        },
        (susses) => {
            console.log(susses)
            console.log(url)
        },
        (error) => {
            console.log(error)
        }
    )
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    三、录音

    1.uniapp 录音

    uni.getRecorderManager() | uni-app官网


    总结

    注意事项

  • 相关阅读:
    Excel公式:使首字母小写--某列单元格首字母小写
    Qt Widget 自定义TitleBar带阴影窗口
    Java中SpringBoot四大核心组件是什么
    人工智能AI 生成的艺术:从文本到图像
    计算机毕业设计Java自驾游网站系统(源码+系统+mysql数据库+lw文档)
    七日算法先导(七)——字符串
    JVM内存模型:类加载过程
    求求了!这份GitHub 70K+的纯手写RabbitMQ 笔记都给我码住好吗!
    Zookeeper应用场景
    全球名校AI课程库(32)| MIT麻省理工 · 医疗机器学习课程『Machine Learning for Healthcare』
  • 原文地址:https://blog.csdn.net/mtl1994/article/details/126895137