Как узнать, какое приложение использует iSight (камера iMac)
Как узнать, в каком приложении открыта камера на iMac (работает с Leopard)? Зеленый свет горит, показывая, что камера используется, а фотокамера не может подключиться к камере. Единственными запущенными приложениями являются Safari и Finder (насколько я могу судить), ни одно из которых, похоже, не использует камеру.
Если бы это была Windows, я бы использовал Process Explorer, что я могу сделать на Mac, чтобы узнать, у кого открыто определенное устройство?
РЕДАКТИРОВАТЬ: используя предложение НРД, у меня почти есть решение с
lsof | grep "USBVDC"
Это показывает все приложения, пытающиеся использовать камеру, но не то, которое действительно ей владеет. Наверное, достаточно близко.
7 ответов
Моим лучшим предположением будет то, что iChat Agent работает в фоновом режиме.
Если нет, то попробуйте:
lsof | grep -i "AppleCamera"
В предыдущих версиях OS X (до Yosemite) это следует использовать:
lsof | grep -i "iSight"
In 2014, VDC
работает как lsof
search term for this:
$ 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
lsof
хорошая ставка Использование слова "VDC" дает мне лучшие результаты, но в старых версиях OSX вам, возможно, придется использовать другие термины "AppleCamera", "iSight".
Затем у вас есть список, и вы видите, что несколько программ используют камеру. Вы можете попытаться убить их одного за другим, но что если один из них находится в браузере и у вас открыто миллион вкладок?
Обычно этот трюк работает для меня:
- открыть ActivityMonitor,
- поиск VDC, VDCAssistant в списке,
- принудительно выйти из VDCAssistant.
В результате все процессы, пытающиеся использовать камеру, временно отключены. Это заботится о процессах, которые продолжали использовать камеру из-за некоторого сбоя. VDCAssistant перезапускается автоматически.
Этот прием также отлично работает, если программа не может получить доступ к камере.
Я только что обнаружил, что минимизация Facetime приводит к тому, что светодиод iSight загорается очень часто. Закройте FaceTime, нажав красную кнопку в верхнем левом углу. Вы по-прежнему будете получать вызовы FaceTime, но камера будет включена только после их поступления.
Занимая отличное решение, предложенное iwein, но оптимизируя его и делая его пригодным для сценариев, вы можете сделать это:
sudo pkill 'VDCAssistant'
Затем вы можете поместить это в функцию, чтобы было легче запомнить:
repocam () {
sudo pkill 'VDCAssistant'
}
Вы можете поместить эту функцию в свой .zshrc
файл или .bashrc
или что вы используете.
Вне области, но стоит преследовать:
Вы могли бы даже настроить работу cron или запускаемого агента или что угодно (Google для деталей!), Чтобы запускать его так часто. Если вы можете выяснить, какое приложение (например, HipShat) вызывает проблему, вы можете найти способ запустить его при выходе из приложения.
Также возможно запускать сценарии, когда ваш компьютер просыпается или переходит в спящий режим.
Вы также можете использовать приложение для надзора: https://objective-see.com/products/oversight.html
приложение по надзору может определять, используют ли некоторые другие приложения вашу камеру или микрофон, оповещать вас, затем вы можете заблокировать его, оставить его или добавить его в белый список.
iSight/AppleCamera теперь переименовывается в FaceTime
lsof | grep -i "FaceTime"
может быть как root, на тот случай, если кто-то еще его использует. Обычно проблема заключается в минимизации фейс-тайма. Откройте его и выйдите.