Мигайте светом веб-камеры!

9

Эта задача вдохновлена Blink the CAPS LOCK от zeppelin .

Большинство веб-камер имеют небольшой встроенный светодиодный индикатор, указывающий, используется ли веб-камера, и управляемый аппаратным механизмом для предотвращения шпионажа.

Ваша задача - мигнуть:

  1. Включи это.
  2. Подождите 0,5 (± 0,1) секунды.
  3. Выключи это снова.
  4. Подождите 0,5 (± 0,1) секунды;
  5. Повторение.

Пожалуйста, включите GIF или видео мигающей веб-камеры, если это возможно. Если в ответе отсутствует GIF, добавьте GIF запущенной программы.

правила

  • Если в вашем языке отсутствует подпоследовательная sleepкоманда, ваша программа может вместо этого использовать задержку в 1 секунду со штрафом в дополнительный байт. (замена .5на 1)
    • Если ваш язык по какой-то причине не поддерживает .5, ваш штраф составляет 2 байта. (замена 0.5на 1)
  • Ваша программа должна зацикливаться, если не остановлена ​​пользователем.
  • Ваш светодиод может включаться или выключаться; может быть использовано все, что выгоднее.
  • Если у вашего светодиода есть задержка выключения, то это не нужно учитывать, если только вы не хотите предоставить дополнительную версию.

счет

Это , что означает самый короткий ответ в байтах.

haykam
источник
2
После остановки доступа к видеоустройству светодиод веб-камеры моего ноутбука отключается (кажется, около 0,3 секунды). Это нужно учитывать?
Ручка двери
@ Doorknob Нет, но вы можете предоставить версию, которая учитывает ее, если хотите.
haykam
1
Наказание должно быть только 1 байт, так как вы можете просто использовать.5
Elronnd
@ Elronnd Я собирался добавить это, но я забыл.
haykam

Ответы:

8

MATLAB, 40 байт

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

Создает бесконечный whileцикл, и каждый раз, когда проходит цикл, webcamобъект инициализируется (включает веб-камеру), сценарий приостанавливается на 0,5 секунды, используяpause , а затем webcamобъект удаляется (выключается веб-камера).

введите описание изображения здесь

Suever
источник
2
Задержка между каждым
миганием
2
@haykam Указания (и комментарии) указывают на то, что неточности, связанные с аппаратным обеспечением, допустимы, если я их не читаю.
Suever
Хорошо ... Вы не возражаете, возможно, добавив дополнительный гольф, который делает это так, что он выглядит как 0,5 с?
haykam
4
@haykam Это невозможно, это ограничение MATLAB (и, возможно, самого оборудования). Я уже показываю, что он выключен и снова включен как можно быстрее.
Suever
Последний гудок был хорош
хайкам
7

Python, 82 байта

(Использует OpenCV для доступа к веб-камере.)

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

введите описание изображения здесь

ПЗП
источник
4

Javascript (ES6), 100 байт

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

Во время тестирования я увидел задержку между включением камеры и включением светодиода, поэтому время может быть не идеальным. Он также должен работать на странице https: //.

nderscore
источник
@haykam спасибо за редактирование, но по какой-то причине этот сценарий не работает внутри песочницы iframe с фрагментом
nderscore
Хорошо, тогда. Я не начну войну редактирования. ;)
Хайкам
0

Царапины на блокнотах2, 61 байт

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

Извините за абсолютно ужасное видео. У моего светодиода небольшая задержка включения, он очень слабый, а GIF составляет 18 МБ.

GIF

WK
источник
@JonathanFrech Я взглянул на некоторые ответы с нуля, и похоже, что все они используют блокноты2. Во-вторых, я делал то, что требовал вызов?
WK
«Пожалуйста, включите GIF или видео мигающей веб-камеры, если это возможно. Если в ответе отсутствует GIF, добавьте GIF запущенной программы». Я включил все остальное выше этого.
WK
Вы правы. Я редко вижу ответ с нуля, но кажется, что ваш ответ удовлетворяет как текущему консенсусу по количеству байтов, так и правилам, связанным с вызовом. Извините за мою частично неосведомленную критику.
Джонатан Фрех