如何找出 iMac(正在运行 Leopard)上哪个应用程序打开了相机?绿灯亮起表示相机正在使用中,并且 photo booth 无法连接到相机。唯一运行的其他应用程序是 Safari 和 Finder(据我所知),这两个应用程序似乎都没有使用相机。
如果这是 Windows,我会使用 Process Explorer,那么在 Mac 上我该怎么做才能查看谁打开了特定设备?
编辑:使用 NSD 的建议,我几乎有一个解决方案
lsof | grep "USBVDC"
这表明所有应用程序都在尝试使用相机,但实际拥有相机的应用程序却不是它。可能已经足够接近了。
答案1
我最好的猜测是 iChat Agent 正在后台运行。
如果没有,请尝试:
lsof | grep -i "AppleCamera"
在以前的 OS X 版本中(Yosemite 之前),应该使用以下命令:
lsof | grep -i "iSight"
答案2
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
答案3
lsof
是个不错的选择。搜索“VDC”可以得到最好的结果,但在旧版本的 OSX 中,您可能必须使用其他术语“AppleCamera”、“iSight”。
然后你得到一个列表,你会看到有几个程序正在使用摄像头。你可以尝试逐个关闭它们,但如果其中一个程序在浏览器中,而你打开了上百万个标签页,该怎么办?
通常这个技巧对我有用:
- 打开 ActivityMonitor,
- 搜索 VDC,VDCAssistant 已列出,
- 强制退出 VDCAssistant。
结果是所有尝试使用摄像头的进程都暂时断开连接。这解决了由于某些故障而继续使用摄像头的进程。VDCAssistant 会自动重新启动。
如果程序无法访问相机,此技巧也能很好地发挥作用。
答案4
iSight/AppleCamera 现已更名为 FaceTime
lsof | grep -i "FaceTime"
可能是 root,以防其他人正在使用它。通常是 facetime 最小化了,这就是问题所在。打开它并退出。