Countdown

Final Countdown

Faltam dias. Ou segundos.

quarta-feira, 22 de abril de 2015

#15) MIDI player em Java

Hoje venho disponibilizar meu recente aprendizado de uma nova funcionalidade para o meu jogo do projeto Anima, que se trata do uso de música MIDI em uma aplicação java. O formato MIDI trata de músicas puramente instrumentais e digitalizadas, como se fosse a reprodução exata e unívoca de uma partitura. Por isso os arquivos de música .mid ocupam pouco espaço no disco rígido (HD) e são tão comuns na web, de modo que optamos por utilizar esse formato.

Seu uso não mistérios. Usando a biblioteca import javax.sound.midi.*; O carregamento do arquivo midi e sua execução ocorrem de maneira muito similar a de uma imagem, conforme o código exemplo abaixo:


package cs;
 
import javax.sound.midi.*;
import java.io.*;
 
public class Música {
 
    String musica_ = "src\\cs\\imagens\\musica.mid";
    File midiFile = new File(musica_);
 
    public void playMusic() {
        if (!midiFile.exists() || midiFile.isDirectory()
                || !midiFile.canRead()) {
            System.out.println("Argumentos inválidos.");
            System.exit(1);
        }
 
        try {
            Sequencer seq = MidiSystem.getSequencer();
            seq.setSequence(MidiSystem.getSequence(midiFile));
            seq.open();
            seq.start();
 
            while (seq.isRunning()) {
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException ignore) {
                    break;
                }
            }
            seq.stop();
            seq.close();
        } catch (MidiUnavailableException mue) {
            System.out.println("Dispositivo de MIDI indisponível");
        } catch (InvalidMidiDataException imde) {
            System.out.println("Dados MIDI Inválidos");
        } catch (IOException ioe) {
            System.out.println("Erro de I/O");
        }
    }
 
    Música() {
        playMusic();
    }
 
    public static void main(String args[]) {
        new Música();
    }
 
}
 
Aplicação java com uso de arquivo midi.

Assim, concluo o pequeno post de hoje.

Nenhum comentário:

Postar um comentário