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

JavaFX Discussion :

Lire des fichiers sons de façon séquentielle


Sujet :

JavaFX

  1. #1
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2014
    Messages : 22
    Points : 17
    Points
    17
    Par défaut Lire des fichiers sons de façon séquentielle
    bonjour,

    est il possible de lire différents fichiers sons de facon séquentielle avec MediaPlayer ?
    en gros détecter la fin de lecture du fichier son avant de lancer automatiquement le suivant.
    par avance merci

  2. #2
    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 fait ça qui a l'air de plutôt bien fonctionner :

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    public class MediaPlayerPlaylist extends Application {
     
        private final ReadOnlyObjectWrapper<MediaPlayer> player = new ReadOnlyObjectWrapper<>(this, "player");
     
        @Override
        public void start(Stage primaryStage) throws Exception {
            final List<String> playlist = Arrays.asList(
                    "C:\\Users\\Public\\Music\\Sample Music\\Kalimba.mp3",
                    "C:\\Users\\Public\\Music\\Sample Music\\Maid with the Flaxen Hair.mp3",
                    "C:\\Users\\Public\\Music\\Sample Music\\Sleep Away.mp3");
            final ToggleButton playButton = new ToggleButton("Play");
            playButton.textProperty().bind(new StringBinding() {
                {
                    bind(playButton.selectedProperty());
                }
     
                @Override
                public void dispose() {
                    unbind(playButton.selectedProperty());
                    super.dispose();
                }
     
                @Override
                protected String computeValue() {
                    return playButton.isSelected() ? "Pause" : "Play";
                }
            });
            playButton.selectedProperty().addListener(observable -> {
                if (playButton.isSelected()) {
                    if (player.get() == null) {
                        switchToMedia(0, playlist);
                    } else {
                        player.get().play();
                    }
                } else {
                    player.get().pause();
                }
            });
            final ProgressBar progressBar = new ProgressBar();
            progressBar.setMaxWidth(Double.MAX_VALUE);
            progressBar.progressProperty().bind(new DoubleBinding() {
                private final ObjectBinding<Duration> currentTime = Bindings.select(player, "currentTime");
                private final ObjectBinding<Duration> totalDuration = Bindings.select(player, "totalDuration");
     
                {
                    bind(currentTime, totalDuration);
                }
     
                @Override
                public void dispose() {
                    unbind(currentTime, totalDuration);
                    currentTime.dispose();
                    totalDuration.dispose();
                    super.dispose();
                }
     
                @Override
                protected double computeValue() {
                    double result = 0;
                    final Duration currentTime = this.currentTime.getValue();
                    final Duration totalDuration = this.totalDuration.getValue();
                    if (currentTime != null && totalDuration != null) {
                        result = currentTime.toMillis() / totalDuration.toMillis();
                    }
                    return result;
                }
            });
            final BorderPane pane = new BorderPane();
            pane.setCenter(playButton);
            pane.setBottom(progressBar);
            final Scene scene = new Scene(pane, 500, 500);
            primaryStage.setTitle("Hello World!");
            primaryStage.setScene(scene);
            primaryStage.show();
        }
     
        private void switchToMedia(final int index, final List<String> playlist) {
            final String path = playlist.get(index);
            final File file = new File(path);
            final Media media = new Media(file.toURI().toString());
            final MediaPlayer player = new MediaPlayer(media);
            player.setOnEndOfMedia(() -> {
                player.setOnEndOfMedia(null);
                final int nextIndex = (index + 1) % playlist.size();
                switchToMedia(nextIndex, playlist);
            });
            this.player.set(player);
            player.play();
        }
     
        /**
         * @param args the command line arguments
         */
        public static void main(String[] args) {
            launch(args);
        }
    }
    Grosso modo, il faut créer un nouveau Media et un nouveau MediaPlayer dès que le précédent est terminé.
    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

  3. #3
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2014
    Messages : 22
    Points : 17
    Points
    17
    Par défaut
    merci ! j'ai compris le principe

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

Discussions similaires

  1. lire des fichiers son en C
    Par agilec dans le forum C
    Réponses: 8
    Dernier message: 30/08/2009, 15h23
  2. [Audio]Lire des fichiers sons
    Par Ender dans le forum Multimédia
    Réponses: 6
    Dernier message: 05/10/2005, 01h50
  3. Lire des fichiers .mpc
    Par Thrystan dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 11/12/2004, 13h15
  4. [TP]comment faire pour lire un fichier son
    Par sovo dans le forum Turbo Pascal
    Réponses: 1
    Dernier message: 19/09/2004, 19h33
  5. [ZIP]besoin de lire des fichiers avec l'extension tar.gz
    Par mathieublanc13 dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 24/05/2004, 13h35

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