J'ai mon application contrôlant la caméra en utilisant C# et EDSDKWraper assez léger (que j'ai modifié un peu). Je peux déjà contrôler pratiquement tout, comme LiveView, la mise au point (automatique + manuelle), le réglage et la lecture de diverses propriétés et la prise de vue, avec un bracketing/empilage de mise au point automatique.Canon EDSDK: Prendre une photo dans LiveView rompt le LV pour toujours
Cependant, il y a un problème: Quand je commence le LiveView, puis prendre une photo en utilisant la méthode standard
SendCommand(Camera.Handle, PressShutterButton, ShutterButton_Completely_NonAF);
SendCommand(Camera.Handle, PressShutterButton, ShutterButton_OFF);
cela fonctionne, je peux télécharger les images ou annuler le téléchargement en utilisant Download
+ DownloadComplete
ou DownloadCancel
les fonctions. Malheureusement, après cela, il n'est plus possible d'obtenir l'image LiveView, le DownloadEvfImage
renvoie OBJECT_NOT_READY
et le conserve pour toujours. La seule solution est d'arrêter et de redémarrer le LiveView OU de lancer l'autofocus LiveView à l'aide de la commande DoEvfAF
. Mais je voudrais éviter cela. Cela se produit à la fois sur Canon 5D Mark IV et 5D Mark III et le même problème se produit également sur un C# Framework complètement différent avec un exemple différent que je viens de télécharger sur le Web. L'EOS Utility semble bien fonctionner, il semble donc y avoir un moyen.
Est-ce que "LiveView + prendre photo + LiveView" fonctionne même dans votre application, que ce soit en C# ou en C++? Y a-t-il un truc que je dois effectuer?
J'ai déjà passé beaucoup de temps à essayer de corriger un bug, comme les données non publiées, et la recherche de réponses sur le web, mais pas de chance jusqu'à présent.