0

我正在尝试让 Mac 应用程序与 Canon Mark II 5D 一起使用。

基本上我希望能够单击一个按钮并拍摄照片,检索照片并显示它。我要做的还有很多,但这是我遇到麻烦的部分。

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

- (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];

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

4

3 回答 3

1

您可以通过以下方式查看 ICCameraDevice 对拍照的看法

self.camera.canTakePictures

BOOL canYou = [self.capabilities containsObject:ICCameraDeviceCanTakePicture]

另外,请参阅此处的相机连接模式。并在此处实现从相机的下载过程。

于 2012-01-21T23:47:36.290 回答
1

希望这还不算晚,对您有用。按钮方法起作用的原因是因为设备在您按下它时已准备就绪。如果要自动捕获,则需要监听deviceDidBecomeReadydidOpenSessionWithError委托。

device:(ICDevice *)device didOpenSessionWithError:(NSError *)error将使您能够启用网络共享,deviceDidBecomeReady并使您能够执行相机功能。很糟糕,Apple 根本没有记录这一点!

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

- (void) device:(ICDevice *)device didOpenSessionWithError:(NSError *)error {
    [_camera requestEnableTethering];
}
于 2012-12-03T00:08:35.807 回答
0

实际上刚刚发现这行得通,但是, requestTakePicture 需要使用按钮触发。我只是想在它打开会话后触发它。

于 2012-01-22T12:51:30.583 回答