Como posso reproduzir um .mp3
e um .wav
arquivo em meu aplicativo Java? Estou usando o Swing. Tentei procurar na internet algo como este exemplo:
public void playSound() {
try {
AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(new File("D:/MusicPlayer/fml.mp3").getAbsoluteFile());
Clip clip = AudioSystem.getClip();
clip.open(audioInputStream);
clip.start();
} catch(Exception ex) {
System.out.println("Error with playing sound.");
ex.printStackTrace();
}
}
Mas, isso só reproduzirá .wav
arquivos.
O mesmo com:
http://www.javaworld.com/javaworld/javatips/jw-javatip24.html
Desejo reproduzir .mp3
arquivos e .wav
arquivos com o mesmo método.
main
método, é necessário adicionar umThread.sleep
para ouvir o som, ou o programa será encerrado antes que isso aconteça. Uma forma útil de fazer isso é:Thread.sleep(clip.getMicrosecondLength() / 1000);
Respostas:
Java FX tem
Media
eMediaPlayer
classes que irá reproduzir arquivos MP3.Código de exemplo:
Você precisará das seguintes instruções de importação:
fonte
Media
eMediaPlayer
não são classes Java , mas classes JavaFX . Para adicionar suporte a mp3 para Java no OS X ou Windows, você pode querer dar uma olhada no SampledSP . E sim - eu escrevi essas bibliotecas.Eu escrevi um player de mp3 java puro: mp3transform .
fonte
você pode jogar .wav apenas com a API Java:
código:
E jogue .mp3 com jLayer
fonte
Já faz um tempo que não uso, mas o JavaLayer é ótimo para reprodução de MP3
fonte
Usando a API javax.sound padrão, uma única dependência Maven, totalmente Open Source ( Java 7 necessário):
pom.xml
Código
Referências:
fonte
Eu recomendaria usar o BasicPlayerAPI. É open source, muito simples e não requer JavaFX. http://www.javazoom.net/jlgui/api.html
Depois de baixar e extrair o arquivo zip, deve-se adicionar os seguintes arquivos jar ao caminho de construção do projeto:
Aqui está um exemplo de uso minimalista:
Importações necessárias:
Isso é tudo que você precisa para começar a tocar música. O Player está iniciando e gerenciando seu próprio thread de reprodução e fornece reprodução, pausa, retomada, parada e busca .
Para um uso mais avançado, você pode dar uma olhada no jlGui Music Player. É um clone do WinAmp de código aberto: http://www.javazoom.net/jlgui/jlgui.html
A primeira classe a ser examinada seria PlayerUI (dentro do pacote javazoom.jlgui.player.amp). Ele demonstra os recursos avançados do BasicPlayer muito bem.
fonte
mp3spi1.9.4.jar
deve ser substituído pelomp3spi1.9.5.jar
do site java zoom.player.play()
ou você não ouvirá nenhum som.A maneira mais fácil que encontrei foi baixar o arquivo jar JLayer de http://www.javazoom.net/javalayer/sources.html e adicioná-lo à biblioteca Jar http://www.wikihow.com/Add-JARs- to-Project-Build-Paths-in-Eclipse-% 28Java% 29
Aqui está o código para a aula
e aqui estão as importações
fonte
Para dar aos leitores outra alternativa, estou sugerindo a biblioteca JACo MP3 Player, um reprodutor de mp3 em plataforma cruzada.
Recursos:
Para uma lista completa de seus métodos e atributos, você pode verificar sua documentação aqui .
Código de amostra:
Para obter mais detalhes, criei um tutorial simples aqui que inclui um código-fonte para download.
fonte
Usando o decodificador / reprodutor / conversor de MP3 Dependência do Maven.
fonte
Você precisa instalar o JMF primeiro (faça download usando este link )
não se esqueça de adicionar arquivos JMF jar
fonte
Faça uma pesquisa em freshmeat.net para JAVE (significa Java Audio Video Encoder) Library (link aqui ). É uma biblioteca para esse tipo de coisa. Não sei se o Java tem uma função mp3 nativa.
Provavelmente, você precisará agrupar a função mp3 e a função wav, usando herança e uma função wrapper simples, se quiser um método para executar os dois tipos de arquivos.
fonte
Para adicionar suporte de leitura de MP3 ao Java Sound, adicione o
mp3plugin.jar
do JMF ao caminho de classe de tempo de execução do aplicativo.Observe que a
Clip
classe tem limitações de memória que a tornam inadequada para mais do que alguns segundos de som de alta qualidade.fonte
Tenho outros métodos para isso, o primeiro é:
E a segunda é:
E se quisermos fazer um loop neste áudio, usamos este método.
se quisermos parar este loop, adicionamos estas bibliotecas na tentativa:
para este terceiro método, adicionamos as seguintes importações:
fonte
Use esta biblioteca: import sun.audio. *;
fonte