HSCamera
TypeA camera device attached to the system.
Obtain instances via the hs.camera module — do not instantiate directly.
Reading camera properties
const cam = hs.camera.all()[0]
console.log(cam.name + " uid=" + cam.uid + " inUse=" + cam.isInUse)
Watching for in-use state changes
const cam = hs.camera.all()[0]
const fn = (isInUse) => {
console.log(cam.name + " is now " + (isInUse ? "in use" : "not in use"))
}
cam.addWatcher(fn)
// later…
cam.removeWatcher(fn)
Capturing a still image
const cam = hs.camera.all()[0]
cam.captureImage()
.then(img => img.saveToFile("/tmp/shot.png"))
.catch(err => console.error("Capture failed: " + err))
Properties
isInUse
boolean
Whether this camera is currently being used by any application.
Queries the underlying CoreMediaIO device state each time it is read.
Methods
addWatcher(listener) -> None
Register a listener that fires whenever this camera's in-use state changes.
The listener receives one argument: a boolean that is `true` when the camera
starts being used and `false` when it is released.
Declaration
addWatcher(listener) -> None
Parameters
| Name | Type | Description |
|---|---|---|
| listener | JSValue | A JavaScript function receiving `(isInUse: boolean)` |
Returns
None
Example
const cam = hs.camera.all()[0]
cam.addWatcher((inUse) => {
console.log(cam.name + " is " + (inUse ? "now in use" : "no longer in use"))
})
removeWatcher(listener) -> None
Remove a previously registered per-camera in-use listener.
Declaration
removeWatcher(listener) -> None
Parameters
| Name | Type | Description |
|---|---|---|
| listener | JSValue | The function originally passed to ``addWatcher(_:)`` |
Returns
None
Example
cam.removeWatcher(myHandler)
captureImage() -> Promise<HSImage>
Capture a still image from this camera.
Camera permission must be granted via `hs.permissions.requestCamera()` before calling
this method. The returned `HSImage` can be saved, displayed in a UI element, or
passed to other image-processing APIs.
Declaration
captureImage() -> Promise<HSImage>
Returns
Promise<HSImage>
A Promise that resolves to an `HSImage`, or rejects on error
Example
const img = await hs.camera.all()[0].captureImage()
img.saveToFile("/tmp/snapshot.png")