0

Canon Mark II 5D で Mac アプリを動作させようとしています。

基本的には、ボタンをクリックして写真を撮り、写真を取得して表示できるようにしたいと考えています。やっていることは他にもたくさんありますが、これは私が問題を抱えている部分です。

とにかく、ICDeviceBrowserデバイスを見つけるために を使用しており、見つけることができます。次のデリゲートメソッドを使用して、それを自分のデシブとして設定しました。

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

これが手遅れではなく、あなたに役立つことを願っています. ボタン方式が機能する理由は、デバイスを押すまでにデバイスの準備が整っているためです。キャプチャを自動化したい場合は、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 に答える