Ajuda

1 resposta
V

Hey…
Quem tiver lendo muito orbigado antes de tudo…
Mas então é assim…
Meu professor de Java iniciou as aulas mes passado… e bem eu tive tempo de aprender coisas basicas… como vetor, matriz, o q é um objeto… e pans…
e ele passou um pronjeto para entregar em julho… e digamos q antes de tudo… ele meio q deixou bem jogado… e não sei se vou ter tempo para conseguir fazer o projeto de forma correta…
então assim…
primeira coisa… como meu professor disse “eu quero mais q vcs se ferrem” mas no bom sentido… pois como ele disse vc não aprende enquanto não quebra a cara…

1-eu gostaria de saber se existe uma classe q leia mp3…
2- eu pesquisei no fórum mas não entendi muito bem como funciona…

meu projeto é um player e eu gostaria realmente de aprender como funciona as coisas… pq eu pesquisei e achei um player pronto…
ah… eu até achei uma classe q fazia isso q tava num blog postado aqui e tals… mas o link ta corrompido…
espero q possam me ajudar…

1 Resposta

joede.fadel

Olha tenho essa classe aki q eu achei a algum tempo fuchando na net só q eu nunca mexi nela pra vr qual é o erro. Tomara q ajude e vc em alugma coisa.

/*
 * Main.java
 *
 * Created on 02/10/2007, 21:48:59
 *
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package javaapplication5;

import java.io.File;
import java.io.IOException;
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.SourceDataLine;

/**
 *
 * @author aluno
 */
public class Main {

    /** Creates a new instance of Main */
    public Main() {

    }

    public void testPlay(String filename) {
        try {
            File file = new File(filename);
            // Get AudioInputStream from given file.
            AudioInputStream in = AudioSystem.getAudioInputStream(file);//ta com um erro aki
            AudioInputStream din = null;
            if (in != null) {
                AudioFormat baseFormat = in.getFormat();
                AudioFormat decodedFormat = new AudioFormat(AudioFormat.Encoding.ALAW, baseFormat.getSampleRate(), 16, baseFormat.getChannels(), baseFormat.getChannels() * 2, baseFormat.getSampleRate(), false);
                // Get AudioInputStream that will be decoded by underlying VorbisSPI
                din = AudioSystem.getAudioInputStream(decodedFormat, in);
                // Play now !
                rawplay(decodedFormat, din);
                in.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private void rawplay(AudioFormat targetFormat, AudioInputStream din) throws IOException, LineUnavailableException {
        byte[] data = new byte[4096];
        SourceDataLine line = getLine(targetFormat);
        if (line != null) {
            // Start
            line.start();
            int nBytesRead = 0;
            int nBytesWritten = 0;
            while (nBytesRead != -1) {
                nBytesRead = din.read(data, 0, data.length);
                if (nBytesRead != -1) {
                    nBytesWritten = line.write(data, 0, nBytesRead);
                }
            }
            // Stop
            line.drain();
            line.stop();
            line.close();
            din.close();
        }
    }

    private SourceDataLine getLine(AudioFormat audioFormat) throws LineUnavailableException {
        SourceDataLine res = null;
        DataLine.Info info = new DataLine.Info(SourceDataLine.class, audioFormat);
        res = (SourceDataLine) AudioSystem.getLine(info);
        res.open(audioFormat);
        return res;
    }

    public static void main(String[] args) {
        new Main().testPlay("C:\Musicas\Eterna\kirye_eleison.mp3");
    }
}

ps. se conseguir fazer essa classe funcionar mande ele pra mim de volta :!: :idea: :arrow:

Criado 12 de junho de 2008
Ultima resposta 12 de jun. de 2008
Respostas 1
Participantes 2