IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Multimédia Java Discussion :

Lecture d'un fichier son.. plusieurs fois


Sujet :

Multimédia Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 28
    Points : 22
    Points
    22
    Par défaut Lecture d'un fichier son.. plusieurs fois
    Salut !
    J'utilise pour mon application cette classe:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    import javax.sound.sampled.*; 
    import java.io.*; 
    import java.net.*;   
     
    public class Son 
    {  
    	private String url; 
    	private Clip clip; 
     
    	public Son(String s)
    	{  
    		url = s; 
    		try  
    		{  
    			AudioInputStream stream = AudioSystem.getAudioInputStream(new File(url)); 
    			AudioFormat format = stream.getFormat(); 
    			DataLine.Info info = new DataLine.Info(
    			  Clip.class, stream.getFormat(), ((int)stream.getFrameLength()*format.getFrameSize())
    			);
    			clip = (Clip) AudioSystem.getLine(info); 
    			clip.open(stream); 
    		} 
    		catch (Exception e) {}  
    	}  
     
    	/** * Joue le son associé */  
    	public void jouer()
    	{   
    		try { clip.start(); } 
    		catch (Exception e) {}
    	}
    }
    qui me permet de lire un fichier son lorsque je clique sur un bouton.

    Le problème c'est que cela ne fonctionne qu'une seule fois: si je reclique sur le bouton il ne se passe rien. Savez-vous pourquoi ?

    Voici le code de mon ecouteur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    import java.awt.event.*;
    import javax.swing.event.*;
    import javax.swing.*;
     
    public class EcouteurCase extends MouseAdapter
    {
    	private Grille GrilleRecup;
    	private int ValRetour = 0;
     
    	private Son son1 = new Son("sons/son1.wav");
    	private Son son2 = new Son("sons/son2.wav");
    	private Son son3 = new Son("sons/son3.wav");
     
    	EcouteurCase(Grille g)
    	{
    		this.GrilleRecup = g;
    	}
     
    	public void mouseClicked(MouseEvent e)
    	{
    			ValRetour = GrilleRecup.QuelSon();
    			switch(ValRetour)
    			{
    				case 1: son1.jouer();
    				break;
    				case 2: son2.jouer();
    				break;  
    				case 3: son3.jouer();
    				break;
    			}
    	}
    }
    Merci, @+

  2. #2
    Membre chevronné
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Points : 2 208
    Points
    2 208
    Par défaut
    Mets plutôt un ActionListener à ton bouton plutôt qu'un MouseListener .

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 28
    Points : 22
    Points
    22
    Par défaut
    Ok mais ca ne change rien

  4. #4
    Membre expérimenté Avatar de BainE
    Inscrit en
    Mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1 327
    Points : 1 572
    Points
    1 572
    Par défaut
    Salut,

    je connait pas l'API utilisé, mais je vois que tu ne ferme pas le flux.
    Peut etre que c'est la que ca plante quand il essaye d ouvrir un flux deja ouvert

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 28
    Points : 22
    Points
    22
    Par défaut
    C'est ce que j'avais supposé mais comment fermer le flux apres la lecture du fichier ?

    Merci @+

  6. #6
    Membre régulier
    Inscrit en
    Avril 2009
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Avril 2009
    Messages : 88
    Points : 71
    Points
    71
    Par défaut
    Un peu tard pour répondre, mais j'imagine que ça peut quand même aider quelqu'un d'autre...

    Il suffit que tu stoppe le clip après l'avoir lu une fois.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public void jouer(){   
    		try {
     			clip.start();
    			clip.drain(); // Attend la fin de la lecture
    			clip.stop();
    		} 
    		catch (Exception e) {}
    	}

Discussions similaires

  1. lecture d'un fichier par plusieurs thread
    Par LastSpear dans le forum Bibliothèque standard
    Réponses: 2
    Dernier message: 22/12/2010, 16h17
  2. Lecture d'un fichier par plusieurs threads
    Par vinzzzz dans le forum Général Java
    Réponses: 7
    Dernier message: 09/10/2009, 16h09
  3. Lecture d'un seul fichier son à la fois
    Par dark_nights dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 12/04/2008, 10h32
  4. lecture d'un fichier son sous dev-cpp
    Par yashiro dans le forum Dev-C++
    Réponses: 4
    Dernier message: 02/05/2006, 17h26
  5. Lecture d'un fichier son
    Par benib8 dans le forum Langage
    Réponses: 2
    Dernier message: 11/09/2005, 18h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo