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 :

[Audio]Lire des fichiers sons


Sujet :

Multimédia Java

  1. #1
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    106
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 106
    Points : 66
    Points
    66
    Par défaut [Audio]Lire des fichiers sons
    Salut,

    J'ai créé un tableau de AudioClip.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AudioClip []=new AudioClip[20];
    Dans la méthode init() de ma classe (extends JApplet), j'écris

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    audio[(int)(20*Math.random)].play();
    ce qui a pour conséquence de lire un fichier audio.

    Comment faire pour que quand la lecture du fichier son est terminée, java enchaîne avec un nouveau son ? (si possible jouer tous les sons de mon tableau au moins une fois avant d'en rejouer un)

    Merci

  2. #2
    Membre actif Avatar de scifire
    Inscrit en
    Juillet 2004
    Messages
    226
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 226
    Points : 245
    Points
    245
    Par défaut
    J'espere que c'est ca ce que tu cherches:
    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
     
    package dev;
     
    import java.util.ArrayList;
    import java.util.Random;
     
    public class Main {
    	private static final int MAX = 20;
     
    	/**
             * @author PETROV Petar
             * @param args
             */
    	public static void main(String[] args) {
    		ArrayList list = new ArrayList(MAX);
    		int[] result = new int[MAX];
    		int index = 0;
    		Random random = new Random();
    		for (int i = 0; i < result.length; i++) {
    			list.add(new Integer(i+1));
    		}
    		for (int i = 0; i < result.length; i++) {
    			index = random.nextInt(list.size());
    			result[i] = ((Integer)list.get(index)).intValue();
    			list.remove(index);
    		}
    	}
    }
    J'ai Java 1.4.2 voila pourquoi je n'utilise pas les generiques.
    Even the biggest journey, starts with a single step.

  3. #3
    Membre actif Avatar de scifire
    Inscrit en
    Juillet 2004
    Messages
    226
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 226
    Points : 245
    Points
    245
    Par défaut
    Et dans ton cas concret
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    		AudioClip[] clips = new AudioClip[20];
    		while (true) {
    			for (int i = 0; i < clips.length; i++) {
    				clips[i].play();
    			}
    		}
    A+
    Even the biggest journey, starts with a single step.

  4. #4
    Membre actif Avatar de scifire
    Inscrit en
    Juillet 2004
    Messages
    226
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 226
    Points : 245
    Points
    245
    Par défaut
    Il y a une methode plus simple et plus performante.La voila:
    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
     
    package dev;
     
    public class Main {
    	private static final int MAX = 20;
     
    	/**
             * @author PETROV Petar
             * @param args
             */
    	public static void main(String[] args) {
    		int[] result = new int[MAX];
    		int index = 0;
    		for (int i = 0; i < result.length; i++) {
    			result[i] = i+1;
    		}
    		for (int i = 0; i < result.length; i++) {
    			index = i + (int) (Math.random() * (MAX - i));
    			int temp = result[index];
    			result[index] = result[i];
    			result[i] = temp;
    		}
    	}
    }
    C'est la methode que le iPod Shuffle utilise.
    Even the biggest journey, starts with a single step.

  5. #5
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    106
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 106
    Points : 66
    Points
    66
    Par défaut
    Merci scifire pour ton aide.
    Mais le problème n'est pas résolu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while (true){
             for (int i = 0; i < clips.length; i++) 
                clips[i].play(); 
    }
    Ce code fait que lorsque je lance mon applet, tous les sons sont joués en même temps. Imagine un peu le résultat...

    Je ne comprends pas comment fonctionne la méthode de l'iPod ou tout du moins comment elle pourrait m'aider...
    Je rappelle ce que j'ai actuellement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    AudioClip []audio=new AudioClip[20];
    audio[0]=getAudioClip(getCodeBase),"blabla1.mid");
    audio[1]=getAudioClip(getCodeBase),"blabla2.mid");
    etc...
    audio[(int)(20*Math.random)].play();
    Ainsi, lorsque le son est terminé, il n'y en a plus. Il faudrait donc que ça enchaine avec un autre.

    Merci

  6. #6
    Membre actif Avatar de scifire
    Inscrit en
    Juillet 2004
    Messages
    226
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 226
    Points : 245
    Points
    245
    Par défaut
    Je vois pas comment on peut resoudre le probleme car si tu regarde la documentation de Java et surtout celle de l'interface AudioClip tu verras le suivant :
    Multiple AudioClip items can be playing at the same time, and the resulting sound is mixed together to produce a composite.
    Ca veut dire qu'avec plusiers AudioClips il est inevitable des ne pas le melanger.Desole.Peut-etre un solution est si tu sais la duree de chaque clip.Tu ferra quelque chose de ce type:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    		while (true) {
    			for (int i = 0; i < clips.length; i++) {
    				clips[i].play();
    				try {
    					Thread.sleep(duree[i]);
    				} catch (Exception e) {
    					e.printStackTrace();
    				}
    			}
    		}
    Ou duree[i] te renvoie le duree du clip correspondant.
    Juste un proposition.

    A+
    Even the biggest journey, starts with a single step.

  7. #7
    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
    J'ai peur que de la gestion des AudioClip soit un peu trop simple pour ce que tu veux (une lecture bloquante et peut-etre une gestion des durees).

    Il te faut peut-etre voir du cote de JavaSound et du Media Framework. Ca devrait te permettre de gerer tes objets musicaux de maniere plus fine.
    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. Lire des fichiers sons de façon séquentielle
    Par gerard1638 dans le forum JavaFX
    Réponses: 2
    Dernier message: 29/08/2014, 08h26
  2. lire des fichiers son en C
    Par agilec dans le forum C
    Réponses: 8
    Dernier message: 30/08/2009, 15h23
  3. [Audio] Gérer des fichiers sons en Java
    Par womannosky dans le forum Multimédia
    Réponses: 8
    Dernier message: 04/08/2008, 15h06
  4. Créer logiciel pour lire des fichiers audios (mp3 et compagnie)
    Par valebl dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 30/05/2007, 11h12
  5. connexion adsl sous linux et lire des fichiers audio video
    Par Norouldarayni dans le forum Applications et environnements graphiques
    Réponses: 1
    Dernier message: 14/04/2007, 06h20

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