我对 EDSDK 有一点问题。我试图制作一个可以从实时取景切换到电影录制的功能。
liveview一切都很好,我可以拍照。但是当我想开始电影录制时,我ERR_DEVICE_BUSY
每次都想更改一个属性(保存到相机而不是 PC)。我尝试了一切,做一个循环,什么都没有。这是我得到这个错误的唯一地方。
这是我的代码:
EdsDataType dataType;
EdsUInt32 dataSize;
EdsUInt32 enregistrement;
err = EdsGetPropertySize(camera, kEdsPropID_SaveTo, 0, &dataType, &dataSize);
err = EdsGetPropertyData(camera, kEdsPropID_SaveTo, 0, dataSize, &enregistrement);
EdsUInt32 saveTo = kEdsSaveTo_Camera;
if(enregistrement != kEdsSaveTo_Camera){
err = EdsSetPropertyData(camera, kEdsPropID_SaveTo, 0, sizeof(saveTo), &saveTo);
if(err != EDS_ERR_OK){
printf("Erreur de changement d'emplacement de sauvegarde, arret de l'enregistrement\n");
printf("err : 0x%X\n", err);
return err;
}
}
//Changement du mode de prise de vu
EdsUInt32 mode = 20; //Le monde 20 correspont à l'enregistrement vidéo
EdsSetPropertyData(camera, kEdsPropID_AEMode, 0, sizeof(mode), &mode);
//Variable pour la mise en route et l'arrêt de l'enregistrement
EdsUInt32 debutEnregistrement = 4;
EdsUInt32 finEnregistrement = 0;
err = EdsSetPropertyData(camera, kEdsPropID_Record, 0, sizeof(debutEnregistrement), &debutEnregistrement);
if(err != EDS_ERR_OK){
printf("Erreur lors du lancement de l'enregistrement");
return err;
}
//Wait for stop record
err = EdsSetPropertyData(camera, kEdsPropID_Record, 0, sizeof(finEnregistrement), &finEnregistrement);
if(err != EDS_ERR_OK)
printf("Erreur lors de l'arret de l'enregistrement");
//L'enregistrement est fini, vérification des evenement
EdsGetEvent();
如果你有解决方案,我接受,谢谢。