Bonjour,
J'ai réalisé un programme de capture vidéo (qui fonctionne correctement), utilisant l'instruction API AVISaveV :
Comme la sauvegarde du fichier vidéo peut être longue (fichiers de plusieurs centaines de Mo), je voudrais ajouter une barre de progression pour faire patienter l'utilisateur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part AVISaveV(vid_and_wavFileName.c_str(), 0, 0, 1, &aviStreamFinal, 0);
Pour ce faire, il me faut donc ajouter une fonction de callback durant l'execution de cette instruction AVI.
Voici le code que j'utilise :
Malheureusement, ce code ne fonctionne pas (ProgressBar inerte) : Selon la documentation Microsoft, "the nPercent parameter specifies the percentage of the file saved".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 AVISaveV(vid_and_wavFileName.c_str(), 0, (AVISAVECALLBACK)SaveCallback(nPercent), 1, &aviStreamFinal, 0); LONG __stdcall TForm1::SaveCallback(int nPercent) { Form2->ProgressBar1->Position = nPercent; Application->ProcessMessages(); return(AVIERR_OK); }
Quelqu'un a-t-il une idée concernant l'erreur que je fais ?
Une recherche sur Internet montre qu'au moins une dizaine de personnes ont buté sur cette difficulté, mais je n'y ai trouvé aucune solution proposée.![]()
Partager