Estoy construyendo un PWA que se enfoca en gran medida en la captura de imágenes y necesito acceder a la cámara del dispositivo en alta resolución.
Intenté usar navigator.mediaDevices.getUserMedia con una variedad de restricciones, sin embargo, parece que solo se pueden cumplir restricciones muy bajas (por ejemplo, mi cámara Android puede capturar algo con una resolución de alrededor de 2000x3000+ px, pero la transmisión solo admite hasta ~320/ 480p). También ignora la relación de aspecto y hace que la transmisión vertical a pantalla completa realmente escale y estire la imagen.
Con <input type="file" accept="image/*" capture="environment"/> obtengo resultados mucho mejores ya que abre la aplicación de cámara nativa. Con eso puedo obtener una imagen de muy alta resolución de 2000x3000+ px. Sin embargo, con eso no puedo personalizar ni procesar la transmisión (es decir, agregar una superposición, intentar detectar códigos QR, etc.).
¿Hay algo que me estoy perdiendo? Necesitaría obtener una transmisión de cámara con una resolución que al menos coincida con la resolución de pantalla completa del dispositivo, sin embargo, no puedo encontrar cómo hacer cumplir eso (usar min en las restricciones ancho y alto genera un error que indica que no se pudieron cumplir las restricciones) ).
¿Quizás hay una biblioteca que envuelve la funcionalidad getUserMedia con una interfaz simple para proporcionar un flujo de cámara de pantalla completa?