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 :

JavaSound Clip : Comment le stopper automatiquement ?


Sujet :

Multimédia Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2009
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Avril 2009
    Messages : 88
    Par défaut JavaSound Clip : Comment le stopper automatiquement ?
    Bonjour, je cherche une solution pour arrêter de lire mon Clip à un moment donnée (par exemple 12.5s) où comment le lire pendant n secondes.

    J'ai une solution mais qui est relativement bloquante...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public void readAudioPiece(double start, double stop){
    		// Convertir les secondes en micro-secondes
    		long microsecStart = (long)(start * 1000.0d * 1000.0d);
    		long microsecStop = (long)(stop * 1000.0d * 1000.0d);
    		
    		// Placement du début
    		soundClip.setMicrosecondPosition(microsecStart);
    		soundClip.start();
    		// Attendre jusqu'à atteindre la fin du mot
    		while(soundClip.getMicrosecondPosition() < microsecStop){} // TODO:  Trouver solution non bloquante
    		soundClip.stop();
    	}
    Avec cette solution, l'utilisateur est bloqué pendant la lecture. Ce qui peut être embêtant lors de lecture supérieure à quelques secondes...

    Bien entendu, je ne veux pas passer par un bouton.

    Une idée ?
    Cdlt, Bastien.

  2. #2
    Membre confirmé
    Inscrit en
    Avril 2009
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Avril 2009
    Messages : 88
    Par défaut
    Je vois une solution. Mais elle ne me convient pas.

    Utiliser la méthode : Clip.setLoopPoints(int start, int end);

    et ensuite lire un seul tour de boucle...

    Cette solution ne me convient pas car elle utilise l'indice des frames et non une unité de temps.
    Je sais qu'il est possible de les convertir, mais comme on peux le voir sur mon sujet précédent, j'obtiens un bruit lors de la conversion...

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 46
    Par défaut
    Ce qui bloque c'est évidemment la boucle. Perso j'aime pas les boucle comme ça parce que ça bouffe pas mal en ressources, si je dois le faire j'ajoute un Thread.sleep(100); généralement.

    Ensuite, si tu veux pas que ta boucle soit bloquante, il faut l'exécuter dans un thread à part si possible et arrêter le player à la fin du thread, comme ca l'utilisateur continu à travailler.

  4. #4
    Membre confirmé
    Inscrit en
    Avril 2009
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Avril 2009
    Messages : 88
    Par défaut
    Merci de ta réponse.

    Je n'avais pas penser à thread.sleep(millisec) !
    je vais donc remplacer ma boucle par un thread.sleep(fin-début).

    Je te tiens au courant.

    EDIT: Ça fonctionne impeccable !
    Merci beaucoup et bonne journée
    Bastien.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. comment faire disparaitre automatiquement l'initialisation Activex
    Par ludo_84 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/05/2007, 12h44
  2. comment lancer/fermer automatiquement un script Perl?
    Par megapacman dans le forum Langage
    Réponses: 2
    Dernier message: 22/08/2006, 15h10
  3. Comment d'afficher automatiquement les macro présentes dans une BDD?
    Par Stéphane Olivier BERNARD dans le forum Access
    Réponses: 3
    Dernier message: 03/07/2006, 14h49
  4. Réponses: 6
    Dernier message: 25/02/2006, 15h30
  5. Comment s'authentifier automatiquement aupres de HTACCESS ?
    Par Gerard du Bouchonnois dans le forum Web
    Réponses: 6
    Dernier message: 05/08/2005, 02h35

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