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

Struts 1 Java Discussion :

Utilisation de son dans une WebApp Struts


Sujet :

Struts 1 Java

  1. #1
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 15
    Points : 8
    Points
    8
    Par défaut Utilisation de son dans une WebApp Struts
    Bonjour,
    Je développe actuellement une webapplication Struts, dans laquelle je voudrais inclure la lecture de "petits sons au format .wav", par exemple : un message de bienvenue lorsqu'un user s'authentifie.
    J'ai trouvé une classe "toute faite" qui fonctionne tres bien (je l'ai testée dans une application java SE).
    Mon problème provient du fait qu'une fois que j'ai voulu implémenter cette fonction dans ma webapplication, il me génère une erreur java.io.filenotfound ... pourtant mon échantillon .wav est placé exactement au même endroit que là ou je l'avais placé pour mon test dans mon appli java SE.
    Voici la classe sound que j'utilise :

    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
     
    package soundpack;
    import java.io.*;
    import javax.sound.sampled.*;
    public class sound {
     
     private AudioFormat format;
     private byte[] samples;
     
     public sound(String filename){
      try{System.out.println("AudioInputStream stream = AudioSystem.getAudioInputStream(new File(filename)); OK?");
                                          AudioInputStream stream = AudioSystem.getAudioInputStream(new File(filename));
                            System.out.println("AudioInputStream stream = AudioSystem.getAudioInputStream(new File(filename)); OK !");
       format = stream.getFormat();
       samples = getSamples(stream);
     
      }
      catch (UnsupportedAudioFileException e){
       e.printStackTrace();
     }
     catch (IOException e){
       e.printStackTrace();
                            System.out.println("prob!");
      }
     }
     
     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();
                            System.out.println("prob2!");
      }
      line.drain();
      line.close();
     }
     
     public static void jouerDRUCKE(){
                System.out.println("Va-t-on trouver le fichier?");
      sound player = new sound("DRUCKE.wav");
      InputStream stream = new ByteArrayInputStream(player.getSamples());
      player.play(stream);
                    System.out.println("bonjour, je joue de la musique");
      //System.exit(0);
     }

    Mon erreur se produit à hauteur de la ligne en gras...donc selon moi il ne trouve aps le fichier...
    Y aurait-il une spécificité a Struts quant à l'endroit ou le placer?
    Autre chose?

    MErci de votre aide..

  2. #2
    Membre actif Avatar de bidi
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 262
    Points : 266
    Points
    266
    Par défaut
    Heuuu ça risque de ne pas faire exactement ce que tu veux je pense ;-p
    Ce code va être exécuté côté serveur et le client ne va rien entendre dutout ^^

    Le plus facile resterait encore d'inclure une balise du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <embed src="welcome.wav" autostart="true" loop="true" hidden="true" height="0" width="0">
    dans ta jsp ^^ (même si c'est pas top la balise embed) je sais qu'il existe aussi bgsound pour IE et y'a p-e son penchant FF je sais pas :-)

  3. #3
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 15
    Points : 8
    Points
    8
    Par défaut
    Remarque très pertiente de bidi!
    On m'y a dailleurs fait pensé aujourd'hui meme !

    J'ai essayé la balise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <embed src="welcome.wav" autostart="true" loop="true" hidden="true" height="0" width="0">
    Ca fonctionne et ca fait exactement ce que je veux...et c'est vachement plus simple ;-)

    Un grand merci pour vos réponses
    @+++

  4. #4
    Membre actif Avatar de bidi
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 262
    Points : 266
    Points
    266
    Par défaut
    Tant mieux :-)

    Bon amusement ;-)

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 29/05/2007, 20h37
  2. Utilisation des fichiers CSS dans une application Struts
    Par menzlitsh dans le forum Struts 1
    Réponses: 4
    Dernier message: 22/09/2006, 16h29
  3. Utilisation de MAX dans une requête SQL
    Par Evil onE dans le forum Langage SQL
    Réponses: 7
    Dernier message: 15/06/2004, 18h38
  4. [ plugin ] Répertoire d'images dans une webapp
    Par mille_furies dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 26/03/2004, 15h41
  5. Réponses: 3
    Dernier message: 11/03/2004, 10h58

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