[AIDE JAVA] Comment faire lire un fichier musique

STARloulou Messages postés 106 Date d'inscription   Statut Membre Dernière intervention   -  
fury.95 Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   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 106 Date d'inscription   Statut Membre Dernière intervention   5
 
Merci encore ^^
La gentille personne s'est manifesté KX XD
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   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 106 Date d'inscription   Statut Membre Dernière intervention   5
 
Juste je l'ajoute ou ?
0
STARloulou Messages postés 106 Date d'inscription   Statut Membre Dernière intervention   5
 
UP
0
ajp55 Messages postés 426 Date d'inscription   Statut Membre Dernière intervention   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 16761 Date d'inscription   Statut Modérateur Dernière intervention   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 Date d'inscription   Statut Membre Dernière intervention   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