requestTakePicture() doesn't do anything

63 Views Asked by At

I'm trying to make a DSLR Photo Booth app for Mac that controls a Nikon Z6 r Z7 connected via USB. I'm trying to do this in Swift, using ImageCaptureCore.

I'm able to init the ICDeviceBrowser and open a session to the camera. The deviceDidBecomeReady However, calling

device.requestTakePicture()

doesn't do anything.

The device does have the ICCameraDeviceCanTakePicture capability:

{
    UUIDString = "00000030-3030-3030-3033-303432303637";
    autolaunchApplicationPath = "";
    capabilities =     (
        ICCameraDeviceCanSyncClock,
        ICCameraDeviceCanTakePicture,
        ICCameraDeviceCanDeleteOneFile,
        ICCameraDeviceCanAcceptPTPCommands
    );
    class = ICCameraDevice;
    connectionID = 0xffff0002;
    delegate = "<0x600002fbbd50>";
    deviceID = 0xffff0002;
    deviceRef = 0xffff0002;
    iconPath = "(null)";
    locationDescription = ICDeviceLocationDescriptionUSB;
    moduleExecutableArchitecture = 0;
    modulePath = "/System/Library/Image Capture/Devices/PTPCamera.app";
    moduleVersion = "1.0";
    name = "Z 7";
    persistentIDString = "00000030-3030-3030-3033-303432303637";
    shared = NO;
    softwareInstallPercentDone = "0.000000";
    transportType = ICTransportTypeUSB;
    type = 0x00000101;
}  timeOffset                    : 0.000000
  hasConfigurableWiFiInterface  : N/A
  isAccessRestrictedAppleDevice : NO

I am getting device.tetheredCaptureEnabled() == false, but the capability exists.

@property tetheredCaptureEnabled
@abstract This property is always set to YES when the device has the capability 'ICCameraDeviceCanTakePicture'

So I'd expect this to be true, since the capability exists.

0

There are 0 best solutions below