Jouer flux audio

didoux95 Messages postés 845 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 1 août 2017 - 14 févr. 2007 à 22:34
cs_sikou100 Messages postés 37 Date d'inscription jeudi 8 novembre 2007 Statut Membre Dernière intervention 18 mai 2012 - 21 nov. 2009 à 16:29
Bonjour a tous.
j'utilise l'API javax.sound qui permet de faire diverse choses avec les flux audio.
Mon prbleme c'est que je ne trouve pas le moye de lire un fkyx audio en provenace d'internet (recupere les donnees et les envoyer "vers mes enceintes").

merci.

10 réponses

Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
15 févr. 2007 à 10:01
Salut,

comment tu procède pour le moment? 
en attendant voici un court exemple de comment tu peux initialiser le tout :

import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.DataLine;
//......................

URL url = .....
//creation du stream audio
AudioInputStream audioStream = AudioSystem.getAudioInputStream(url);
//on recup le format audio du flux
AudioFormat audioFormat = audioStream.getFormat();
//si le flux audio est en G711 alaw ou ulaw on le convert en pcm if ((audioFormat.getEncoding() AudioFormat.Encoding.ULAW) || (audioFormat.getEncoding() AudioFormat.Encoding.ALAW)) {
    AudioFormat tmp = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED,
        audioFormat.getSampleRate(), audioFormat.getSampleSizeInBits() * 2,
        audioFormat.getChannels(), audioFormat.getFrameSize() * 2,
        audioFormat.getFrameRate(), true);
    audioStream = AudioSystem.getAudioInputStream(tmp, audioStream);
    audioFormat = tmp;
}
//Création des info pour le clip
DataLine.Info info = new DataLine.Info(Clip.class, audioStream.getFormat(),
        ((int) audioStream.getFrameLength() * audioFormat.getFrameSize()));
//Création du clip
Clip clip = (Clip) AudioSystem.getLine(info);

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
didoux95 Messages postés 845 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 1 août 2017 2
15 févr. 2007 à 17:13
Bonjour.
En fait les quelques bouts de codes que j'avais essaye ne fonctionnaient pas.
A present, ton bout de code ne me donne rien: 
      + Je n'entend rien
      + je n'ai aucune exceptions      + if ((audioFormat.getEncoding() AudioFormat.Encoding.ULAW) || (audioFormat.getEncoding() AudioFormat.Encoding.ALAW)) {
            //Blabla
         }else{
            System.err.println("QQC ...");
         }
         //Ne m'affiche rien.

est ce parce qu'il faut ajoter d'autres choses ?
si oui, les quelles?

merci.
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
15 févr. 2007 à 17:55
Salut,

en java pure tu ne peux lire que du pcm,au,wav,et il y en a d'autre je crois... maintenant si le flux est en mp3, ogg, wma ou autre format compressé tu nas 3 solutions (voir surement d'autres) :
1 tu utilise l'usine à charbon qu'est la jmf.
2 tu utilise une api comme tritonus (je ne pense pas qu'une version windows existe) avec tout ces decodeur (mp3, ogg, pour le wma je ne pense pas)
3 tu te fais une couche jni qui dial avec les api de ton os pour décoder et cracher le son

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
didoux95 Messages postés 845 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 1 août 2017 2
15 févr. 2007 à 18:33
héhéhé....
je pense que je vais etre bloquer car je ne sais pas faire de JNI (et ca ne doit pas s'apprendre du jour au lendemain?), ensuite tritonus n'est effectivement pas supporter par windows et pour finir, je ne sais pas comment on lit des flux audio avec la JMF (j'ai trouver pour du video mais pas pour l'audio).

merci quand même pour tous.

Si il y en a qui connaissent d'autres solutions (ou qui peuvent m'aiclerer sur la JMF ou autre), je suis prenneur.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
15 févr. 2007 à 19:04
Salut,

pour la jmf c'est pas super complex (je ne sais pas si cette version de code dial avec les codecs mp3, ogg, etc..)

(trouvé sur le tutos jmf (en mode applet mais bon tu dois surement pouvoir l'adapter))

 import java.applet.*;

 import java.awt.*;

 import java.net.*;

 import javax.media.*;

 
 
 
 public class PlayerApplet extends Applet implements ControllerListener {

    Player player = null;

 
    public void init() {

      setLayout(new BorderLayout()); 

      try {

        // 2. Create a URL. The URL 

        // class is defined in java.net.

        URL mediaURL = new URL(mediaFile);<-ici tu mets ton fichier

        // 3. Create a player with the URL object.

        player = Manager.createPlayer(mediaURL);

        // 4. Add PlayerApplet as a listener on the new player.

        player.addControllerListener(this);

      } 

      catch (Exception e) {

        System.err.println("Got exception "+e);

      }

    }

 
 
    public void start() {

       player.start();

    }

    public void stop() {

       player.stop();

       player.deallocate();

    }

    public void destroy() {

       player.close();

    }

 public synchronized void controllerUpdate(ControllerEvent event) {

    if (event instanceof RealizeCompleteEvent) {

       Component comp;

       if ((comp = player.getVisualComponent()) != null)

          add ("Center", comp);         

       if ((comp = player.getControlPanelComponent()) != null)

          add ("South", comp);

       validate();

    }

 }

 
 
 }

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
didoux95 Messages postés 845 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 1 août 2017 2
16 févr. 2007 à 19:03
Bonjour.
Ton code a l'air de fonctionner inpec seulement je recoit une erreur qui m'indique que java ne trouve pas de player pour ce flux.
Je ne sais pas trop ce que cela signifi.

Et si non, est que vous sauriez où est ce que je peut trouver un code (JNI) qui me permettrais de lire les MP3 et autre ?

merci
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
16 févr. 2007 à 19:09
Salut,

cherche voir sur google tu trouveras surement (bien qu'il existe un plugin mp3 pour jmf)

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
didoux95 Messages postés 845 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 1 août 2017 2
16 févr. 2007 à 21:31
Re.
a vraie dire, je n'ai pas trouver grand chose en tapant "java JNI lire MP3" dans google.
est ce que tu pourrais m'indiquer un site que tu connaitrais deja qui est pas mal (ou autre chose dans le genre)?

merci
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
16 févr. 2007 à 21:40
Salut,

je sais pas moi c'est pas si dure de chercher ....

la recherche ICI
le résultat ICI (sans jmf mais compatible jdk 1.5 et j2me) ou encore ICI(avec jmf)

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
cs_sikou100 Messages postés 37 Date d'inscription jeudi 8 novembre 2007 Statut Membre Dernière intervention 18 mai 2012
21 nov. 2009 à 16:29
bonjour a tous

j'ai un problème est ce que quelqu'un peut m'aider s'il vous plais
" j'ai un projet ou je réalisé une application qui permet a un homme de remplir une formulaire non par taper des texte a partir de clavier mais par voix(capture et analyse de le la voix)

c-à-d
dans un champ un il prononce son nom et l'application capte c'est qui a dit et remplir la formulaire automatiquement
0
Rejoignez-nous