更新记录
1.0.0(2024-12-28)
水印相机
初始版本
平台兼容性
Vue2 | Vue3 |
---|---|
√ | √ |
App | 快应用 | 微信小程序 | 支付宝小程序 | 百度小程序 | 字节小程序 | QQ小程序 |
---|---|---|---|---|---|---|
HBuilderX 4.36,Android:7.0,iOS:不确定,HarmonyNext:不确定 | × | × | × | × | × | × |
钉钉小程序 | 快手小程序 | 飞书小程序 | 京东小程序 | 鸿蒙元服务 |
---|---|---|---|---|
× | × | × | × | × |
H5-Safari | Android Browser | 微信浏览器(Android) | QQ浏览器(Android) | Chrome | IE | Edge | Firefox | PC-Safari |
---|---|---|---|---|---|---|---|---|
× | × | × | × | × | × | × | × | × |
水印相机
开发环境
环境:HbuilderX
版本:4.36
提供方法
- config(fileSavePath) fileSavePath参数类型为字符串,传入媒体保存路径,配置成功后通过回调反馈。
-
start(params) params为JSON格式,其中contents为水印展示内容字符串数组,note为备注,备注信息在水印相机中可编辑,调用成功后通过回调返回,示例如下
let contents = []; contents.push('拍摄日期:2024年**月**日'); contents.push('拍摄地址:山东省*********'); contents.push('拍摄人:***'); //调用拍照 cameraModule.start({ contents: contents, note: '传入的备注内容', })
- update(params),动态更新水印相机展示的水印内容,params参数与startCamera方法的参数一致
- setListener(litener),设置回调,用于接收水印相机的相关反馈信息,以便进行后续处理,具体反馈信息参见回调说明。
- setTitle(title),设置水印标题,此方法需要在config方法调用后在其回调中进行设置,否则无效。
回调介绍
callback(objJSON) objJSON为JSON字符串,可以在JavaScript中通过JSON.parse(objJSON)转换为JSON格式
{
tag:'', //回调标识 start|stop|video|photo|config
value:'', //回调传输值
isSuccess:true|false //执行是否成功,默认为true
}
说明:如果tag为config,则value传递的是媒体资源保存的路径,如果tag为video或photo,则value传递的是保存的媒体文件名称(不包含路径),如果tag为start或stop,则value无返回值。
功能清单
- 具备拍照或录像能力
- 具备展示水印及水印实时动态更新能力
- 水印位置的编辑能力(左上角、左下角、右上角、右下角)
- 水印标签中备注内容的动态编辑能力
- 前置/后置 摄像头切换功能
- 水印大标题的设置能力
调用相关
引用
import { MossCameraUts, MossCameraCallbackParam, MossWatermarkDataParam } from '../../uni_modules/wCheng-Camera';
创建
let cameraModule
初始化
需要在uni-app的onLoad方法中初始化
onLoad(() => { mossCamera = new MossCameraUts(); /* 初始化水印相机模块 */ mossCamera.setListener(mossCameraCallback); /* 挂接回调 */ /* 调用配置方法 设置存储路径 */ mossGetPath('media', { success: (filePath) => { message.value = filePath; mossCamera.config(filePath) }, fail: (code, message) => { console.log(code,message); } }) })
构建回调方法
const mossCameraCallback = (res : MossCameraCallbackParam) => { if (res.tag === 'start') { startUpdateWatermark(); /*开始更新水印,方法自行定义和使用*/ } if (res.tag === 'stop') { stopUpdateWatermark(); /*停止更新水印,方法自行定义和使用*/ } if (res.tag === 'config') { /* 设置标题 */ mossCamera.setTitle('工程名称') } console.log(res.tag,res.value,res.isSuccess); }
开启水印相机
let contents : Array<String> = []; let strDatetime = moment(new Date()).format("YYYY-MM-DD HH:mm:ss"); contents.push('拍摄日期:${strDatetime}'); contents.push('地理位置:---,----'); contents.push('拍摄地址:--------'); contents.push('拍摄人:----'); let params : MossWatermarkDataParam = { contents: contents, note: '备注信息,可在水印相机中直接修改', } mossCamera.start(params)