Skip to content
Advertisement

HTML canvas not producing image from web cam

I want to capture image every time socket.on(‘takePic’) gets triggered. It works fine for the first time. but when the socket.on(‘takePic’) gets triggered second time,the canvas div is just blank and so the img tag. I have copied the takePicture() function from somewhere and added the setInterval() and localstream variable to stop camera. how can I fix this?

here is my js code.

JavaScript

and this is the html code

JavaScript

Advertisement

Answer

In the click handler of #startbutton your code calls takepicture and then it goes on to remove the video’s src and stop the MediaStream.
So the next time this handler is called, there is no source affected to the video element and thus nothing to be drawn on the canvas anymore.
It’s quire unclear why you clear the video in this click handler, so you might want to remove this part of the code, or to move it to a “stop” button instead, but anyway, you would probably be better calling takepicture from your interval directly rather than relying on the event handler.

User contributions licensed under: CC BY-SA
2 People found this is helpful
Advertisement