Parpadea la luz de la cámara web!

9

Este desafío está inspirado en Blink the CAPS LOCK de zeppelin .

La mayoría de las cámaras web cuentan con una pequeña luz LED integrada, que indica si la cámara web está en uso, como lo controla un mecanismo de hardware para evitar el espionaje.

Tu tarea es parpadear:

  1. Encenderlo.
  2. Espere 0.5 (± 0.1) segundos.
  3. Apágalo de nuevo.
  4. Espere 0.5 (± 0.1) segundos;
  5. Repetir.

Incluya un GIF o video de la cámara web parpadeando, si es posible. Si una respuesta no tiene el GIF, agregue un GIF del programa en ejecución.

Reglas

  • Si a su idioma le falta un sleepcomando de un segundo , su programa puede usar un retraso de 1 segundo en su lugar, con una penalización de un byte adicional. (reemplazando .5con 1)
    • Si su idioma, por alguna razón, no es compatible .5, su penalización es de 2 bytes. (reemplazando 0.5con 1)
  • Su programa debe repetir a menos que el usuario lo detenga.
  • Su LED puede encenderse o apagarse; lo que sea más beneficioso se puede usar.
  • Si su LED tiene un retraso de apagado, entonces no es necesario tenerlo en cuenta, a menos que desee proporcionar una versión adicional.

Puntuación

Este es el , lo que significa que la respuesta más corta en bytes gana.

haykam
fuente
2
El LED de la cámara web de mi computadora portátil tarda un tiempo (aproximadamente 0,3 segundos, parece) en apagarse después de que el dispositivo de video deja de ser accedido. ¿Se debe tener esto en cuenta?
Pomo de la puerta
@Doorknob No, pero puede proporcionar una versión que lo tenga en cuenta si lo desea.
haykam
1
La penalización solo debe ser de 1 byte, ya que solo puede usar.5
Elronnd
@Elronnd Iba a agregar eso, pero lo olvidé.
haykam

Respuestas:

8

MATLAB, 40 bytes

while 1;w=webcam;pause(.5);delete(w);end

Crea un whilebucle infinito y cada vez que webcampasa por el bucle, se inicializa un objeto (enciende la cámara web), el script se detiene durante 0,5 segundos pausey luego webcamse elimina el objeto (apaga la cámara web).

ingrese la descripción de la imagen aquí

Suever
fuente
2
El retraso entre cada parpadeo es más de 0.5
haykam
2
@haykam Las instrucciones (y comentarios) indican que las inexactitudes debidas al hardware son aceptables a menos que las esté leyendo mal.
Suever
Ok ... ¿te importaría quizás agregar un golf adicional que lo haga para que parezca 0.5s?
haykam
44
@haykam Es imposible, es una limitación de MATLAB (y tal vez el hardware en sí). Ya estoy mostrando que se apaga y se vuelve a encender lo más rápido posible.
Suever
El último pitido fue bueno
haykam
7

Python, 82 bytes

(Utiliza OpenCV para acceder a la cámara web).

import cv2,time
s=time.sleep
while 1:w=cv2.VideoCapture(0);s(.5);w.release();s(.5)

ingrese la descripción de la imagen aquí

pzp
fuente
4

Javascript (ES6), 100 bytes

(f=_=>navigator.getUserMedia({video:1},x=>s(_=>x.getTracks()[0].stop(s(f,500)),500),s=setTimeout))()

Durante mis pruebas, vi un retraso entre la activación de la cámara y el encendido del LED, por lo que el tiempo puede no ser perfecto. También debe ejecutarse en una página https: //.

nderscore
fuente
@haykam gracias por la edición, pero por alguna razón este script no funciona dentro del sandbox del iframe del fragmento
nderscore
OK entonces. No comenzaré una guerra de edición. ;)
haykam
0

Scratch en scratchblocks2, 61 bytes

when gf clicked
turn video[on v
wait(.5)secs
turn video[off v

Perdón por el video absolutamente terrible. Mi LED tiene un ligero retraso de encendido, es muy débil y el GIF tiene 18 MB.

gif

WK
fuente
@ JonathanFrech He echado un vistazo a algunas respuestas de Scratch y todas parecen usar scratchblocks2. En segundo lugar, ¿estaba haciendo lo que requería el desafío?
WK
"Si es posible, incluya un GIF o un video de la cámara web parpadeando. Si una respuesta no tiene el GIF, agregue un GIF del programa en ejecución". Incluí todo lo demás por encima.
WK
Tienes razón. Rara vez veo una respuesta de Scratch, pero parece que su respuesta satisface tanto el consenso actual de conteo de bytes como las reglas específicas de desafío. Perdón por mi crítica parcialmente desinformada.
Jonathan Frech el