Jogando um MP3 on-line

2

Eu tenho um problema com a reprodução de mp3s online. Estou usando a última versão do jlayer e basicplayer do javazoom. Aqui está a exceção:

Caused by: javazoom.jlgui.basicplayer.BasicPlayerException: java.io.EOFException
    at javazoom.jlgui.basicplayer.BasicPlayer.initAudioInputStream(Unknown Source)
    at javazoom.jlgui.basicplayer.BasicPlayer.open(Unknown Source)
    ... 12 more
Caused by: java.io.EOFException
    at java.io.DataInputStream.readInt(DataInputStream.java:375)
    at com.sun.media.sound.WaveFileReader.getFMT(WaveFileReader.java:244)
    at com.sun.media.sound.WaveFileReader.getAudioFileFormat(WaveFileReader.java:85)
    at javax.sound.sampled.AudioSystem.getAudioFileFormat(AudioSystem.java:985)
    at javazoom.jlgui.basicplayer.BasicPlayer.initAudioInputStream(Unknown Source)
    ... 15 more

Meu java é 1.6.0_16.

Certos arquivos não podem ser reproduzidos pela Internet. Eu tenho um conjunto de mp3s, tocando um após o outro. Aleatoriamente um mp3 não funciona jogando acima da exceção. Alguns mp3s podem ser reproduzidos chamando novamente o método play () se o player básico do javazoom, mas outros nunca podem ser reproduzidos online.

Consegui encontrar este post, mas duvido que isso esteja relacionado com o meu directx versão ou algo assim.

Mohsen

    
por Mohsen 26.10.2009 / 21:39

3 respostas

0

Se você estiver transmitindo por HTTP, o servidor da Web parece estar fechando a conexão imediatamente sem entregar nenhum dado. Alguns servidores que fornecem MP3 através de HTTP avaliam os cabeçalhos de pedidos na tentativa de impedir que as ferramentas captem o fluxo de mídia e, por exemplo, somente entrega conteúdo se os cabeçalhos da solicitação corresponderem a um reprodutor de mídia conhecido. Se você tem uma ferramenta de detecção de rede e conhece um media player, que está trabalhando com o servidor do qual está tentando obter conteúdo, é claro que você pode definir os cabeçalhos de solicitação HTTP em seu programa Java, para que o servidor ache que você está usando o media player regular.

    
por 26.10.2009 / 21:47
0

Você pode fazer o download do arquivo nesse URL?

EOF é "fim do arquivo". Está perdendo o fluxo ou simplesmente não há arquivos para chegar.

    
por 26.10.2009 / 21:52
-1

Eu tive problemas semelhantes quando os fluxos de entrada ou saída não são gerenciados corretamente ... você está agrupando tudo em try / catch / finally e fechando todos os streams corretamente?

Alguns podem funcionar se você tiver sorte e o buffer receber todo o conteúdo.

Você também pode tentar liberar (.flush ()) o fluxo de entrada.

Espero que isso ajude.

    
por 26.10.2009 / 22:20

Tags