taro-hooks
Version:
为 Taro 而设计的 Hooks Library
31 lines • 928 B
JavaScript
import { createCameraContext } from '@tarojs/taro';
import { useRef } from '@taro-hooks/core';
import usePromise from '../usePromise';
function useCamera() {
var cameraContext = useRef(createCameraContext());
var zoomAsync = usePromise(cameraContext.current.setZoom);
var zoom = function zoom(zoomNumber) {
return zoomAsync({
zoom: zoomNumber
});
};
var start = usePromise(cameraContext.current.startRecord);
var stopAsync = usePromise(cameraContext.current.stopRecord);
var stop = function stop(compressed) {
return stopAsync({
compressed: compressed
});
};
var take = usePromise(cameraContext.current.takePhoto);
var listener = function listener(callback) {
return cameraContext.current.onCameraFrame(callback);
};
return [cameraContext.current, {
zoom: zoom,
start: start,
stop: stop,
take: take,
listener: listener
}];
}
export default useCamera;