更新记录
1.0.1(2023-01-16)
初版发布
平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:6.0 - 12.0 | armeabi-v7a:支持,arm64-v8a:支持,x86:支持 | × |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
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