2010-10-26 4 views
1

Où filename est le fichier midi. Je veux charger un chemin complet (du disque dur local) dans le getSequence mais il n'accepte pas excepté le nom de fichier lui-même. Désolé que je ne suis pas bon en Java et souhaite qu'il y ait une solution pour mon besoin.Charger le Midi depuis le chemin local?

chanson = MidiSystem.getSequence (getClass(). GetResourceAsStream (nomfichier));

et la barre d'outils richtext de Stackoverflow est manquante dans ma navigation Firefox?

[Mise à jour]

try { chanson = MidiSystem.getSequence (new FileInputStream (nom de fichier)); séquenceur = MidiSystem.getSequencer(); séquenceur.setSéquence (chanson); séquenceur.open(); séquenceur.addMetaEventListener (this); séquenceur.start(); } catch (InvalidMidiDataException e) { System.out.println ("Mauvais fichier midi:" + nom de fichier); System.exit (1); } catch (MidiUnavailableException e) { System.out.println ("Aucun séquenceur disponible"); System.exit (1); } catch (IOException e) { System.out.println ("Impossible de lire:" + nom de fichier); System.exit (1); }

Répondre

0

essayez ceci:

chanson = MidiSystem.getSequence (getClass() getResourceAsStream ("@ filextension").);

ou vous pouvez utiliser filereader.

+0

est-ce que je dois taper exactement comme @filextension? – Proyb2

1

getRecourceAsStream() est utile uniquement si le fichier contient le classpath. Si vous avez le fichier sur le système de fichiers, vous devez appeler:

song = MidiSystem.getSequence(new FileInputStream("/path/to/midi/file")); 
+0

Votre code fonctionne de la même manière mais j'ai reçu un message qui lance une exception "Impossible à lire". – Proyb2

+0

Voulez-vous s'il vous plaît se référer à mon message de mise à jour avec une nouvelle partie du code. – Proyb2

+0

Mon nom de fichier est juste un exemple - vous devez vous référer à un fichier réel dans votre système de fichiers, dont vous avez un accès en lecture. –

Questions connexes