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

avec Java Discussion :

génerer un son


Sujet :

avec Java

  1. #1
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 52
    Par défaut génerer un son
    Bonjour,
    Je veut produire un son d'alerte lors de l'affichage d'une boite de dialogue qui indique une rupture en stock je pense que je doit importer java.sound mais je ne sais pas comment coder.pouvez vous me donner les méthodes ou un bout de code qui permettre cela .

  2. #2
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 66
    Par défaut
    Bonjour sarah,
    pour résoudre ton probleme:tu peut ajouter la classe son.java suivant à ton projet:
    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
    import java.io.*;
    import javax.sound.sampled.*;
     
    public class son extends Thread {
      String s;
      public son(String s) {
        this.s=s;
      }
      public void  run(){
         try
         {
           Sound1 player = new Sound1(s);
           InputStream stream = new ByteArrayInputStream(player.getSamples());
           player.play(stream);
           //System.exit(0);
           sleep(20);
         }
         catch(Exception e){
         }
     
       }
    }
    en suite tu peut l'utiliser dans les autre classe pour déclencher un événement sonore à partir d'un fichier audio(.wav par exemple).
    par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    son s=new son("eureur.wav");
             s.start();
            JOptionPane.showMessageDialog(null,"ici tu met ton message d'erreur","Erreur des saisie!",JOptionPane.ERROR_MESSAGE);
    j'espère que ça répond a ta question.

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 52
    Par défaut
    merci mais ça n'a pas marché.
    d'abord je veut savoir ou je doit mettre le fichier son;
    Et puis le constructeur d'objet Sound1 n'est pas défini.
    je l'est changé par son player= new son (s) je ne sait pas si c'est correcte mais il y'a encore des erreurs (player.getSamples()) le getSamles n'est pas accepté.
    et aussi player.play(stream);

  4. #4
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 66
    Par défaut sound1.java
    Et puis le constructeur d'objet Sound1 n'est pas défini.

    Oui tu a raison, je m'excuse j'ai oublier de te donner la classe sound1.java:

    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
    import java.io.*;
    import javax.sound.sampled.*;
     
     
    public class Sound1 extends Thread {
     
        private AudioFormat format;
        private byte[] samples;
     
        public Sound1(String filename){
            try{
                AudioInputStream stream = AudioSystem.getAudioInputStream(new File(filename));
                format = stream.getFormat();
                samples = getSamples(stream);
            }
            catch (UnsupportedAudioFileException e){
                e.printStackTrace();
        }
        catch (IOException e){
                e.printStackTrace();
            }
        }
     
        public byte[] getSamples(){
            return samples;
        }
     
        public byte[] getSamples(AudioInputStream stream){
            int length = (int)(stream.getFrameLength() * format.getFrameSize());
            byte[] samples = new byte[length];
            DataInputStream in = new DataInputStream(stream);
            try{
                in.readFully(samples);
            }
            catch (IOException e){
                e.printStackTrace();
            }
            return samples;
        }
     
     
        public void play(InputStream source){
            // 100 ms buffer for real time change to the sound stream
            int bufferSize = format.getFrameSize() * Math.round(format.getSampleRate() / 10);
            byte[] buffer = new byte[bufferSize];
            SourceDataLine line;
            try{
                DataLine.Info info = new DataLine.Info(SourceDataLine.class, format);
                line = (SourceDataLine)AudioSystem.getLine(info);
                line.open(format, bufferSize);
            }
            catch (LineUnavailableException e){
                e.printStackTrace();
                return;
            }
            line.start();
            try{
                int numBytesRead = 0;
                while (numBytesRead != -1){
                    numBytesRead = source.read(buffer, 0, buffer.length);
                    if (numBytesRead != -1)
                        line.write(buffer, 0, numBytesRead);
                }
            }
            catch (IOException e){
                e.printStackTrace();
            }
            line.drain();
            line.close();
        }
     
     
    }
    En ce qui concerne l'emplacement du fichier son, tu doit le placer dans ton projet(même répertoire au se trouve les rep src et classes).

    Quelle environnement utilise-tu?

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 52
    Par défaut
    Je travaille avec Jbuilder 9 j'ai pas encore essayer vot code merci bien pour votre aide.

Discussions similaires

  1. génerer un son
    Par sarah_insat dans le forum Général Java
    Réponses: 1
    Dernier message: 28/03/2008, 06h42
  2. ecrire son OS (assembleur ??)
    Par Anonymous dans le forum Programmation d'OS
    Réponses: 9
    Dernier message: 25/11/2002, 19h25
  3. Réponses: 2
    Dernier message: 06/07/2002, 12h36
  4. Existe t'il un composant permettant de jouer un son wav?
    Par scorpiwolf dans le forum C++Builder
    Réponses: 5
    Dernier message: 20/06/2002, 14h10
  5. Aquisition de son
    Par don-diego dans le forum DirectX
    Réponses: 1
    Dernier message: 20/06/2002, 09h16

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