[AIDE JAVA] Comment faire lire un fichier musique

Fermé
STARloulou Messages postés 106 Date d'inscription jeudi 8 décembre 2011 Statut Membre Dernière intervention 6 janvier 2017 - 27 janv. 2013 à 16:00
fury.95 Messages postés 1 Date d'inscription mercredi 16 décembre 2015 Statut Membre Dernière intervention 16 décembre 2015 - 16 déc. 2015 à 00:21
Bonjour,
J'ai une petite question, c'est a vous de choisir si vous voulez m'aider mais bon, lisez en entier ça vous fera de bien. ^^
Ma question serai que une gentille personne me fasse un petit code en java qui fait :
1 - Télécharger une musique au lancement de l'application
2 - Lire la musique au lancement de l'application (SVP, elle ne s'affiche pas sous un logiciel quelconque comme VLC ou autre, elle est lue sans l'aide d'un logiciel ou elle est lue sans afficher une autre application).
3 - Ne pas lire la musique en boucle, la lire une seule fois.

POSEZ MOI DES QUESTIONS SI VOUS AVEZ BESOIN ET MERCI A CELUI QUI FAIT CELA ! :D

A voir également:

3 réponses

ajp55 Messages postés 426 Date d'inscription dimanche 31 juillet 2011 Statut Membre Dernière intervention 17 février 2015 23
Modifié par crapoulou le 14/05/2014 à 16:03
T'a trouvé la gentille personne dans ce cas

import java.io.DataInputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import javax.sound.sampled.*;

public class Sound {
    private AudioFormat format;
    private byte[] samples;
    /**
     * 
     * @param filename le lien vers le fichier song (URL ou absolute path)
     */
    public Sound(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) {
     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();
    }
}


voilà comment tu l'utilise

public static void main(String[] args) {
       Sound player = new Sound("CLICK.WAV");
     InputStream stream = new ByteArrayInputStream(player.getSamples()); 
    player.play(stream);
}


"L'ordinateur est une grande invention : il y a autant d'erreur qu'avant mais plus personne n'est responsable..."
15
STARloulou Messages postés 106 Date d'inscription jeudi 8 décembre 2011 Statut Membre Dernière intervention 6 janvier 2017 5
27 janv. 2013 à 19:08
Merci encore ^^
La gentille personne s'est manifesté KX XD
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
27 janv. 2013 à 19:15
Comme quoi toi aussi, avec une petite recherche Google tu aurais pu arriver à faire des copier-coller de codes !

http://www.javafr.com/codesource.aspx?ID=29515
https://members.loria.fr/FSur/enseignement/projetJava/Sound.java
etc.

Mais je doute que ceci t'aide à comprendre le Java, et à faire par toi même ce genre de code !
0
STARloulou Messages postés 106 Date d'inscription jeudi 8 décembre 2011 Statut Membre Dernière intervention 6 janvier 2017 5
27 janv. 2013 à 19:49
Juste je l'ajoute ou ?
0
STARloulou Messages postés 106 Date d'inscription jeudi 8 décembre 2011 Statut Membre Dernière intervention 6 janvier 2017 5
28 janv. 2013 à 15:01
UP
0
ajp55 Messages postés 426 Date d'inscription dimanche 31 juillet 2011 Statut Membre Dernière intervention 17 février 2015 23
28 janv. 2013 à 17:25
si tu es satisfai tu peux juste fermer le sujet ou le marquer comme résolu. ton problème n'est pas résolu?
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
27 janv. 2013 à 17:00
Pour le côté "une gentille personne me fasse un petit code en java", tu rêves ! Mais tu pourrais t'intéresser à JavaFX avec par exemple ce tutoriel : Les applications web avec JavaFX (attention : perturbations en cours sur le SdZ).
1
Mikel2000 Messages postés 2 Date d'inscription lundi 9 novembre 2015 Statut Membre Dernière intervention 9 novembre 2015 1
9 nov. 2015 à 18:04
Hello tout le monde,
J'ai trouvé une autre solution pour faire jouer un son .wav (si vous avez un son en .mp3 vous pouvez le convertir à l'aide de certains sites internet en .wav.....) :

import java.io.*;
import javax.sound.sampled.*;

public class Son {


public static void main(String[] args) {
System.out.println("Départ de la musique/son");
JouerLeSon("monSon.wav");
System.out.println("Fin du programme, la musique/son a été jouée!");
}
public static void JouerLeSon(String sonFile) { //la méthode importante qui sert à jouer le son à chaque fois qu'on l'appelle en y passant l'URL du fichier...
SourceDataLine soundLine = null;
int BUFFER_SIZE = 64 * 1024; // 64 KB


try {
File soundFile = new File(sonFile);
AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(soundFile);
AudioFormat audioFormat = audioInputStream.getFormat();
DataLine.Info info = new DataLine.Info(SourceDataLine.class, audioFormat);
soundLine = (SourceDataLine) AudioSystem.getLine(info);
soundLine.open(audioFormat);
soundLine.start();
int nBytesRead = 0;
byte[] sampledData = new byte[BUFFER_SIZE];
while (nBytesRead != -1) {
nBytesRead = audioInputStream.read(sampledData, 0,
sampledData.length);
if (nBytesRead >= 0) {
soundLine.write(sampledData, 0, nBytesRead);
}
}
} catch (UnsupportedAudioFileException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
} catch (LineUnavailableException ex) {
ex.printStackTrace();
} finally {
soundLine.drain();
soundLine.close();
}
}
}

J'espère que ce petit programme vous aidera quand même! (Rien ne vaut d'essayer...)
1