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

Android Discussion :

comment jouer plusieurs sons les uns après les autres


Sujet :

Android

  1. #1
    Candidat au Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 2
    Points : 3
    Points
    3
    Par défaut comment jouer plusieurs sons les uns après les autres
    Bonjour,

    Voilà, tout est dans le titre, je voudrais que les sons s'enchainent les uns après les autres : d'abord le son "a" puis, quand il est terminé, le son "b", etc.
    Quand je fais :

    playSound(R.raw.a);
    playSound(R.raw.b);
    playSound(R.raw.c);

    Il n'y a que le son c qui est joué. Est-ce qu'il y a un moyen de les faire s'enchaîner les uns après les autres ?

    Merci d'avance à celles et ceux qui pourraient m'aider.

  2. #2
    Membre confirmé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2014
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Août 2014
    Messages : 262
    Points : 634
    Points
    634
    Par défaut
    Citation Envoyé par GetUp Voir le message
    Bonjour,

    Voilà, tout est dans le titre, je voudrais que les sons s'enchainent les uns après les autres : d'abord le son "a" puis, quand il est terminé, le son "b", etc.
    Quand je fais :

    playSound(R.raw.a);
    playSound(R.raw.b);
    playSound(R.raw.c);

    Il n'y a que le son c qui est joué. Est-ce qu'il y a un moyen de les faire s'enchaîner les uns après les autres ?

    Merci d'avance à celles et ceux qui pourraient m'aider.
    Bonjour GetUp,
    C'est logique puisque c'est la même méthode qui est appelée trois et étant donné qu'elle n'est synchronisée,
    a est écrasé par b qui sera ensuite écrasé par c. C'est dire qu'il n'ya pas de temps d'attente.

    Il se pourrait qu'il existe d'autres solutions plus adaptées et optimisées mais j'ai une proposition que je m'en vais décrire.

    *Il s'agit d'utiliser un <android>Thread</android> dans lequel on va lancer le premier, attendre pendant toute la durée de celui-ci, ensuite lancer le deuxième faire de même et enfin lancer le dernier. L'attente peut se faire avec la méthode <android>Thread.sleep(temp_attente)</android>. Evidement, qu'il vous faudra connaitre la durée de chaque son !
    *Une autre solution c'est d'utiliser la classe SoundPool qui vous donne largement le choix et qui d'ailleurs recommandée.

    __salut !
    Aujourd'hui apprenant, demain appreneur.
    N'accuse pas le puits d'être trop profond,
    c'est peut-être ta corde qui est trop courte

  3. #3
    Candidat au Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Merci lankoande pour tes conseils avisés, j'ai utilisé le thread et le sleep et ça donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
            new Thread(new Runnable() {
                @Override
                public void run() {
                    playSound(R.raw.a);
                    try {Thread.sleep(300);}
                    catch (InterruptedException e) {e.printStackTrace();}
                    playSound(R.raw.b);
                    try {Thread.sleep(300);}
                    catch (InterruptedException e) {e.printStackTrace();}
                    playSound(R.raw.c);              
            }).start();
    et ça marche

  4. #4
    Membre confirmé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2014
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Août 2014
    Messages : 262
    Points : 634
    Points
    634
    Par défaut
    Citation Envoyé par GetUp Voir le message
    Merci lankoande pour tes conseils avisés, j'ai utilisé le thread et le sleep et ça donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
            new Thread(new Runnable() {
                @Override
                public void run() {
                    playSound(R.raw.a);
                    try {Thread.sleep(300);}
                    catch (InterruptedException e) {e.printStackTrace();}
                    playSound(R.raw.b);
                    try {Thread.sleep(300);}
                    catch (InterruptedException e) {e.printStackTrace();}
                    playSound(R.raw.c);              
            }).start();
    et ça marche
    Très bien, bravo à vous mais n'oubliez pas surtout le boutton Résolu afin de spécifier que votre discussion

    a été résolu !
    Aujourd'hui apprenant, demain appreneur.
    N'accuse pas le puits d'être trop profond,
    c'est peut-être ta corde qui est trop courte

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 04/02/2014, 16h38
  2. [PHP 5.0] Lancer des scripts les uns après les autres
    Par Mandarine dans le forum Langage
    Réponses: 13
    Dernier message: 29/06/2011, 00h27
  3. Réponses: 3
    Dernier message: 17/12/2007, 18h54
  4. Réponses: 32
    Dernier message: 28/08/2007, 19h57
  5. Lancer plusieurs batch les uns apres les autres
    Par n8ken dans le forum Administration système
    Réponses: 4
    Dernier message: 04/01/2007, 07h59

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