![](/img/trans.png)
[英]Ionic Cordova AngularJs : Why Facebook share works in Ionic serve (browser) but not pop-up display in Android Device?
[英]HTML5 Canvas element not appear in compiled Android Ionic but works in browser 'Ionic Serve'
我在 Ionic 4 项目中使用 face-api.js 来检测来自相机 stream 的人脸。 但是,检测 canvas 仅适用于浏览器ionic serve
,并且在我将其编译为 Android apk 后不起作用。 我可以看到我的所有模型都加载到 Android 调试控制台中,但没有一个<canvas>
附加到我的 html 中。 我哪里做错了?
页.html
<ion-row>
<ion-col class="ion-text-center" size="12">
<div #videoContainer></div>
<div>
<canvas id="canvas" width="640" height="480"></canvas>
</div>
<ion-col>
页面.ts
videoLoad() {
this.elementRef.nativeElement.querySelector('video')
.addEventListener('play', async () => {
const labeledFaceDescriptors = await this.loadLabeledImages()
const faceMatcher = new faceapi.FaceMatcher(labeledFaceDescriptors, 0.6)
const displaySize = { width: this.video.width, height: this.video.height }
const canvas = <HTMLCanvasElement>document.getElementById('canvas')
faceapi.matchDimensions(canvas, displaySize)
await faceapi.nets.tinyFaceDetector.loadFromUri('https://www.test.com/models');
await faceapi.nets.faceLandmark68Net.loadFromUri('https://www.test.com/models');
await faceapi.nets.faceRecognitionNet.loadFromUri('https://www.test.com/models');
await faceapi.nets.faceExpressionNet.loadFromUri('https://www.test.com/models');
await faceapi.nets.ssdMobilenetv1.loadFromUri('https://www.test.com/models');
setInterval(async () => {
const detections = await faceapi.detectAllFaces(this.video, new faceapi.TinyFaceDetectorOptions()).withFaceLandmarks().withFaceDescriptors().withFaceExpressions()
const resizedDetections = faceapi.resizeResults(detections, displaySize)
const results = resizedDetections.map(d => faceMatcher.findBestMatch(d.descriptor))
const ctx: CanvasRenderingContext2D = canvas.getContext("2d")
ctx.clearRect(0, 0, canvas.width, canvas.height)
results.forEach((result, i) => {
const box = resizedDetections[i].detection.box
const drawBox = new faceapi.draw.DrawBox(box, { label: result.toString() })
if (result.label == 'unknown') {
} else {
console.log(result.label);
}
drawBox.draw(canvas)
})
}, 800)
})
}
我面临着类似的问题......我在 canvas 上动态绘制图像,但使用 --prod 后它没有正确显示......
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.