hammerspoon2-docs
    Preparing search index...

    Namespace camera

    Module for discovering and interacting with camera devices. This module lets you enumerate cameras, capture still images, and react to device connect/disconnect events in real time. Camera access requires user permission. Call hs.permissions.requestCamera() before using captureImage() or reading isInUse.

    const cameras = hs.camera.all()
    cameras.forEach(cam => {
    console.log(cam.name + " — " + (cam.isInUse ? "in use" : "idle"))
    })
    const cam = hs.camera.findByName("FaceTime HD Camera")
    if (cam) {
    cam.captureImage()
    .then(img => img.saveToFile("/tmp/snapshot.png"))
    .catch(err => console.error("Capture error: " + err))
    }
    const handler = (event, camera) => {
    if (event === "connected") console.log("Camera connected: " + camera.name)
    if (event === "disconnected") console.log("Camera disconnected: " + camera.name)
    }
    hs.camera.addWatcher(handler)
    // Later…
    hs.camera.removeWatcher(handler)
    const cam = hs.camera.all()[0]
    cam.addWatcher((isInUse) => {
    console.log(cam.name + " is now " + (isInUse ? "in use" : "idle"))
    })

    Functions

    _makeCameraEmitter
    addWatcher
    all
    findByName
    findByUID
    removeWatcher