更新记录

1.0.1(2023-01-16)

初版发布


平台兼容性

Android Android CPU类型 iOS
适用版本区间:6.0 - 12.0 armeabi-v7a:支持,arm64-v8a:支持,x86:支持 ×

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios

注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择


使用说明

一款媒体相关的组件,主要功能点如下:

1、仿微信点击拍照、长按拍摄的功能、可切换摄像头、开启闪光灯、录视频可返回视频缩略图;

2、仿微信媒体选择,可同时选择图片、视频、支持自定义各主题、文字、按钮等,支持多选、单选,支持选择视频时返回缩略图;

3、单独的获取视频缩略图功能。

具体使用方法

demo地址:https://gitee.com/476743842/j-media-module.git

导入插件

// 导入组件
let JMedia = uni.requireNativePlugin('J-MediaModule')

拍照以及录视频

JMedia.openCamera({
    // 相机类型:system-系统相机(只能录视频或者拍照),normal-普通相机(可点击拍照、长按录视频)
    // 默认值:normal
    cameraType: 'normal',
    // 媒体类型,all-拍照、录视频,video-仅录视频,photo-仅拍照
    // 默认值:all
    mediaType: 'all',
    // 视频最大录制时长
    // 默认值:15
    maxDuration: 15,
    // 是否启动闪光灯按钮
    // 默认值:true
    flashLightEnable: true,
    // 缓存文件输出路径,没有特殊要求可以不填
    // 建议使用uniapp或plus相关方法获取指定
    // fileCachePath: '/storage/emulated/0/789/',
    // 是否需要裁剪图片,注:只有图片才生效
    // 默认值:false
    needCrop: false,
    // 裁剪大小,只有needCrop为true时生效
    // 默认值:1,1,200,200
    // cropSize: {
    //  aspectX: 1,         // 左上角x坐标
    //  aspectY: 1,         // 左上角y坐标
    //  outputX: 200,       // 右下角x坐标(可理解为宽)
    //  outputY: 200        // 右下角y坐标(可理解为高)
    // },
    // 录制视频后是否返回第一帧图片,
    // 注:如果设置为true返回值是一个json字符串,需要自己JSON.parse一下
    // 默认值:false
    firstPhoto: false
}, res => {
    // res.flag 为true,代表成功,false为失败
    // res.msg 成功失败的msg
    // res.data 返回的数据
    // let dataValue = JSON.parse(res.data)
    // this.resultValue += `视频第一帧文件地址:${dataValue.firstPhotoUrl}\n`
    //      +  `视频文件地址:${dataValue.videoUrl}\n`
})

获取视频缩略图

JMedia.getVideoThumbUrl({
    // 需要获取的本地视频的路径,支持网络地址
    videoPath: '/storage/emulated/0/DCIM/Camera/TG-2022-12-29-0326343121672255618838.mp4'
}, res => {
    // res.flag 为true,代表成功,false为失败
    // res.msg 成功失败的msg
    // res.data 返回的数据
    // this.resultImage = 'file://' + res.data
})

媒体选择

JMedia.selectMedia({
    // 可选择的媒体类型,all-图片/视频,video-仅选择视频,photo-仅选择图片
    // 默认值:all
    mediaType: 'all',
    // 是否需要预览,默认值:true
    hasPreview: true,
    // 是否需要裁剪图片,注:只有图片才生效,默认值:false
    needCrop: false,
    // 裁剪大小,只有needCrop为true时生效,默认值:1,1,200,200
    // cropSize: {
    //  aspectX: 1,         // 左上角x坐标
    //  aspectY: 1,         // 左上角y坐标
    //  outputX: 200,       // 右下角x坐标(可理解为宽)
    //  outputY: 200        // 右下角y坐标(可理解为高)
    // },
    // 是否多选,默认值:true
    multiSelect: true,
    // 最大选择数量,默认值:9
    maxNum: 9,
    // 最小选择数量,默认值:0
    minNum: 1,
    // 状态栏颜色,默认值:#333333
    statusBarColor: '#333333',
    // 状态栏Mode,就是状态栏文字的颜色,默认值:drak
    statusBarMode: 'drak',
    // 顶部导航栏文字,默认值:选择
    titleText: '选择',
    // 顶部导航栏文字颜色,默认值:#ffffff
    titleTextColor: '#ffffff',
    // 顶部导航栏背景颜色,默认值:#333333
    titleBgColor: '#333333',
    // 是否显示右侧按钮,默认值:true
    rightTitleVisibility: true,
    // 导航栏右侧文字颜色,默认值:#ffffff
    rightTitleTextColor: '#ffffff',
    // 导航栏右侧文字内容,默认值:所有文件
    rigntTitleText: '所有文件',
    // 确定按钮文字,默认值:完成
    sureBtnText: '完成',
    // 确定按钮文字颜色,默认值:#ffffff
    sureBtnTextColor: '#ffffff',
    // 确定按钮背景颜色,默认值:#007aff
    sureBtnBgColor: '#007aff',
    // 确认按钮所在局域的背景颜色,默认值:#333333
    sureBtnLayoutBgColor: '#333333',
    // 每行展示数量,默认值:3
    listSpanCount: 3,
    // 是否需要快速加载视频缩略图,默认值:true
    quickLoadVideoThumb: true,
    // 缓存文件输出路径,没有特殊要求可以不填
    // 建议使用uniapp或plus相关方法获取指定
    // fileCachePath: '/storage/emulated/0/789/',
    // 选择视频后是否返回第一帧图片,
    // 注:如果设置为true返回值是一个json字符串,需要自己JSON.parse一下
    // 默认值:false
    firstPhoto: false
}, res => {
    // res.flag 为true,代表成功,false为失败
    // res.msg 成功失败的msg
    // res.data 返回的数据
    // this.resultValue += JSON.stringify(res) + '\n'
})

联系作者

QQ:476743842

隐私、权限声明

1. 本插件需要申请的系统权限列表:

android 摄相头权限CAMERA 麦克风权限RECORD_AUDIO 存储权限WRITE_EXTERNAL_STORAGE READ_EXTERNAL_STORAGE ios 摄像头权限NSCameraUsageDescription 麦克风权限 NSMicrophoneUsageDescription

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

插件没有任何广告

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问