36

Как узнать, какое приложение имеет открытую камеру на iMac (работает Leopard)? Зеленый свет горит, показывая, что камера используется, а фотокамера не может подключиться к камере. Единственными запущенными приложениями являются Safari и Finder (насколько я могу судить), ни одно из которых, похоже, не использует камеру.

Если бы это была Windows, я бы использовал Process Explorer, что я могу сделать на Mac, чтобы узнать, у кого открыто определенное устройство?

РЕДАКТИРОВАТЬ: используя предложение НРД, у меня почти есть решение с

    lsof | grep "USBVDC"

Это показывает все приложения, пытающиеся использовать камеру, но не то, которое на самом деле ей владеет. Наверное, достаточно близко.

7 ответов7

24

Моим лучшим предположением будет то, что iChat Agent работает в фоновом режиме.

Если нет, то попробуйте:

lsof | grep -i "AppleCamera"

В предыдущих версиях OS X (до Yosemite) это следует использовать:

lsof | grep -i "iSight"
19

В 2014 году VDC работает в качестве lsof запроса для этого:

$ lsof | grep VDC
FaceTime  1097 user  txt      REG                1,4    405264    2934 /System/Library/Frameworks/CoreMediaIO.framework/Versions/A/Resources/VDC.plugin/Contents/MacOS/VDC
6

lsof хорошая ставка. Поиск «VDC» дает мне лучшие результаты, но в старых версиях OSX вам, возможно, придется использовать другие термины «AppleCamera», «iSight».

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

Обычно этот трюк работает для меня:

  • открыть ActivityMonitor,
  • поиск VDC, VDCAssistant в списке,
  • принудительно выйти из VDCAssistant.

В результате все процессы, пытающиеся использовать камеру, временно отключены. Это заботится о процессах, которые продолжали использовать камеру из-за некоторого сбоя. VDCAssistant перезапускается автоматически.

Этот прием также отлично работает, если программа не может получить доступ к камере.

4

Я только что обнаружил, что минимизация Facetime приводит к тому, что светодиод iSight загорается очень часто. Закройте FaceTime, нажав красную кнопку в верхнем левом углу. Вы по-прежнему будете получать вызовы FaceTime, но камера будет включена только после их поступления.

0

Занимая отличное решение, предложенное iwein, но оптимизируя его и делая его пригодным для сценариев, вы можете сделать это:

sudo pkill 'VDCAssistant'

Затем вы можете поместить это в функцию, чтобы было легче запомнить:

repocam () {
    sudo pkill 'VDCAssistant'
}

Вы можете поместить эту функцию в свой файл .zshrc или .bashrc или что-либо еще, что вы используете.

Вне области, но стоит преследовать:

Вы могли бы даже создать работу cron или запуск агента или что угодно (Google для деталей!) запускать его так часто. Если вы можете выяснить, какое приложение (например, HipShat) вызывает проблему, вы можете найти способ запустить его при выходе из приложения.

Также возможно запускать сценарии, когда ваш компьютер просыпается или идет спать.

0

iSight/AppleCamera теперь переименовывается в FaceTime

lsof | grep -i "FaceTime"

может быть как root, на тот случай, если кто-то еще его использует. Обычно проблема заключается в минимизации фейс-тайма. Откройте его и выйдите.

0

Вы также можете использовать приложение для надзора: https://objective-see.com/products/oversight.html

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .