Mrugnij lampką kamery!

9

To wyzwanie jest inspirowane przez Blink the CAPS LOCK autorstwa zeppelin .

Większość kamer internetowych ma małe zintegrowane światło LED, wskazujące, czy kamera internetowa jest w użyciu, kontrolowane przez mechanizm sprzętowy zapobiegający szpiegowaniu.

Twoim zadaniem jest mrugnięcie:

  1. Włącz to.
  2. Poczekaj 0,5 (± 0,1) sekundy.
  3. Wyłącz to ponownie.
  4. Poczekaj 0,5 (± 0,1) sekundy;
  5. Powtarzać.

Jeśli to możliwe, dołącz GIF lub wideo migającej kamery internetowej. Jeśli odpowiedź nie zawiera pliku GIF, dodaj plik GIF uruchomionego programu.

Zasady

  • Jeśli w twoim języku brakuje sleeppolecenia podsekcji , twój program może zamiast tego użyć 1-sekundowego opóźnienia, za karą dodatkowego bajtu. (zamiast .5z 1)
    • Jeśli twój język z jakiegoś powodu nie obsługuje .5, twoja kara wynosi 2 bajty. (zamiast 0.5z 1)
  • Twój program musi być zapętlony, chyba że zostanie zatrzymany przez użytkownika.
  • Twoja dioda LED może się włączyć lub wyłączyć; można zastosować tę, która jest bardziej korzystna.
  • Jeśli Twoja dioda LED ma opóźnienie wyłączenia, nie trzeba jej brać pod uwagę, chyba że chcesz podać dodatkową wersję.

Punktacja

To jest , co oznacza, że ​​wygrywa najkrótsza odpowiedź w bajtach.

Haykam
źródło
2
Dioda LED kamery internetowej mojego laptopa wyłącza się po pewnym czasie (wydaje się, że około 0,3 sekundy) po tym, jak urządzenie wideo przestaje być dostępne. Czy należy to wziąć pod uwagę?
Klamka
@Doorknob Nie, ale możesz podać wersję, która bierze to pod uwagę, jeśli chcesz.
haykam
1
Kara powinna wynosić tylko 1 bajt, ponieważ można po prostu użyć.5
Elronnd
@Elronnd Chciałem to dodać, ale zapomniałem.
haykam

Odpowiedzi:

8

MATLAB, 40 bajtów

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

Tworzy nieskończoną whilepętlę i za każdym razem przez pętlę webcaminicjowany jest obiekt (włącza kamerę internetową), skrypt jest wstrzymywany na 0,5 sekundy za pomocą pause, a następnie webcamobiekt jest usuwany (wyłączając kamerę internetową).

wprowadź opis zdjęcia tutaj

Suever
źródło
2
Opóźnienie między każdym mrugnięciem jest większe niż 0,5
haykam
2
@haykam Wskazówki (i komentarze) wskazują, że niedokładności związane ze sprzętem są dopuszczalne, chyba że je źle interpretuję.
Suever
Ok ... czy masz coś przeciwko dodaniu dodatkowego golfa, który będzie wyglądał jak 0,5s?
haykam
4
@haykam To niemożliwe, to ograniczenie MATLAB (a może sam sprzęt). Już pokazuję, że jest wyłączane i włączane tak szybko, jak to możliwe.
Suever
Ostatni sygnał był dobry
haykam
7

Python, 82 bajty

(Wykorzystuje OpenCV do uzyskiwania dostępu do kamery internetowej.)

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

wprowadź opis zdjęcia tutaj

pzp
źródło
4

JavaScript (ES6), 100 bajtów

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

Podczas testów zauważyłem opóźnienie między aktywacją kamery a włączeniem diody LED, więc czas może nie być idealny. Musi także działać na stronie https: //.

nderscore
źródło
@haykam dzięki za edycję, ale z jakiegoś powodu ten skrypt nie działa w piaskownicy iframe snippet
nderscore 27.02.17
Ok więc. Nie rozpocznę wojny edycyjnej. ;)
haykam
0

Scratch in scratchblocks2, 61 bajtów

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

Przepraszam za absolutnie okropne wideo. Moja dioda LED ma niewielkie opóźnienie włączenia, jest bardzo słaba, a GIF ma 18 MB.

gif

WK
źródło
@JathanathanFrech Rzuciłem okiem na niektóre odpowiedzi Scratch i wszystkie wydają się używać scratchblocks2. Po drugie, robiłem to, czego wymagało wyzwanie?
WK
„Jeśli to możliwe, dołącz plik GIF lub wideo z kamery migającej. Jeśli odpowiedź nie zawiera pliku GIF, dodaj plik GIF uruchomionego programu”. Dołączyłem wszystko inne powyżej.
WK
Masz rację. Rzadko widuję odpowiedź na zadrapanie, ale wydaje się, że twoja odpowiedź spełnia zarówno aktualny konsensus dotyczący liczby bajtów, jak i reguły specyficzne dla wyzwania. Przepraszam za moją częściowo niedoinformowaną krytykę.
Jonathan Frech