Olá galera do GUJ, dando uma pesquisada na internet não achei nada que pudesse me ser útil estava precisando de uma idéia de como poderia fazer para implementar um JSlider nesse tocador de musicas com a função de se acionado ir adiantando a música que está sendo tocada(ou passar para outra música ), que utiliza uma biblioteca JLayer(biblioteca grátis) que pode ser baixada nesse endereço http://www.javazoom.net/javalayer/javalayer.html e que foi colocada junto ao meu projeto do NetBeans. Bom espero que tenha conseguido passar o meu problema.
Lembrando que no código tem apenas duas musica mais poderá ter mais.
[code]
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import javazoom.jl.player.Player;//biblioteca baixada http://www.javazoom.net/javalayer/javalayer.html
public class MP3
{
/**
* Objeto para arquivo MP3 a ser tocado
*/
private File mp3;
/**
* Objeto Player da biblioteca jLayer. Ele quem tocará o arquivo
* MP3
*/
private Player player;
/**
* Construtor que recebe o objeto File referenciando o arquivo
* MP3 a ser tocado e atribui ao atributo MP3 da classe.
*
* @param mp3
*/
public MP3(File mp3)
{
this.mp3 = mp3;
}
/**
* Método que toca o MP3
*/
public void play() {
try {
FileInputStream fis = new FileInputStream(mp3);
BufferedInputStream bis = new BufferedInputStream(fis);
this.player = new Player(bis);
System.out.println(“Tocando!”);
this.player.play();
System.out.println(“Terminado!”);
}
catch (Exception e) {
System.out.println("Problema ao tocar " + mp3);
e.printStackTrace();
}
}
public static void main(String[] args) {
//String com o caminho do arquivo MP3 a ser tocado
String path1 = “aqui vai o arquivo de musica1.mp3”;
String path2 = “aqui vai o arquivo de musica2.mp3”;
//Instanciação de um objeto File com o arquivo MP3
File mp3File1 = new File(path1);
File mp3File2 = new File(path2);
//Instanciação do Objeto MP3, a qual criamos a classe.
MP3 musica1 = new MP3(mp3File1);
MP3 musica2 = new MP3(mp3File2);
//Finalmente a chamada do método que toca a música
musica1.play();
musica2.play();
}
} [/code]
[quote=瓦特]Olá galera do GUJ, dando uma pesquisada na internet não achei nada que pudesse me ser útil estava precisando de uma idéia de como poderia fazer para implementar um JSlider nesse tocador de musicas com a função de se acionado ir adiantando a música que está sendo tocada(ou passar para outra música ), que utiliza uma biblioteca JLayer(biblioteca grátis) que pode ser baixada nesse endereço http://www.javazoom.net/javalayer/javalayer.html e que foi colocada junto ao meu projeto do NetBeans. Bom espero que tenha conseguido passar o meu problema.
Lembrando que no código tem apenas duas musica mais poderá ter mais.
[code]
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import javazoom.jl.player.Player;//biblioteca baixada http://www.javazoom.net/javalayer/javalayer.html
public class MP3
{
/**
* Objeto para arquivo MP3 a ser tocado
*/
private File mp3;
/**
* Objeto Player da biblioteca jLayer. Ele quem tocará o arquivo
* MP3
*/
private Player player;
/**
* Construtor que recebe o objeto File referenciando o arquivo
* MP3 a ser tocado e atribui ao atributo MP3 da classe.
*
* @param mp3
*/
public MP3(File mp3)
{
this.mp3 = mp3;
}
/**
* Método que toca o MP3
*/
public void play() {
try {
FileInputStream fis = new FileInputStream(mp3);
BufferedInputStream bis = new BufferedInputStream(fis);
this.player = new Player(bis);
System.out.println(“Tocando!”);
this.player.play();
System.out.println(“Terminado!”);
}
catch (Exception e) {
System.out.println("Problema ao tocar " + mp3);
e.printStackTrace();
}
}
public static void main(String[] args) {
//String com o caminho do arquivo MP3 a ser tocado
String path1 = “aqui vai o arquivo de musica1.mp3”;
String path2 = “aqui vai o arquivo de musica2.mp3”;
//Instanciação de um objeto File com o arquivo MP3
File mp3File1 = new File(path1);
File mp3File2 = new File(path2);
//Instanciação do Objeto MP3, a qual criamos a classe.
MP3 musica1 = new MP3(mp3File1);
MP3 musica2 = new MP3(mp3File2);
//Finalmente a chamada do método que toca a música
musica1.play();
musica2.play();
}
} [/code][/quote]
essa classe Player tem algum metodo tipo .play(position) ?
se tiver, você coloca no actionListener do Slider
assim ele toca na posição, mas no slider você tem que setar tambem o valor máximo como a quantidade de segundos que tem a música.
[quote=RenanRosa][quote=瓦特]
essa classe Player tem algum metodo tipo .play(position) ?
se tiver, você coloca no actionListener do Slider
assim ele toca na posição, mas no slider você tem que setar tambem o valor máximo como a quantidade de segundos que tem a música.[/quote][/quote]
Valeu pela dica a classe tem sim um metodo parecido com esse que você citou é o getPosition().
[quote=瓦特][quote=RenanRosa][quote=瓦特]
essa classe Player tem algum metodo tipo .play(position) ?
se tiver, você coloca no actionListener do Slider
assim ele toca na posição, mas no slider você tem que setar tambem o valor máximo como a quantidade de segundos que tem a música.[/quote][/quote]
Valeu pela dica a classe tem sim um metodo parecido com esse que você citou é o getPosition().[/quote]
o getPosition acho que pega a posição atual da música, não sei se por ele da pra setar o valor.
[quote=RenanRosa][quote=瓦特][quote=RenanRosa][quote=瓦特]
essa classe Player tem algum metodo tipo .play(position) ?
se tiver, você coloca no actionListener do Slider
assim ele toca na posição, mas no slider você tem que setar tambem o valor máximo como a quantidade de segundos que tem a música.[/quote][/quote]
Valeu pela dica a classe tem sim um metodo parecido com esse que você citou é o getPosition().[/quote]
o getPosition acho que pega a posição atual da música, não sei se por ele da pra setar o valor.[/quote]
realmente é isso então eu coloquei os paths(Strings) em um vetor ai quando eu quero mudar de musica eu ando com o JSlider e pego o valor e coloco na posição(vetor) da musica que eu quero tocar.
Assim deu certo, mais não consegui fazer para o JSlider funcionar como uma barra de progresso da execução da musica mais consegui fazer trocar de musicas. Acho que assim ta bom já valeu um abraço até mais