Connaître la fin de lecture d'un fichier son [Résolu]

benzebuth666 8 Messages postés mercredi 3 novembre 2004Date d'inscription 18 juillet 2008 Dernière intervention - 10 juil. 2008 à 10:46 - Dernière réponse : TheMonz 4 Messages postés vendredi 29 août 2003Date d'inscription 18 juillet 2008 Dernière intervention
- 18 juil. 2008 à 10:31
Salut tout le monde,

J'ai un problème avec la classe SoundPlayer

Je voudrais lire un fichier wav et ensuite continuer le déroulement du programme. Mais en plus je voudrais pouvoir stopper le fichier en cours de lecture.

Ce qui m'oblige à utiliser Play() au lieu de PlaySync()

Pour cela je lance un thread dans lequel je fais le Play(), comme ca pour stopper la lecture, je ferme le thread.

Mais je n'arrive pas à détecter le fin de leture du fichier son pour pouvoir continuer le programme dans le cas où a pas stopper la lecture. Quelqun aurait une idée comment faire svp

Voici un bout de code :

//Démarrage du thread pour la lecture
Thread ThreadSon = new Thread(new ThreadStart(PlayThread));
SoundPlayer son;
//Thread lisant le son
public void PlayThread()
        {
            son.Play();
        }
//Fonction du bouton Stop
public void StopSon(object sender, EventArgs e)
        {
            ThreadSon.Abort();
            SuiteProg();
      }
//Suite du programme
public void SuiteProg()
        {
           
            Suite du programme ....
        }

Merci
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
benzebuth666 8 Messages postés mercredi 3 novembre 2004Date d'inscription 18 juillet 2008 Dernière intervention - 10 juil. 2008 à 16:30
3
Merci
C'est bon j'ai résolu mon problème.
Pour ceux qui rencontreraient le même problème que moi plus tard, n'utilisé pas la classe SoundPlayer().

Utilisé plutôt la librairie "winmm.dll" qui est moins basique que SoundPlayer().
J'ai utilisé la fonction :  mciSendString("status MediaFile mode", stringBuilder, 128, 0);
cette fonction renvoit "playing" ou "stopped", ce que je cherchais

Voici l'exemple qui m'a aidé :

http://www.codeproject.com/KB/cs/Audio_Player__with_Winmm.aspx

A++
Benzebuth

Merci benzebuth666 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de benzebuth666
TheMonz 4 Messages postés vendredi 29 août 2003Date d'inscription 18 juillet 2008 Dernière intervention - 18 juil. 2008 à 10:31
0
Merci
salut

Et meme mieux que le winmm.dll ==> tu as le AudioVideoPlayback.... de microsoft (gratuit)...dans directX

Ca te joue du son (bcp de format), de la vidéo et tu peux jouer plusieurs sons en simultanés.

Bref, un outil plus que pratique mais méconnu hélas !

The Monz, Toulouse
Commenter la réponse de TheMonz

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.