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

AWT/Swing Java Discussion :

JprogressBar lors d'un enregistrement audio


Sujet :

AWT/Swing Java

  1. #1
    Membre du Club Avatar de undercrash
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 156
    Points : 64
    Points
    64
    Par défaut JprogressBar lors d'un enregistrement audio
    Bonjour,
    dans un programme ou je capture su son je souhaite afficher une progressbar.
    Ma capture de son dure exactement 1,5 seconde.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    stateHelper.playToEndOfMedia(1500);
    Je souhaiterais faire progresser ma barre durant 1,5 seconde pendant l'enregistrement.
    J'ai essayé de faire celà en modifiant la valeure de la barre pendant mon traitement mais la progression se fait seulement à la fin de l'enregistrement.

    Avez-vous une solution ?

    Cordialement
    Il n'y aurait pas plus heureux qu'un élève qui ,comme la rivière, pourrait suivre son cours sans sortir de son lit.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 68
    Points : 58
    Points
    58
    Par défaut
    Il m'est arrivé le même problème.
    En fait tu dois lancer la progression de ta barre de chargement dans un nouveau Thread.
    Pour ma part, j'ai fait une barre de décompte, qui change de couleur (vert->jaune->orange->rouge) au fur et à mesure du décompte
    Voici le code :
    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
     
     
       import javax.swing.*;
       import java.awt.*;
       import java.awt.event.*;
       import java.awt.color.*;
     
     
        public class BarreChargement extends JPanel implements Runnable
       {
     
          private JProgressBar progressBar;
     
        //durée en ms du décompte  
          private int dureeMS ;
     
       //dimensions et nombre d'unités
          private final int WIDTH = 100 ;
          private final int HEIGHT = 20 ;
          private final int NB_UNITS = 100 ; 
     
       //couleurs progressives lors du décompte
          private final Color FIRST_COLOR = Color.green ;
          private final Color SECOND_COLOR = Color.yellow ;
          private final Color THIRD_COLOR = Color.orange ;
          private final Color FOURTH_COLOR = Color.red ;
     
       //seuils de changement de couleur 
          private final int FIRST_TRESHOLD = 40 ;
          private final int SECOND_TRESHOLD = 65 ;
          private final int THIRD_TRESHOLD = 80 ;
     
       //thread éxécutant la progression
          private Thread self ;
     
           public BarreChargement (int positionX, int positionY, int dureeMS)
          {
          	//attribution de la durée
             this.dureeMS = dureeMS ;
     
          	//création de la progressBar
             progressBar = new JProgressBar (0, NB_UNITS);  
             progressBar.setBounds (0,0, WIDTH,HEIGHT);
             progressBar.setValue(NB_UNITS);
             progressBar.setForeground(FIRST_COLOR);
     
          	//création du panel acceuillant la progressBar
             setLayout(null);
             setBounds (positionX, positionY, WIDTH,HEIGHT);
             add (progressBar);
     
             setVisible (true);
     
          	//création et lancement du Thread de progression
             self = new Thread (this);
             self.start ();
     
     
          }
     
     
     
           public void run ()
          {	 
             for (int i = 0; i < NB_UNITS; i++){	
     
             	//on attend une unité de temps
                try{	
                   self.sleep ((long)(dureeMS/NB_UNITS));
                }
                    catch (InterruptedException e){}
     
             	//on met à jour la progressBar
                progressBar.setValue(progressBar.getValue()-1); 
     
             	//on change la couleur si nécessaire
                if(i==FIRST_TRESHOLD)
                   progressBar.setForeground(SECOND_COLOR);
                else if(i==SECOND_TRESHOLD)
                   progressBar.setForeground(THIRD_COLOR);
                else if(i==THIRD_TRESHOLD)
                   progressBar.setForeground(FOURTH_COLOR);
             }
     
          }
     
     
           public static void main(String[] args){//main pour tester
             JFrame frame = new JFrame();
             frame.setSize(200,200);
     
             frame.getContentPane().add(new BarreChargement(0,0,5000));
             frame.setVisible(true);
          }
     
       }
    La barre de chargement se présente sous forme de JPanel que tu peux greffer n'importe où, comme je l'ai fait dans le main pour la tester...

  3. #3
    Membre du Club Avatar de undercrash
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 156
    Points : 64
    Points
    64
    Par défaut
    Ok merci je vais essayer celà dès demain !!!

    Merci encore
    Il n'y aurait pas plus heureux qu'un élève qui ,comme la rivière, pourrait suivre son cours sans sortir de son lit.

  4. #4
    Membre du Club Avatar de undercrash
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 156
    Points : 64
    Points
    64
    Par défaut
    La barre fonctionne parfaitement.
    Le seul probleme c'est que je veux lancer cette barre lors d'un appui sur un bouton Start qui appel une fonction RecordNow() qui permet d'enregistrer le son provenant d'un microphone.

    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
     
    private JButton getJButtonStart() 
    	{
    		if (jButtonStart == null) 
    		{
    		jButtonStart = new JButton();
    		jButtonStart.setLocation(new Point(20, 164));
    		jButtonStart.setText("Start");
    		jButtonStart.setSize(new Dimension(171, 100));
    		jButtonStart.addMouseListener(new java.awt.event.MouseAdapter()
    			{
    				public void mousePressed(java.awt.event.MouseEvent e) 
    				{		
    				        getContentPane().add(new BarreChargement(20,120,4000));
    					RecordNow();
     
    				}
    			});
    		}
    		return jButtonStart;
    	}
    Quand je lance ce bout de code la barre ne s'affiche qu'à la fin de l'enregistrement.
    Il n'y aurait pas plus heureux qu'un élève qui ,comme la rivière, pourrait suivre son cours sans sortir de son lit.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 82
    Points : 52
    Points
    52
    Par défaut
    meme probleme pour moi meme si le source est different, je veux afficher une attente lors du chargement d'une image avec le mediaTracker, je créé un thread mais il ne se lance que lorsque l'image est chargée

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 68
    Points : 58
    Points
    58
    Par défaut
    Essaye de lancer ta méthode record now dans un thread à part :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     public void mousePressed(java.awt.event.MouseEvent e) 
                      {		
     
                         getContentPane().add(new BarreChargement(20,120,4000));
                         Thread threadRecord = 
                             new Thread(){
                                public void run(){
                                  RecordNow();
                               }
                            };
                         threadRecord.start();
                      }
    ou, plus proprement, de modifier ton recorder pour qu'il soit runnable.

  7. #7
    Membre du Club Avatar de undercrash
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 156
    Points : 64
    Points
    64
    Par défaut
    ça fonctionne parfaitement


    Merci
    Il n'y aurait pas plus heureux qu'un élève qui ,comme la rivière, pourrait suivre son cours sans sortir de son lit.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Algo] Rupture de flux lors de l'enregistrement
    Par ced00 dans le forum Langage
    Réponses: 5
    Dernier message: 06/02/2005, 03h29
  2. pb lors d'un enregistrement
    Par Little-Freud dans le forum Access
    Réponses: 3
    Dernier message: 27/10/2004, 02h27
  3. Retourner l'ID lors de l'enregistrement
    Par nmerydem dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 28/09/2004, 10h20
  4. Réponses: 1
    Dernier message: 23/02/2004, 12h58

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