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 :

Jouer de la musique


Sujet :

Multimédia Java

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Septembre 2014
    Messages : 11
    Points : 7
    Points
    7
    Par défaut Jouer de la musique
    Bonjour

    J ai fait un programme ecouter un ficher wav .mon probleme c est que sa ne fonctionne pas et le message d erreur est :

    could not get audio input stream from input file

    Pouvez vous M aider à résoudre ce problème ?

    Merci d'avance avance

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 854
    Points
    22 854
    Billets dans le blog
    51
    Par défaut
    Qu'est-ce que tu utilises pour lire ton fichier WAV ? Java Sound ? JavaFX ? Java Media Framework ?
    Es-tu sur que ton fichier utilise un codec qui soit supporté par la lib Java que tu tentes d’utiliser ?
    Est-il endommagé ? (peux-tu lire son contenu dans un lecteur audio autre ?)

    WAV c'est comme AVI, c'est un conteneur (une manière de stocker les données), ce qui est dedans peut être encodé avec des formats différents. Voir JMF 2.1.1 - Supported Formats pour les encodages supportés par JMF. Voir également la page JavaSound sur StackOverflow.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Septembre 2014
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    merci de ta réponse pour faire simple .

    mon fichier ce lit bien sur windows

    voici mon code :

    Dans main :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public class Main {
    	public static void main(String[] args) {
    		Audio audio = new Audio("sample.wav");
    		audio.run();
     
    	}
     
    }
    Dans audio


    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
    public void run(){
        	if(isSet){
        	SourceDataLine line;
        	File file;
        	final AudioInputStream audioInputStream;
        	AudioFormat audioFormat;
        	  file = new File(path);
        	  try{
        		  audioInputStream = AudioSystem.getAudioInputStream(file);}
        	      catch (UnsupportedAudioFileException e) {
        	    	  e.printStackTrace();
        	    	  return;}
        	      catch (IOException e) {
        	    	  e.printStackTrace();
        	    	  return;}
        	 audioFormat = audioInputStream.getFormat();
        	 DataLine.Info info = new DataLine.Info(SourceDataLine.class, audioFormat);
        	 try{
        		 line = (SourceDataLine) AudioSystem.getLine(info);}
        	     catch (LineUnavailableException e){
        		     e.printStackTrace();
        		     return;}
     
        	 try{line.open(audioFormat);}
        	 catch (LineUnavailableException e) {
        	 e.printStackTrace();
    		 return;}
        	 line.start();
        	 try {
        		 byte bytes[] = new byte[5];
        		 int bytesRead=0;
        		 while ((bytesRead = audioInputStream.read(bytes, 0, bytes.length)) !=-1) {
        			 line.write(bytes, 0, bytesRead);}}
        	catch (IOException io){
        	io.printStackTrace();
        	 return;}
        	 line.close();   	    	  
        	  }
        }
    }
    merci d'avance pour vos réponse et résoudre mon probleme

  4. #4
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 854
    Points
    22 854
    Billets dans le blog
    51
    Par défaut
    Pour être précis, avec le fichier de test que j'ai utilise, on se tape une javax.sound.sampled.UnsupportedAudioFileException: could not get audio input stream from input file, et donc l'exception indique bien que le format n'est pas supporté par JavaSound. L'exception donne d'ailleurs un message un peu plus precis quand on tente d'utiliser JavaFX* pour lire le fichier : MediaException: MEDIA_UNSUPPORTED : Compressed WAVE is not supported! qui survient des la création du média.

    Donc pour arriver a le lire, vu que je ne sais pas comment ajouter des format dans JavaSound (ni meme si c'est possible**), il faut utiliser le Java Media Framework
    JMF -> Downloads -> Download -> accept -> j'ai pris la version Cross-platform Java -> ajouter lib/jmf.jar dans les dépendances du 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
    public void runJMF() {
        if (isSet) {
            try {
                final File file = new File(path);
                //System.out.println(file.exists());
                final MediaLocator mediaLocator = new MediaLocator(file.toURI().toURL());
                final Player player = Manager.createRealizedPlayer(mediaLocator);
                player.prefetch();
                player.start();
            } catch (IOException | NoPlayerException | CannotRealizeException ex) {
                Logger.getLogger(Audio.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }
    *Pour lire avec JavaFX :

    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 runFX() {
        if (isSet) {
            try {
                final File file = new File(path);
                System.out.println(file.exists());
                final Media media = new Media(file.toURI().toURL().toExternalForm()); // La MediaException est levée ici.
                final MediaPlayer player = new MediaPlayer(media);
                player.play();
            } catch (Throwable ex) {
                Logger.getLogger(Audio.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }
    **EDIT - En théorie, il semble que oui, par contre du coup il faut trouver qqun qui mettrai a disposition ces filtres ou codec... Voir peut-être musicg (pas testé). Voir également Java Wav File IO.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/05/2007, 09h44
  2. comment jouer de la musique en java
    Par kamos dans le forum Multimédia
    Réponses: 2
    Dernier message: 13/12/2006, 12h46
  3. jouer de la musique dans JAVA
    Par sboffin dans le forum Multimédia
    Réponses: 3
    Dernier message: 15/10/2006, 23h34
  4. [flash]Jouer de la musique
    Par torNAdE dans le forum Intégration
    Réponses: 1
    Dernier message: 10/05/2006, 12h41
  5. Jouer un fichier musique sous la console
    Par angsthase dans le forum C++
    Réponses: 2
    Dernier message: 17/02/2006, 16h58

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