Search code examples
edsdkcanon-sdk

Take pictures using camera shutter when receiving live view data


I am developing using EDSDK.

However, if I press the shutter of the camera (physical button) while receiving live view data(EVF Mode), the picture won't be taken. Is this normal?

My camera model is 200D II.

What I'm trying to do is as follows, and it's very simple.

  1. My software activates the camera through EDSDK and receives live view data.

  2. The person behind the camera takes a picture by pressing the camera shutter, and my software shows the picture on the screen.

The questions are as follows.

  • How to take pictures using physical camera shutter buttons when receiving live view data(EVF).

HDMI connections are not considered because there are features that need to be controlled directly through EDSDK.

Thank you.

Below is what I added after Johannes Bildstein's answer.

As Johannes Bildstein answered, the following code was inserted to unlock the UI. But it still hasn't been solved.

if (!MainCamera.IsLiveViewOn) {
  MainCamera.StartLiveView();
  MainCamera.UILock(false);
 }

  1. Error message occurs when I try to unlock UI and get EVF data. (Shutter still doesn't work)

  2. If I unlock UI after receiving EVF data,

  1. When dial is in photo mode: EVF data is coming in, but the shutter still does not work.
  2. When dial is in video mode: EVF data does not come in due to BUSY error. Is it a conflict due to UI unlocking? We check your answers and SDK documents and try in many ways, but they are still unresolved. We are currently testing the more recent model, 200D II.

Solution

  • "| EvfOutputDevice.Camera " should be added like below!

    public void StartLiveView()
    {
        CheckState();
        if (!IsLiveViewOn) SetSetting(PropertyID.Evf_OutputDevice, (int)(EvfOutputDevice.PC | EvfOutputDevice.Camera ));
    }