Доступ iSight программно?

Попробуйте поместить document.getElementById в setTimeout()

Например.

setTimeout(function(){
    console.log(document.getElementById('whatever'));
}, 100);

Если это сработает, тогда это просто проблема синхронизации.

7
задан Cœur 14 August 2017 в 04:58
поделиться

7 ответов

Необходимо проверить документацию Получения QTKit.

На Leopard можно достигнуть все это по мосту RubyCocoa:

require 'osx/cocoa'
OSX.require_framework("/System/Library/Frameworks/QTKit.framework")

OSX::QTCaptureDevice.inputDevices.each do |device|
    puts device.localizedDisplayName
end
9
ответ дан 6 December 2019 в 11:54
поделиться

У меня нет Mac здесь, но существует некоторая Документация здесь:

http://developer.apple.com/documentation/Hardware/Conceptual/iSightProgGuide/01introduction/chapter_1_section_1.html

Похоже, что необходимо пройти API QuickTime. Там, как предполагается, Демонстрационный Проект под названием "MungGrab", который мог быть достойный внимания согласно этому потоку.

4
ответ дан 6 December 2019 в 11:54
поделиться

Существует названная утилита командной строки isightcapture это делает более или менее, что Вы хотите сделать. Вы могли, вероятно, получить код от разработчика (его адрес электронной почты находится в readme, который Вы получаете при загрузке утилиты).

1
ответ дан 6 December 2019 в 11:54
поделиться

Одной вещью, которая не была упомянута до сих пор, является IKPictureTaker, который является частью Набора Изображения. Это придумает стандартную ОС, обеспеченную панель для снимания хотя со всей возможной функциональностью фильтра, и т.д. включенной. Я не уверен, является ли это тем, что Вы хотите.

Я предполагаю, что можно использовать его с других языков также, полагая, что существуют вещи как мосты какао, но у меня нет опыта с ними.

Поиск с помощью Google также придумал другой вопрос на stackoverflow, который, кажется, решает эту проблему.

1
ответ дан 6 December 2019 в 11:54
поделиться

Если Вы вводите по абсолютному адресу вокруг списков рассылки Apple, можно найти, что некоторый код делает это в Java также. Здесь простой пример, подходящий для получения отдельных кадров, и здесь более сложный, это достаточно быстро для отображения живого видео.

2
ответ дан 6 December 2019 в 11:54
поделиться

Кроме ObjC, можно использовать привязку PyObjC или RubyCocoa для доступа к нему также. Если бы Вы не придирчивы, о котором языке, я сказал бы, используют Ruby, поскольку PyObjC ужасно плохо документируется (даже официальная страница Apple на нем относится к старой версии, не той, которая шла с Leopard OS X),

Кварцевый Компоновщик является, вероятно, самым легким способом получить доступ к нему, и .quartz файлы могут быть, встраивают в приложения довольно легко (и данные, переданные по каналу к ObjC или такому)

Кроме того, я предполагаю, что должен быть пример или два из этого в/Developer/Examples/

0
ответ дан 6 December 2019 в 11:54
поделиться

Из связанного вопроса, в котором конкретно указывалось, что решение является питоническим, вы должны попробовать библиотеку camiface motmot от Эндрю Стро. Он также работает с камерами FireWire, но он также работает с isight, который вам нужен.

Из учебника:

import motmot.cam_iface.cam_iface_ctypes as cam_iface
import numpy as np

mode_num = 0
device_num = 0
num_buffers = 32

cam = cam_iface.Camera(device_num,num_buffers,mode_num)
cam.start_camera()
frame = np.asarray(cam.grab_next_frame_blocking())
print 'grabbed frame with shape %s'%(frame.shape,)
0
ответ дан 6 December 2019 в 11:54
поделиться