[JS] Inicialización cámaras

eXtreM3

Buenas, estoy teniendo problemas reinicializando una cámara para grabar un stream en html con la API MediaRecorder

https://developer.mozilla.org/en-US/docs/Web/API/MediaRecorder

Mi casuística es que, en móvil, necesito grabar 3 partes:

  • cámara frontal
  • cámara trasera
  • cámara frontal

Mandar los trozos al servidor y allí unirlos. Me funciona perfectamente si sólo hago los 2 primeros pasos (frontal + trasera), pero si intento grabar de nuevo con la delantera, al momento de iniciar el stream se corta automáticamente.

Nota: cada vez que termino una parte, corto el stream y la grabación de la siguiente manera:

stream.getTracks().forEach(track => track.stop())

No sé si el problema está con la reinicialización de un objeto ya instanciado previamente y que deba destruirlo y volverlo a crear, o qué.

A alguien se le ocurre algo?

r2d2rigo

Estoy segurisimo que en ningun momento estas terminando de liberar todos los recursos usados al grabar por la camara frontal la primera vez, y al segundo intento esta fallando porque el navegador detecta que la camara sigue en uso y aborta.

1 2 respuestas
eXtreM3

#2 esto me resulta extraño porque al hacer el stop la cámara apaga la luz. Qué me recomiendas que pueda mirar además de eso?

eXtreM3

#2 ole tu polla, me faltaba hacer esto después del foreach de #1

stream.srcObject = null

Viene aquí y no lo había visto:
https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack/stop

Finally, srcObject is set to null to sever the link to the MediaStream object so it can be released.

GG

3

Usuarios habituales

  • eXtreM3
  • r2d2rigo