У меня небольшая проблема с EDSDK. Я попытался сделать функцию, которая может переключаться с liveview на запись в кино.Canon EDSDK Устройство Занято при изменении свойства
Все в порядке с liveview, я могу сфотографироваться. Но когда я хочу начать запись фильма, у меня есть ERR_DEVICE_BUSY
каждый раз, когда я хочу изменить свойство (сохранить на камеру вместо ПК). Я пробую все, сделаю петлю, ничего. И это единственное место, где я получаю эту ошибку.
Вот мой код:
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();
Если у вас есть решение, я беру, спасибо.