Vote Voter 0 0
How to play a midi file from a Java application Comment jouer un fichier midi à partir d'une application Java
Angsuman Chakraborty Angsuman Chakraborty
November 12th, 2004 Novembre 12, 2004 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);)) Filed under Classé sous Java Software Logiciel de Java | |
| |
RSS 2.0 RSS 2,0 | |
Email this Article Envoyer cet article
You may also like to read Vous mai également à lire |





November 13th, 2004 at 3:29 am Novembre 13, 2004 at 3:29 am
Very helpful & informative! Très utile et informatif!
November 14th, 2004 at 2:05 pm Novembre 14th, 2004 at 2:05 pm
http://www.jsresources.org/examples/midi_playback_and_recording.html
November 30th, 2004 at 4:14 pm Novembre 30th, 2004 at 4:14 pm
It didn’t work for me at the first. Il n'a pas fonctionné pour moi à la première. I had to replace the order of two lines. J'ai dû remplacer la commande de deux lignes. After it was perfect. Après avoir été parfait. Thanks for the demo. Merci pour la démo.
Original:
sequencer.setSequence(MidiSystem.getSequence(midiFile)); sequencer.setSequence (MidiSystem.getSequence (MIDI));
sequencer.open(); sequencer.open ();
sequencer.start(); sequencer.start ();
Modified: Mis à jour le:
sequencer.open(); sequencer.open ();
sequencer.setSequence(MidiSystem.getSequence(midiFile)); sequencer.setSequence (MidiSystem.getSequence (MIDI));
sequencer.start(); sequencer.start ();
November 30th, 2004 at 11:26 pm Novembre 30th, 2004 at 11:26 pm
Thanks! Merci!
This is interesting! C'est intéressant! I used JDK 1.5 and it compiled and ran fine on my system. J'ai utilisé JDK 1,5 et elle a établi et dirigé amende sur mon système. Which version of jdk are you using? Quelle version de JDK utilisez-vous?
Angsuman
May 12th, 2007 at 7:45 am Mai 12, 2007 at 7:45 am
Man, this is perfect. Man, c'est parfait. Very useful. Très utile.