Besoin correction: erreur lecture fichier wav

Signaler
Messages postés
18
Date d'inscription
samedi 29 mars 2003
Statut
Membre
Dernière intervention
1 juillet 2019
-
Messages postés
28
Date d'inscription
vendredi 10 mars 2006
Statut
Membre
Dernière intervention
1 mars 2007
-
Rebonsoir, je viens à nouveau vous embeter avec mes questions ;-)

J'ai programmé une petite classe sound pour lire facilement des fichiers wav mais[vous vous attendiez quand même pas à ce que ca marche du 1er coup :-p] lors de la création demon object Sound, j'obtient une MalformedURLException no protocol: monSon.wav

J'ai cherché[un peu] dans l'aide du JDK, mais je trouve rien qui correspond.
Si qqun arriver à me dire d'ou vient cette erreur, ca m'aiderait bcps.

/*************************************************

Nom     :   Sound.java
Auteur  :   Switch - switch@netplus.ch
Date    :   26/07/03
Version :   test
Descr.  :   Objet Sound permettant de jouer un son wav facilement
Bug     :   Creation d'un objet             Sound monSon new Sound("monSon.wav") ;>
            
            java.net.MalformedURLException: 
            no protocol: monSon.wav

************************************************/
import java.applet.Applet ;
import java.applet.AudioClip ;
import java.net.URL ;
import java.net.MalformedURLException ;

public class Sound
    {
    private URL file ;
    private AudioClip sound ;

    public Sound(String name) throws MalformedURLException
        {
        try
          {
            file = new URL(name) ;
            sound = Applet.newAudioClip(file) ;
          }
          catch (MalformedURLException e)
          {
          System.err.println("Unable to select targeted file") ;
          }
        }

    public URL getFile()
        {return file ;}

    public AudioClip getSound()
        {return sound ;}
        
    public void setFile(String name)
        {
        try
          {
          file = new URL(name) ;
          }
        catch (MalformedURLException e)
          {
          System.err.println("Unable to select targeted sound") ;
          }
        }

    public void setSound(URL file)
        {sound = Applet.newAudioClip(file) ;}

    public void playSound()
        {sound.play() ;}

    public void loopSound()
        {sound.loop() ;}
        
    public void stopSound()
       {sound.stop() ;}
    }


Voila, si qqun trouve la solution, j'en fairai un petit zip avec la source pour le site.
Merci

4 réponses

Messages postés
2336
Date d'inscription
samedi 14 juillet 2001
Statut
Membre
Dernière intervention
5 mai 2009
6
tu dois mal envoyer le lie pour downloader le son, tu envoi quoi comme lien ???
Messages postés
18
Date d'inscription
samedi 29 mars 2003
Statut
Membre
Dernière intervention
1 juillet 2019

Tu entends quoi par lien ? l'URL ?

Comme noté je créé un objet comme suit

Sound monSon = new Sound("path/monSon.wav") ;


Et le constructeur utilise le string envoyé en argument pour en faire une URL, et utilise cette URL pour cree un newAudioClip. Sans le try{}catch{} ca donne ca:

public Sound(String name) throws MalformedURLException
   {
   file = new URL(name) ;
   sound = Applet.newAudioClip(file) ;
   }


la declaration des objets

private URL file ;
private AudioClip sound ;
Messages postés
18
Date d'inscription
samedi 29 mars 2003
Statut
Membre
Dernière intervention
1 juillet 2019

C'est bon, j'ai trouvé.
Le problème vient de la manière de spécifier l'URL. Il est insuffisant de noter par exemple "c:/tada.wav" .
Java ne reconnaitra alors pas le protocole[d'ou mon erreur]. Il faut noter "file://tada.wav" s'il s'agit d'un fichier, ou alors "http://blablalba.thm" par exemple... logique et tout bete ;-)
Messages postés
28
Date d'inscription
vendredi 10 mars 2006
Statut
Membre
Dernière intervention
1 mars 2007

Malgré ceci ça ne marche toujours pas ! Je met "file://tada.wav" ou "file://c:/tada.wav" mais j'ai toujours l'erreur "...MalformedURLException must be caught or declared to be thrown".
Aidez moi please