[AIDE JAVA] Comment faire lire un fichier musique

STARloulou Messages postés 120 Statut Membre -  
fury.95 Messages postés 1 Statut Membre -
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 482 Statut Membre 23
 
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 120 Statut Membre 5
 
Merci encore ^^
La gentille personne s'est manifesté KX XD
0
KX Messages postés 19031 Statut Modérateur 3 020
 
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 120 Statut Membre 5
 
Juste je l'ajoute ou ?
0
STARloulou Messages postés 120 Statut Membre 5
 
UP
0
ajp55 Messages postés 482 Statut Membre 23
 
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 19031 Statut Modérateur 3 020
 
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 Statut Membre 1
 
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