安装
这里我演示
IOS
安装使用教程
npm install react-native-vision-camera
cd project && pod install
使用
<Camera
style={{ flex: 1 }}
ref={cameraRef}
device={device}
isActive={isActive}
video={video}
photo={photo}
photoHdr={format?.supportsPhotoHdr}
format={format}
videoHdr={format?.supportsVideoHdr}
/>
实例化 Camera
const cameraRef = useRef(null)
开始拍照
// 开始拍照
const handleTaskPhoto = async () => {
const result = await cameraRef.current.takePhoto()
const blob = (await getBlob(result.path)) as any
const base64Resault = await blobToBase64(blob)
onTaskPhoto && onTaskPhoto(base64Resault as string)
}
将拍照的文件转成base64
文件,因为我们很多地方需要用到base64
转base64
const getBlob = useCallback((fileUri: string) => {
return fetch(fileUri).then(
(response) => {
return response.blob()
},
(error) => {
console.log(`Error in converting image to blob - ${error}`)
}
)
}, [])
const blobToBase64 = useCallback((blob: Blob) => {
try {
const reader = new FileReader()
reader.readAsDataURL(blob)
return new Promise((resolve) => {
reader.onloadend = () => {
resolve(reader.result)
}
})
} catch (err) {
console.log(`Error in converting blob to base64 - ${err}`)
throw err
}
}, [])