Pisque a luz da webcam!


9

Esse desafio é inspirado no Blink the CAPS LOCK do zeppelin .

A maioria das webcams possui uma pequena luz LED integrada, indicando se a webcam está em uso, controlada por um mecanismo de hardware para evitar espionagem.

Sua tarefa é piscar:

  1. Ligue-o.
  2. Aguarde 0,5 (± 0,1) segundos.
  3. Desligue-o novamente.
  4. Aguarde 0,5 (± 0,1) segundos;
  5. Repetir.

Inclua um GIF ou vídeo da webcam piscando, se possível. Se uma resposta não tiver o GIF, adicione um GIF do programa em execução.

Regras

  • Se seu idioma não possuir um sleepcomando de subsegundo , seu programa poderá usar um atraso de 1 segundo, com uma penalidade de um byte adicional. (substituindo .5por 1)
    • Se o seu idioma, por algum motivo, não suportar .5, sua penalidade será de 2 bytes. (substituindo 0.5por 1)
  • Seu programa deve executar um loop, a menos que seja interrompido pelo usuário.
  • Seu LED pode iniciar ou desligar; o que for mais benéfico pode ser usado.
  • Se o seu LED tiver um atraso no desligamento, ele não precisará ser levado em consideração, a menos que você queira fornecer uma versão adicional.

Pontuação

Isso é , o que significa que a resposta mais curta em bytes vence.


2
O LED da webcam do meu laptop leva um tempo (cerca de 0,3 segundos, ao que parece) se apaga após o dispositivo de vídeo parar de ser acessado. Isso precisa ser levado em consideração?
Maçaneta

@ Doorknob Não, mas você pode fornecer uma versão que leve isso em consideração, se desejar.
26517 haykam

11
A pena deve ser apenas 1 byte, uma vez que você pode apenas usar.5
Elronnd

@ Elronnd eu ia adicionar isso, mas eu esqueci.
haykam

Respostas:


8

MATLAB, 40 bytes

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

Cria um whileloop infinito e, a cada vez que o loop webcamé iniciado , um objeto é inicializado (liga a webcam), o script é interrompido por 0,5 segundos usando pausee, em seguida, o webcamobjeto é excluído (desativando a webcam).

insira a descrição da imagem aqui


2
O atraso entre cada piscar é mais do que 0,5
haykam

2
@haykam As instruções (e comentários) indicam que imprecisões devido ao hardware são aceitáveis, a menos que eu as interprete mal.
Suever 26/02

Ok ... você se importa em talvez adicionar um golfe adicional que pareça 0,5s?
haykam

4
@haykam É impossível, é uma limitação do MATLAB (e talvez do próprio hardware). Já estou mostrando que está sendo desligado e ligado novamente o mais rápido possível.
Suever 26/02

O último sinal sonoro foi bom
haykam 27/02/17

7

Python, 82 bytes

(Utiliza o OpenCV para acessar a webcam.)

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

insira a descrição da imagem aqui


4

Javascript (ES6), 100 bytes

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

Durante meus testes, vi um atraso entre a câmera sendo ativada e o LED aceso, portanto, o tempo pode não ser perfeito. Ele também deve ser executado em uma página https: //.


@haykam obrigado pela edição, mas por algum motivo este script não funciona dentro da sandbox trecho iframe
nderscore

OK então. Não vou começar uma guerra de edição. ;)
haykam 28/02

0

Scratch em scratchblocks2, 61 bytes

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

Desculpe pelo vídeo absolutamente terrível. Meu LED tem um ligeiro atraso de ativação, é muito fraco e o GIF é 18 MB.

gif


@ JonathanFrech Dei uma olhada em algumas respostas do Scratch e todas parecem usar scratchblocks2. Em segundo lugar, eu estava fazendo o que o desafio exigia?
WK

"Inclua um GIF ou vídeo da webcam piscando, se possível. Se uma resposta não tiver o GIF, adicione um GIF do programa em execução." Eu incluí tudo o resto acima.
WK

Você está certo. Raramente vejo uma resposta do zero, mas parece que sua resposta satisfaz o consenso atual da contagem de bytes e regras específicas do desafio. Desculpe pela minha crítica parcialmente desinformada.
precisa
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.