I got a question on how to play a midi file from a Java application. J'ai eu une question sur la façon de jouer un fichier midi à partir d'une application Java.

Presented below is a simple demonstration program. Présenté ci-dessous est un simple programme de démonstration.

You can view it better Vous pouvez le voir mieux here ici .

 import javax.sound.midi.*; import java.io.*; /** Plays a midi file provided on command line */ public class MidiPlayer { public static void main (String args[]) { // Argument check if (args.length == 0) { helpAndExit ();         }         String file = args[0]; if (!file. endsWith ( ".mid" )) { helpAndExit ();         }         File midiFile = new File (file); if (!midiFile. exists () || midiFile. isDirectory () || !midiFile. canRead ()) { helpAndExit ();         } // Play once try {             Sequencer sequencer = MidiSystem. getSequencer ();             sequencer. setSequence (MidiSystem. getSequence (midiFile));             sequencer. open ();             sequencer. start (); while ( true ) { if (sequencer. isRunning ()) { try {                         Thread. sleep (1000); // Check every second } catch (InterruptedException ignore) { break ;                     }                 } else { break ;                 }             } // Close the MidiDevice & free resources sequencer. stop ();             sequencer. close ();         } catch (MidiUnavailableException mue) {             System.out. println ( "Midi device unavailable!" );         } catch (InvalidMidiDataException imde) {             System.out. println ( "Invalid Midi data!" );         } catch (IOException ioe) {             System.out. println ( "I/O Error!" );         }       } /** Provides help message and exits the program */ private static void helpAndExit () {         System.out. println ( "Usage: java MidiPlayer midifile.mid" );         System. exit (1);     } } importation javax.sound.midi .*; importation java.io. *; / ** Joue un fichier midi sur la ligne de commande * / public class MidiPlayer (public static void main (String args []) (/ / Argument vérifier si ( args.length == 0) (helpAndExit ();) String file = args [0]; if (! fichier. endsWith ( ". mi")) (helpAndExit ();) fichier MIDI = new File (fichier), si (! MIDI. existe () | | MIDI. isDirectory () | |! MIDI. canRead ()) (helpAndExit ();) / / Jouer une fois try (séquenceur Séquenceur = MidiSystem. getSequencer (); séquenceur. setSequence (MidiSystem. getSequence (MIDI)); séquenceur. open (); séquenceur. start (); while (true) (if (sequencer. isRunning ()) (try (Thread. sommeil (1000) / / Vérifier tous les deux) catch (InterruptedException ignorer) (break;)) else (break;)) / / Fermer la MidiDevice et de libérer des ressources séquenceur. stop (); séquenceur. close ();) catch (MidiUnavailableException mue) (System.out. println ( "Midi dispositif indisponible ! ");) Catch (InvalidMidiDataException imde) (System.out. Println (" Invalid Midi données! ");) Catch (IOException OIE) (System.out. Println (" I / O Error! ");)) / ** Indique le message d'aide et quitte le programme * / private static void helpAndExit () (System.out. Println ( "Usage: java MidiPlayer midifile.mid"); système. Exit (1);))