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

Messages postés
8
Date d'inscription
mercredi 3 novembre 2004
Statut
Membre
Dernière intervention
18 juillet 2008
- - Dernière réponse : TheMonz
Messages postés
4
Date d'inscription
vendredi 29 août 2003
Statut
Membre
Dernière intervention
18 juillet 2008
- 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 

2 réponses

Meilleure réponse
Messages postés
8
Date d'inscription
mercredi 3 novembre 2004
Statut
Membre
Dernière intervention
18 juillet 2008
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

Dire « Merci » 3

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

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

Commenter la réponse de benzebuth666
Messages postés
4
Date d'inscription
vendredi 29 août 2003
Statut
Membre
Dernière intervention
18 juillet 2008
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