MMControl / MCI - Freeze lors de l'ouverture d'une vidéo [Résolu]

Messages postés
43
Date d'inscription
lundi 24 janvier 2005
Dernière intervention
9 décembre 2011
- - Dernière réponse : ooly2001
Messages postés
43
Date d'inscription
lundi 24 janvier 2005
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
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Dernière intervention
28 août 2015
3
Merci
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)

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 95 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Jack
Messages postés
43
Date d'inscription
lundi 24 janvier 2005
Dernière intervention
9 décembre 2011
0
Merci
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.
Commenter la réponse de ooly2001
Messages postés
43
Date d'inscription
lundi 24 janvier 2005
Dernière intervention
9 décembre 2011
0
Merci
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
Commenter la réponse de ooly2001

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.