Erro no meu programa q toca MIDI

5 respostas
vinihds

Galera to com esse programa q toca midi,
mas nao to conceguindo por ele para funcionar.

Alguem poderia como q ponho isso para funcionar ?

import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
import javax.sound.midi.InvalidMidiDataException;
import javax.sound.midi.MidiSystem;
import javax.sound.midi.MidiUnavailableException;
import javax.sound.midi.Sequence;
import javax.sound.midi.Sequencer;

public class testemid
{
public static void main( String args[] )
   {
try {

        Sequence sequence = MidiSystem.getSequence(new File("f:\\flourish.mid"));


        Sequencer sequencer = MidiSystem.getSequencer(); // da erro //nessa linha, mas nao sei pq
        sequencer.open();
        sequencer.setSequence(sequence);

        // Start playing
        sequencer.start();
     } catch (MalformedURLException e) {
        System.out.println("erro 1"+ e.toString());
    } catch (IOException e) {
         System.out.println("erro 2"+ e.toString());
    } catch (MidiUnavailableException e) {
         System.out.println("erro 3"+e.toString());
    } catch (InvalidMidiDataException e) {
         System.out.println("erro 4"+ e.toString());
    }
    }
}

valeu… t+

5 Respostas

dudaskank

qual erro exatamente aparece?

dudaskank

fiz um teste aqui, e funcionou. é o seu exemplo mas com umas modificações que fiz, segue ele aqui...

ele toca por 10 segundos e fecha o sequencer:

package teste.guj;

import java.io.File;
import java.io.IOException;

import javax.sound.midi.InvalidMidiDataException;
import javax.sound.midi.MidiSystem;
import javax.sound.midi.MidiUnavailableException;
import javax.sound.midi.Sequence;
import javax.sound.midi.Sequencer;
import javax.swing.JFileChooser;
import javax.swing.filechooser.FileFilter;

public class TesteMidi {
	public static void main(String args[]) {
		try {
			JFileChooser chooser = new JFileChooser();
			chooser.setFileFilter(new FileFilter() {
				@Override
				public String getDescription() {
					return "midi";
				}

				@Override
				public boolean accept(File f) {
					return f.isDirectory() || f.getName().endsWith("mid");
				};
			});
			if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
				Sequence sequence = MidiSystem.getSequence(chooser.getSelectedFile());
				// da erro nessa linha, mas nao sei pq
				Sequencer sequencer = MidiSystem.getSequencer();
				sequencer.open();
				sequencer.setSequence(sequence);

				// Start playing
				sequencer.start();
				Thread.sleep(10000);
				sequencer.close();
			}
		} catch (InvalidMidiDataException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (MidiUnavailableException e) {
			e.printStackTrace();
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
	}
}

vc consegue tocar midi em programas do windows, como media player, por acaso?

flw

vinihds

tirando esse exemplo, eu concegui tocar mp3 e wav.

valeu cara…vou fazer uns teste aqui com o seu codigo

L

Oi, como vc fez para executar os Wav e MP3?
Obrigado.

keller

Para tocar WAV e MP3 de uma olhada no JMF.
http://java.sun.com/products/java-media/jmf/

Espero que ajude…
[]s

Criado 12 de agosto de 2006
Ultima resposta 21 de ago. de 2006
Respostas 5
Participantes 4