Zxing库问题在iphone 13上配置缩放x0.5



作为react web应用程序的一部分,我们使用Zxing库来执行条形码和qr码扫描。然而,我们在iphone 13上遇到了一个问题,它默认将变焦设置为x1,这导致当我们靠近要扫描的元素时,图像变得模糊。我们想将缩放配置为x0.5(在原生iphone应用程序中是可能的),但我找不到与ios兼容的解决方案。如果你有什么主意,我洗耳恭听。提前谢谢。

if(!navigator?.mediaDevices?.getUserMedia){
onError && onError('Cannot stream camera')
return
}
let userMediaStream: MediaStream
navigator.mediaDevices.getUserMedia({ audio: false, video: { facingMode: 'environment'}})
.then(stream => {
userMediaStream = stream
if(!videoRef?.current){
onError && onError('video ref missing')
return
}
videoRef.current.srcObject = stream
})

return () => {
if(userMediaStream) {
userMediaStream.getTracks().forEach(t => t.stop())
}
}

我已经试过列出支持的约束:

const constraintList = new Array();
const supportedConstraints = navigator.mediaDevices.getSupportedConstraints();          

for (const constraint of Object.keys(supportedConstraints)) {                 

constraintList.push(constraint);
}
console.log(constraintList);

但是我没有得到允许我修改缩放或焦点的元素:['aspectRatio', 'deviceId', ' echocancel ', 'facingMode', 'frameRate', 'groupId', 'height', 'sampleRate', ' sampleSize', 'volume', 'width']

<代码>

您可以使用react-zxing来获取设备的枚举列表:

const { ref } = useZxing({
deviceId,
onResult(result) {
// ...
},
onError: (err: Error) => {
console.error(err);
},
});

这将返回一个设备列表,每个设备都有一个标签("前置摄像头,广角摄像头等)和deviceId属性,然后你可以将其传递给CC_3(或任何其他qr阅读器库):

PP_5