30/03/09 21:38
gmxsm
Ciao a tutti,
da un paio di giorni mi sto imbattendo nelle api "javax.sound.midi" perchè creare e manipolare file midi mi interesserebbe davvero molto.
Ho letto molte guide e articoli su questo argomento, ma mi sono imbattutto in questo errore:
"javax.sound.midi.MidiUnavailableException: MIDI OUT transmitter not available"
La cosa che più mi fa impazzire è che il codice che ho usato fa parte di un Tutorial ibm.com/developerworks/library/it/it-0801art38/...
Di seguito il codice:
codice PHP:
Ecco invece cosa mi riporta il Debug:
codice PHP:
Naturalmente prima di postare ho fatto alcune ricerce tramite google ed ho trovato solo articoli che non hanno risolto tutto ciò:
javakb.com/Uwe/Forum.aspx/java-programmer/32698/…
bugs.sun.com/bugdatabase/…
coderanch.com/t/274513/Other-Java-APIs/java/…
In particolare per ciò che viene descritto nell'ultimo link io non mi ritrovo questo file:
C:\Program Files\Java\jre1.6.0_07\lib\ext\sound.jar
Non capisco il problema da cosa scaturisca essendo materia nuova per me, ma sarei grato se qualcuno in questo forum possa aiutarmi perchè è sempre bello imparare, oltre che mi servirebbe tutto ciò per un esame!
Grazie in anticipo a tutti!
da un paio di giorni mi sto imbattendo nelle api "javax.sound.midi" perchè creare e manipolare file midi mi interesserebbe davvero molto.
Ho letto molte guide e articoli su questo argomento, ma mi sono imbattutto in questo errore:
"javax.sound.midi.MidiUnavailableException: MIDI OUT transmitter not available"
La cosa che più mi fa impazzire è che il codice che ho usato fa parte di un Tutorial ibm.com/developerworks/library/it/it-0801art38/...
Di seguito il codice:
codice PHP:
package provamidi; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.util.logging.Level; import java.util.logging.Logger; import javax.sound.midi.*; public class IBM_Esempio1 { private Sequencer sequencer; public IBM_Esempio1(){ try { //definisco l'oggetto sequencer sequencer = MidiSystem.getSequencer(); sequencer.open(); } catch (MidiUnavailableException ex) { Logger.getLogger(IBM_Esempio1.class.getName()).log(Level.SEVERE, null, ex); } //creo un file da un percorso assoluto File file= new File ("C:\music1.midi"); try { //setto la sequenza per il sequencer sequencer.setSequence(MidiSystem.getSequence(file)); } catch (InvalidMidiDataException ex) { Logger.getLogger(IBM_Esempio1.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { Logger.getLogger(IBM_Esempio1.class.getName()).log(Level.SEVERE, null, ex); } //faccio partire il sequencer sequencer.start(); } //questo codice, come dice il tutorial, dovrebbe catturare l'evento legato allo stream..??? public void meta(MetaMessage event){ if(event.getType()==47){ // 47 significa che è finito lo stream sequencer.stop(); sequencer.close(); } } public static void main(String args[]){ new IBM_Esempio1(); } }
Ecco invece cosa mi riporta il Debug:
codice PHP:
29-mar-2009 20.15.14 provamidi.IBM_Esempio1 <init> GRAVE: null javax.sound.midi.MidiUnavailableException: MIDI OUT transmitter not available at com.sun.media.sound.AbstractMidiDevice.createTransmitter(AbstractMidiDevice.java:444) at com.sun.media.sound.AbstractMidiDevice.getTransmitter(AbstractMidiDevice.java:299) at javax.sound.midi.MidiSystem.getSequencer(MidiSystem.java:451) at javax.sound.midi.MidiSystem.getSequencer(MidiSystem.java:348) at provamidi.IBM_Esempio1.<init>(IBM_Esempio1.java:23) at provamidi.IBM_Esempio1.main(IBM_Esempio1.java:50) Exception in thread "main" java.lang.NullPointerException at provamidi.IBM_Esempio1.<init>(IBM_Esempio1.java:30) at provamidi.IBM_Esempio1.main(IBM_Esempio1.java:50) Java Result: 1
Naturalmente prima di postare ho fatto alcune ricerce tramite google ed ho trovato solo articoli che non hanno risolto tutto ciò:
javakb.com/Uwe/Forum.aspx/java-programmer/32698/…
bugs.sun.com/bugdatabase/…
coderanch.com/t/274513/Other-Java-APIs/java/…
In particolare per ciò che viene descritto nell'ultimo link io non mi ritrovo questo file:
C:\Program Files\Java\jre1.6.0_07\lib\ext\sound.jar
Non capisco il problema da cosa scaturisca essendo materia nuova per me, ma sarei grato se qualcuno in questo forum possa aiutarmi perchè è sempre bello imparare, oltre che mi servirebbe tutto ciò per un esame!
Grazie in anticipo a tutti!
aaa