MMControl / MCI - Freeze lors de l'ouverture d'une vidéo

Résolu
ooly2001 Messages postés 43 Date d'inscription lundi 24 janvier 2005 Statut Membre Dernière intervention 9 décembre 2011 - 23 févr. 2010 à 16:30
ooly2001 Messages postés 43 Date d'inscription lundi 24 janvier 2005 Statut Membre Dernière intervention 9 décembre 2011 - 24 févr. 2010 à 17:08
Bonjour,

Je suis actuellement en train de développer un lecteur multimédia (avec des tas de fonctions comme enregistrement de la fiche dans une base de données, screenshot etc...) mais je suis face à un problème avec certaines vidéos.
En effet voici un bout de mon code lors de la lecture :

CmdStr = "play " & AliasToUse & " from 2500"
exeAPI = mciSendStringA(CmdStr, 0&, 0&, 0&): DoEvents

Dans 99% des cas, cela fonctionne parfaitement mais avec certaines vidéos (je ne sais pas pourquoi puisque j'arrive à les lire avec WMP, MPC ou VLC), cela freeze mon appli.
Le tout pour moi n'est pas de savoir pourquoi cela freeze mais COMMENT intégrer une fonction supplémentaire pour qu'à un moment donné (au bout de 5 secondes par exemple) et bien mon programme s'arrête (Exit Sub).
Le DoEvents ne fonctionnant pas, je me retrouve à killer mon appli vie la gestionnaire des taches.

PS: Je précise que la lecture de la vidéo fonctionne parfaitement, c'est simplement quand j'utilise la fonction seek ou alors play from que ca freeze

Une idée ?? any idea ??

Merci beaucoup de m'aider

Ooly2001

3 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
23 févr. 2010 à 16:56
Salut
Poster la même question toutes les heures n'a pas d'intérêt.

C'est l'appel à l'API qui fige, pas ton programme.
Il n'y a aucune possibilité d'interacgir dans ce cas.
A toi de voir si cette API s'utilise bien comme ça et avec tous les types de fichier.
Il faudrait, à mon avis, que tu te penches sur la structure des fichiers vidéo car certains vieux formats n'ont pas d'indexation et les appels de Seek provoque de longs moments d'attente, mais pas de figeage - à toi de voir s'il s'agit d'un vrai figeage ou d'un délai très long.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
3
ooly2001 Messages postés 43 Date d'inscription lundi 24 janvier 2005 Statut Membre Dernière intervention 9 décembre 2011
23 févr. 2010 à 20:32
Merci de ta réponse jack
Je vais étudier de plus près mes fichiers vidéos qui posent problème et voir s'il s'agit d'un délai long plutôt que d'un freeze de l'API.
0
ooly2001 Messages postés 43 Date d'inscription lundi 24 janvier 2005 Statut Membre Dernière intervention 9 décembre 2011
24 févr. 2010 à 17:08
Vu que je ne pouvais "contrôler" mon API (et la stopper en cas de problème ), j'ai essayer de savoir d'où venait le problème et finalement je l'ai résolu .
Dans la configuration de ffdshow (dans la liste des codecs), j'ai vu dans les lignes concernant wmv que le decodeur était en mode "désactivé".
Je l'ai changé en décodeur wmv9 puis libavcodec et les 2 fonctionnent ! Plus de problème sur ces vidéos .
Je suppose que lorsqu'il est paramétré en "désactivé" l'API va chercher un "codec interne crosoft" qui bloque avec quelques vidéos si la vidéo a un défaut (ou quelque chose dans le genre) mais dès que j'utilise un de ces 2 codecs (wmv9 ou libavcodec) et bien les défauts éventuels sont corrigés et donc plus de freeze lors de l'appel API.

En tout cas, merci pour tout jack
0
Rejoignez-nous