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

ooly2001 43 Messages postés lundi 24 janvier 2005Date d'inscription 9 décembre 2011 Dernière intervention - 23 févr. 2010 à 16:30 - Dernière réponse : ooly2001 43 Messages postés lundi 24 janvier 2005Date d'inscription 9 décembre 2011 Dernière intervention
- 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
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 23 févr. 2010 à 16:56
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)

Merci cs_Jack 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 72 internautes ce mois-ci

Commenter la réponse de cs_Jack
ooly2001 43 Messages postés lundi 24 janvier 2005Date d'inscription 9 décembre 2011 Dernière intervention - 23 févr. 2010 à 20:32
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
ooly2001 43 Messages postés lundi 24 janvier 2005Date d'inscription 9 décembre 2011 Dernière intervention - 24 févr. 2010 à 17:08
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.