更新记录
1.0.38(2023-12-29)
修复没有打开摄像头后,一开始就点击关闭和隐藏的闪退问题
1.0.37(2023-12-27)
修复打开摄像头隐藏后,如果直接隐藏中关闭,再打开会闪退的问题。
1.0.36(2023-12-22)
无
查看更多平台兼容性
Vue2 | Vue3 |
---|---|
√ | √ |
App | 快应用 | 微信小程序 | 支付宝小程序 | 百度小程序 | 字节小程序 | QQ小程序 |
---|---|---|---|---|---|---|
HBuilderX 3.6.8,Android:6.0,iOS:不支持 | × | × | × | × | × | × |
钉钉小程序 | 快手小程序 | 飞书小程序 | 京东小程序 |
---|---|---|---|
× | × | × | × |
H5-Safari | Android Browser | 微信浏览器(Android) | QQ浏览器(Android) | Chrome | IE | Edge | Firefox | PC-Safari |
---|---|---|---|---|---|---|---|---|
× | × | × | × | × | × | × | × | × |
安卓原生自定义前后摄像头拍照,可同时设置前后摄像头预览,照片返回为base64
照片的大小不是设置的预览页面显示的大小,返回的图片宽高统一为设备宽高的大小。 需要打包自定调试包测试
调用插件 :
import {
openCamera,
getCameraBase64,
closedCamera,
hideCameraH,
hideCameraQ,
} from "@/uni_modules/mushan-camera";
页面设置:
<button @click="switchAndCapture">打开前后摄像头</button>
<button @click="openCameraH">打开后视频</button>
<button @click="openCameraQ">打开前视频</button>
<button @click="UTSgetCameraBase64(0)">后摄像头拍照</button>
<button @click="UTSgetCameraBase64(1)">前摄像头拍照</button>
<button @click="closedCamera(0)">关闭后摄像头</button>
<button @click="closedCamera(1)">关闭前摄像头</button>
<button @click="hideCameraH(0)">隐藏后摄像头</button>
<button @click="hideCameraH(1)">显示后摄像头</button>
<button @click="hideCameraQ(0)">隐藏前摄像头</button>
<button @click="hideCameraQ(1)">显示前摄像头</button>
<image :src="img" mode="aspectFill"></image>
js调用插件:
import{
openCamera,
getCameraBase64,
closedCamera,
hideCameraH,
hideCameraQ,
} from "@/uni_modules/mushan-camera";
async function switchAndCapture(){
await openCameraH()
await openCameraQ()
}
//前摄像头
async function openCameraH(){
return new Promise((resolve, reject) => {
let parame = {
cameraIds:'0', //摄像头选择,0为后,1为前
someQualitys:10, //拍照后的图片质量通常都是1 - 100
widthViews:0.5, //预览显示的宽,按设备整体宽度百分比1为手机的宽。0.5为一半
heightViews:0.5, //预览显示的高,按设备整体高度百分比1为手机的宽。0.5为一半
topMargins:0.5, //与顶部的距离,1为整个手机的高距离,0.5为一半
leftMargins:0, //与左边的距离,1为整个手机的宽距离,0.5为一半
}
openCamera(parame.cameraIds,parame.someQualitys,parame.widthViews,parame.heightViews,parame.topMargins,parame.leftMargins,res=>{
resolve()
})
})
}
//后摄像头
async function openCameraQ(){
return new Promise((resolve, reject) => {
let parame = {
cameraIds:'1',
someQualitys:80,
widthViews:0.5,
heightViews:0.5,
topMargins:0.5,
leftMargins:0,
}
openCamera(parame.cameraIds,parame.someQualitys,parame.widthViews,parame.heightViews,parame.topMargins,parame.leftMargins,res=>{
resolve()
})
})
}
let img = ref('');
async function UTSgetCameraBase64(num){
getCameraBase64(num,(res)=>{
img.value = filterBase64(`data:image/jpeg;base64,${res}`);
console.log(img.value)
})
}
function filterBase64(codeImages){
return codeImages.replace(/[\r\n]/g, "");
}