更新记录
1.0.2(2024-01-26)
优化
1.0.1(2024-01-26)
优化
1.0.0(2024-01-26)
初版上线
查看更多平台兼容性
Vue2 | Vue3 |
---|---|
× | × |
App | 快应用 | 微信小程序 | 支付宝小程序 | 百度小程序 | 字节小程序 | QQ小程序 |
---|---|---|---|---|---|---|
HBuilderX 3.7.0,Android:支持,iOS:不支持,HarmonyNext:不确定 | × | × | × | × | × | × |
钉钉小程序 | 快手小程序 | 飞书小程序 | 京东小程序 |
---|---|---|---|
× | × | × | × |
H5-Safari | Android Browser | 微信浏览器(Android) | QQ浏览器(Android) | Chrome | IE | Edge | Firefox | PC-Safari |
---|---|---|---|---|---|---|---|---|
× | × | × | × | × | × | × | × | × |
xiexie-camera 开发文档
1.在nvue文件中使用
<yy-texture-view :style="{width:width,height:height}" @available="onViewAvailable()" ></yy-texture-view>
2.开放的方法
方法 | 描述 | 参数 |
---|---|---|
requestPermissionCamera | 相机权限申请 | |
getCameras | 获取摄像头列表 | |
getSupportedPreviewSizesByCameraId | 获取支持的相机预览分辨率 | id //摄像头id |
openCamera | 打开摄像头 | id //需要打开的摄像头id |
getSupportedPictureSizesByCameraId | 获取支持的拍照图片分辨率 | id //摄像头id |
closeCamera | 关闭摄像头 | id //当前打开的摄像头id |
takePicture | 拍照 | id //指定拍照的摄像头id width //设置摄像头支持的图片分辨率 height //设置摄像头支持的图片分辨率 base64: true //是否返回base64图片 quailty: 100 //图片质量 path:null //图片存储路径(如设置base64:true,该路径配置不生效) |
demo
<template>
<view>
<yy-texture-view :style="{width:width,height:height}" @available="onViewAvailable()" ></yy-texture-view>
<button @click="_quanxian()">权限申请</button>
<button @click="_getCameras()">获取摄像头列表</button>
<button @click="_getSupportedPreviewSizesByCameraId('1')">获取支持的预览分辨率</button>
<button @click="_getSupportedPictureSizesByCameraId('1')">获取支持的拍照图片分辨率</button>
<button @click="_openCamera('0')">打开摄像头(后摄像头)</button>
<button @click="_openCamera('1')">打开摄像头(前置摄像头)</button>
<button @click="_closeCamera()">关闭已经打开的摄像头</button>
<button @click="_takePicture()">拍照</button>
</view>
</template>
<script>
import {
requestPermissionCamera,
getSupportedPreviewSizesByCameraId,
getSupportedPictureSizesByCameraId,
openCamera,
getCameras,
closeCamera,
takePicture
} from "@/uni_modules/xiexie-camera";
function showConsole(data) {
uni.showModal({
content: JSON.stringify(data)
})
}
export default {
data() {
return {
height: 160,
width: 120,
cameraId: ""
}
},
methods: {
async _quanxian() {
try {
console.log( await requestPermissionCamera());
} catch (e) {
showConsole(e);
}
},
async _openCamera(_id) {
try {
let size = getSupportedPreviewSizesByCameraId(_id);
await openCamera({
id: _id,
previewWidth: size[0].width,
previewHeight: size[0].height
});
this.cameraId = _id;
} catch (e) {
showConsole(e)
}
},
async _closeCamera() {
if (this.cameraId.length > 0) {
try {
await closeCamera(this.cameraId);
} catch (e) {
showConsole(e.message.toString())
}
}
},
async _takePicture() {
if (this.cameraId.length > 0) {
try {
let size = getSupportedPictureSizesByCameraId(this.cameraId);
let path = await takePicture( {
id:this.cameraId,
width: size[0].width,
height: size[0].height,
base64: true,
quailty: 100,
path:null
});
uni.previewImage({
urls: [path],
current: 0
});
//showConsole(path);
} catch (e) {
showConsole(e.message.toString())
}
}
},
_getCameras() {
let sss = getCameras();
showConsole(sss);
},
_getSupportedPreviewSizesByCameraId(id) {
showConsole(getSupportedPreviewSizesByCameraId(id));
},
_getSupportedPictureSizesByCameraId(id) {
showConsole(getSupportedPictureSizesByCameraId(id));
},
onViewAvailable() {
//showConsole("onViewAvailable");
}
}
}
</script>
<style>
</style>