Assim, se a gente fazer um playlist para mandar remoto ±:
Nome do arquivo: Armandinho - 2008 - Semente.mp3
Nome do aquivo: Armandinho - 2008 - Morena Nativa.mp3
Como poderia ficar no arquivo nosso:
ID, NOME DA MÚSICA
0 , Armandinho - 2008 - Semente
1 , Armandinho - 2008 - Morena Nativa
.
.
.
Estes IDs, seriam gerados pelo aplicação servidor, para ele saber exatamente qual música você gostaria de tocar. Sem pasar o endereço da música por completo, podemos economizar um bom espaço do arquivo!!!
Na hora da aplicação remota pegar uma música para tocar, você apenas manda o ID para o servidor mandar a musica que esta relativo a tal ID!
Aproveitando, acho que seria interessante a aplicação ter algo como sessão, para cada lado saber de qual playlist será tocado, para não dar confusão, a aplicação remota esta vendo Semente no ID 0, e o Servidor estar mandando um outro artista sei la…
Realmente, passando o id, você só manda o necessário, mas para cada playlist
e na realização de cada sessão, o servidor teria que ter um id para cada sessão, e disparar uma thread de inicialização do player para cada sessão aberta,isso vai ter que ficar mais adiante…
Realmente, passando o id, você só manda o necessário, mas para cada playlist
e na realização de cada sessão, o servidor teria que ter um id para cada sessão, e disparar uma thread de inicialização do player para cada sessão aberta,isso vai ter que ficar mais adiante…
Sobre o blog, acho que perdi mesmo a classe MP3!
Malditos backups!!!
Gemelli, você qual a sua idéia para este projeto?
Achou mto complexo a idéia que dei?
Ou melhor, toda nova sessão que o cara abrir é uma nova playlist, algo assim!
O projeto postado pelo Mark funciona normalmente, porém quando a musica para de tocar é mostrado seguinte erro:
Exception in thread "Thread-7" java.lang.IllegalArgumentException: illegal len: -1
at com.sun.media.sound.DirectAudioDevice$DirectDL.write(Unknown Source)
at Musica.play(Musica.java:85)
at Musica.rawplay(Musica.java:106)
at Musica.access$0(Musica.java:102)
at Musica$2.run(Musica.java:71)
at java.lang.Thread.run(Unknown Source)
[quote=hvivox]RESOLVIDO…
PARA RESOLVER O PROBLEMA MELHOREI O METODO
[quote]
/**
* Play same part of the music
*/
private void play(byte[] data) throws IOException {
try {
// Read a stream
int length = aIOStream.read(data, 0, data.length);
//REALIZA A LEITURA DO STREAM
if(length!= -1){
// Play the stream
sDLine.write(data, 0, length);
}
//CONDIÇÃO DESENVOLVIDA PARA EVITAR O ERRO DE ARGUMENTO ILEGAL
if(length==-1){
close();
flag=false;
System.out.println("SOM FINALIZADO"+length);
}
//sDLine.write(data, 0, length);
} catch (IOException e) {
throw e;
}
}
[/quote][/quote]
Tentei postar o projeto mais não consegui. De qualquer forma para corrigir o problema basta copiar e colar o trecho do codigo informado na classe Musica.