如何使用ICCameraDevice拍照?

时间:2012-01-21 22:58:17

标签: macos cocoa photo image-capture

我正在尝试使用佳能Mark II 5D的Mac应用程序。

基本上我希望能够点击按钮拍摄照片,检索照片并显示照片。我正在做的事情还有很多,但这是我遇到麻烦的部分。

无论如何,我使用ICDeviceBrowser来查找设备,我能够找到它。我使用以下delgate方法将其设置为我的decive。

- (void)deviceBrowser:(ICDeviceBrowser*)browser didAddDevice:(ICDevice*)addedDevice moreComing:(BOOL)moreComing {

    ICCameraDevice *thisCamera = (ICCameraDevice*)addedDevice;
    thisCamera.delegate = self;

    self.camera = thisCamera;

    [self.camera requestOpenSession];

}

然后关闭相机,我想我会这样做......但是什么也没发生。

[self.camera requestTakePicture];

有没有人玩过这个,或者可能知道发生了什么?

3 个答案:

答案 0 :(得分:1)

您可以查看ICCameraDevice通过

拍摄照片的想法
self.camera.canTakePictures

BOOL canYou = [self.capabilities containsObject:ICCameraDeviceCanTakePicture]

另外,请参阅相机连接模式here。和here从相机执行下载过程。

答案 1 :(得分:1)

希望这不是太晚,对你有用。按钮方法工作的原因是,当您按下它时设备已准备就绪。如果您想自动捕获,则需要倾听deviceDidBecomeReadydidOpenSessionWithError代表的意见。

device:(ICDevice *)device didOpenSessionWithError:(NSError *)error可让您启用网络共享,deviceDidBecomeReady可让您执行相机功能。苹果公司根本没有记录这一点,这很糟糕!

- (void) deviceDidBecomeReady:(ICDevice *)device {
     [_camera requestTakePicture];
}

- (void) device:(ICDevice *)device didOpenSessionWithError:(NSError *)error {
    [_camera requestEnableTethering];
}

答案 2 :(得分:0)

实际上只是发现这个有用,但是,需要使用按钮触发requestTakePicture。我只是在打开会议后试图解雇它。