Verificar MP3

6 respostas
V

Galera eu estou realizando um projeto para a facu em que eu tenho que trabalhar com a id3 de um arquivo mp3.

Eu gostaria de sabe como que eu faço para verificar se um arquivo é mp3 ou não, eu leio ele com o FileReader mais não sei como fazer está verificação.

Alguem sabe como eu faço isso?

Abs

6 Respostas

A
String ex = nomeArq.substring(nomeArq.lastIndexOf("."), nomeArq.length());
E

Verificar a extensão do arquivo não garante que ele seja ou não um arquivo mp3. Afinal, um usuário sempre pode renomear aquele vídeo comprometedor (carnaval_na_praia.mpeg) para algo como carnaval_na_praia.mp3 para que, no windows, ele não possa ser aberto com um duplo clique…Sem contar que podem existir arquivos com outras extensões que codificam, internamente, um mp3…

O correto seria você ler o arquivo e verificar sua estrutura…Se a estrutura do seu arquivo seguir o padrão estrutural do mp3, então ele é mp3, senão não…

Claro que dependendo da aplicação isso não é necessário…Se você quiser fazer uma aplicação que encontre todos os arquivos mp3 de uma pasta, por exemplo, creio que seja mais interessante se ater só à extensão…

V

Obrigado pelas respostas, a minha aplicação vai ter que ler o arquivo mp3 e alterar dentro dele a IDTag.

A IDTAG cuida das informções de nome de autor, genero, ano, etc…

Um programa que tem está funcionalidade é o Winanp.

Eu ja consigo gravar em mp3, eu tenho agora que abrir um arquivo mp3 e fazer a verificação, se ele é ou não.

Isso que eu não sei como fazer.

Michel_Sancovich

kra, dah uma olhada na revista java magazine a edicao 60 ou 61, lá tem o que vc precisa muito bem explicado.

Espero ter ajudado
T+

T

O Google respondeu isto para mim com as palavras-chave “id3 tag mp3 java”

http://javamusictag.sourceforge.net/

Não sei se essa biblioteca é boa, mas você pode checar as outras também.

V

Gostei de site Thingol vou dar um estudada nele.

Eu estou tentando fazer algumas alteração no meu código se alguem puder me ajudar.

Eu quero retirar o file writer e o file reader e colocar o DataInputStream e o DataOutputStream, só que já testei de várias maneiras e da sempre errado.

import java.io.*;

import javax.swing.JOptionPane;

class Proj {

    public static void main(String args[]) throws IOException {
    	
    	    	
    	
    	 File r = new File ("g:\\10 I SAW YOU SAYING.mp3");
    	File f = new File("g:\\vinicius.mp3");
    	

    	
    	
        String titulo = JOptionPane.showInputDialog(null, "Digite o Título");
        String artista = JOptionPane.showInputDialog(null, "Digite o nome do Artista");
        String album = JOptionPane.showInputDialog(null,"Digite o album");
        String ano = JOptionPane.showInputDialog(null,"Digite um ano");
        String comentario = JOptionPane.showInputDialog(null,"Digite um comentário");
        
        
        titulo = preparatitulo(titulo, 30);
        artista = preparaartista(artista, 30);
        album = preparaalbum(album,30);
        ano = preparaano(ano,4);
        comentario = preparacomentario(comentario,30);
        
           
        
        
        try {

        	
        	FileReader fr = new FileReader (r);
            FileWriter fw = new FileWriter(f);
            fw.write("TAG" +titulo +artista +album +ano +comentario+"ÿ");


            fw.flush();
            fw.close();
            fr.read();
            fr.close();
            

        } catch (Exception e) {
            System.out.println("erro:"+e);
        }

    }

    private static String preparatitulo(String string, int tam) {
        int diff = tam - string.length();
        if (diff > 0) {
            StringBuilder sb = new StringBuilder(tam);
            sb.insert(0, string);
            for (int i = 0; i < diff; i++) {
                sb.append(" ");
            }
            return sb.toString();
        }
        return string;
    }
    private static String preparaartista(String string, int tam) {
        int diff = tam - string.length();
        if (diff > 0) {
            StringBuilder sb = new StringBuilder(tam);
            sb.insert(0, string);
            for (int i = 0; i < diff; i++) {
                sb.append(" ");
            }
            return sb.toString();
        }
        return string;
    }
    
    private static String preparaalbum(String string, int tam) {
        int diff = tam - string.length();
        if (diff > 0) {
            StringBuilder sb = new StringBuilder(tam);
            sb.insert(0, string);
            for (int i = 0; i < diff; i++) {
                sb.append(" ");
            }
            return sb.toString();
        }
        return string;
    }
    
    private static String preparaano(String string, int tam) {
        int diff = tam - string.length();
        if (diff > 0) {
            StringBuilder sb = new StringBuilder(tam);
            sb.insert(0, string);
            for (int i = 0; i < diff; i++) {
                sb.append(" ");
            }
            return sb.toString();
        }
        return string;
    }
    
    private static String preparacomentario(String string, int tam) {
        int diff = tam - string.length();
        if (diff > 0) {
            StringBuilder sb = new StringBuilder(tam);
            sb.insert(0, string);
            for (int i = 0; i < diff; i++) {
                sb.append(" ");
            }
            return sb.toString();
        }
        return string;
    }
      
}
Criado 25 de setembro de 2008
Ultima resposta 26 de set. de 2008
Respostas 6
Participantes 5