在自动执行期间拍照时调用哪种方法?

时间:2017-11-21 09:32:21

标签: swift dji-sdk

我想知道什么时候触发器在自动任务中被触发。具有内部存储的产品很简单,例如,以下方法为每张新照片更新图像计数标签

func camera(_ camera: DJICamera, didGenerateNewMediaFile newMedia: DJIMediaFile) {
 self.picsTaken += 1
 self.picsTakenLabel.text = "Pics taken: \(picsTaken)"
}

当然,这对于带有RoninMX和远程S / S触发器的M600等设备不起作用,因为没有内部存储的信息。

我也尝试了以下内容:

func camera(_ camera: DJICamera, didUpdate systemState: DJICameraSystemState) {
    if systemState.isShootingSinglePhoto {
...
    }
}

但是这种方法甚至不能在我们的M600上调用。

有人知道当自动任务触发触发器时是否有调用或更改的方法或参数?

由于

2 个答案:

答案 0 :(得分:0)

也许它会帮助你。

DJIWaypoint wp = new DJIWaypoint(latitude, longitude, altitude);

DJIWaypoint.DJIWaypointAction takePictureAction = new DJIWaypoint.DJIWaypointAction(DJIWaypoint.DJIWaypointActionType.StartTakePhoto, 0);

wp.addAction(takePictureAction);

答案 1 :(得分:0)

您是否尝试过观察camera status

您必须注册摄像机代表,然后在didUpdate方法检查中 isShootingSinglePhoto属性的值。

像这样的东西

class ViewController: DJICameraDelegate....

override func viewWillAppear(_ animated: Bool) {
    ...
    self.camera!.delegate = self
    ...
}

func camera(_ camera: DJICamera, didUpdate systemState: DJICameraSystemState) {
    if systemState.isShootingSinglePhoto {
        doSomething()
    }
}