Olá Desenvolvedor, faça
ou


MP3Player com Equalizador
Faça o download do arquivo para começar.
Get Adobe Flash player

Descompacte o arquivo, temos uma pasta chamada som e outra chamada capas, 1 arquivo xml musicas.xml e 1 arquivo Flash mp3player.fla
Abra o mp3player.fla, temos o MP3 pronto só falta as Actions.
Vamos as Actions:
ActionScript

import flash.display.Sprite;
import flash.net.URLRequest;
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.media.SoundMixer;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.filters.DropShadowFilter;

//Adicionando nossas variáveis
var getMusica:URLRequest;
var Musica:Sound = new Sound();
var PosProgresso:Number;
var soundChannel:SoundChannel;
var MusicaAtual:Sound = Musica;
var pos:Number;
var Atual:Number = 0;
var AtualP:Number;
var AtualA:Number;
var MusicaPlay:Boolean = false;
var xml:XML;
var ListaMusica:XMLList;
var MusicaVolume:SoundTransform = new SoundTransform();
var ProVolume:Number;
var VolumeLimite:Rectangle = VolumeBar.getBounds(VolumeBar);
var xPos:Number = VolumeLimite.x;
var yPos:Number = VolumeLimite.y;
var widthPos:Number = VolumeLimite.width - VolumeBar.VolumeDrag.width;
var heightPos:Number = 0;
var limites:Rectangle = new Rectangle(xPos,yPos,widthPos,heightPos);
var SeekLimite:Rectangle = SeekBar.getBounds(SeekBar);
var xSeekPos:Number = SeekLimite.x;
var ySeekPos:Number = SeekLimite.y;
var widthSeekPos:Number = 332;
var heightSeekPos:Number = 0;
var limitesSeek:Rectangle = new Rectangle(xSeekPos,ySeekPos,widthSeekPos,heightSeekPos);
var loadIMG:Loader = new Loader();
var loadIMGR:Loader = new Loader();
var loadIMGP:Loader = new Loader();

//usando uma máscara para a capa com reflexo
Imagem.load_imgr.cacheAsBitmap = true;
Imagem.mask_ref.cacheAsBitmap = true;
Imagem.load_imgr.mask = Imagem.mask_ref;

//carregando XML
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, CarregaXML);
var URLRe:URLRequest = new URLRequest("musicas.xml");
loader.load(URLRe);

//carregando música
function LoadProgress(e:Event){
    var loadedPct:uint = Math.round(344 * (MusicaAtual.bytesLoaded/MusicaAtual.bytesTotal));
	SeekBar.SeekBar_load.width = loadedPct;
}
//música carregada
function LoadComplete(e:Event){
	SeekBar.SeekBar_load.width = 344;
	stage.removeEventListener(Event.ENTER_FRAME, LoadProgress);
}
//apos carregamento do XML
function CarregaXML(e:Event){
	xml = new XML(e.target.data);
	ListaMusica = xml.som;
	getMusica = new URLRequest(ListaMusica[0].url);
	Musica.load(getMusica);
	soundChannel = Musica.play();
	
	//carrega as informções da música
	musica_txt.text = ListaMusica[0].musica;
	artista_txt.text = ListaMusica[0].artista;
	album_txt.text = ListaMusica[0].album;
	ProximaMc.musica_txtp.text = ListaMusica[1].musica;
	ProximaMc.artista_txtp.text = ListaMusica[1].artista;
	
	//carragando capas, normal, reflexo e miniatura da próxima
	loadIMG.load(new URLRequest(ListaMusica[0].img));
	loadIMGR.load(new URLRequest(ListaMusica[0].img));
	loadIMGP.load(new URLRequest(ListaMusica[1].img));
	Imagem.load_img.load_mc.addChild(loadIMG);
	Imagem.load_imgr.load_mc.addChild(loadIMGR);
	ProximaMc.load_imgp.load_mc.addChild(loadIMGP);
	
	//quando a música acabar chamar função ProximaMusica
	soundChannel.addEventListener(Event.SOUND_COMPLETE, ProximaMusica);
	stage.addEventListener(Event.ENTER_FRAME, Atualiza);
	stage.addEventListener(Event.ENTER_FRAME, LoadProgress);
	Musica.addEventListener(Event.COMPLETE, LoadComplete);
}

//Atualiza e mostra o tempo da música
function AtualizaTempo(num:Number){
	var TempoAtual:Number = num / 1000;
	var TempoTotal:Number = MusicaAtual.length / 1000;
	var Minutos:Number = 0;
	var Segundos:Number = 0;
	var MinutosTotal:Number = 0;
	var SegundosTotal:Number = 0;
	Minutos = Math.floor(TempoAtual / 60);
	Segundos = Math.floor(TempoAtual) % 60;
	MinutosTotal = Math.floor(TempoTotal / 60);
	SegundosTotal = Math.floor(TempoTotal) % 60;
	TempoAtualTxt.text = ((Minutos<10) ? "0"+Minutos : Minutos)+":"+((Segundos<10) ? "0"+Segundos : Segundos);
	TempoTotalTxt.text = "de "+((MinutosTotal<10) ? "0"+MinutosTotal : MinutosTotal)+":"+((SegundosTotal<10) ? "0"+SegundosTotal : SegundosTotal);
}
//Atualiza SeekBar
function Atualiza(e:Event){
	soundChannel.addEventListener(Event.SOUND_COMPLETE, ProximaMusica);
	var MusicaProgresso:Number = soundChannel.position / MusicaAtual.length;
	SeekBar.SeekDrag.x = SeekBar.SeekBar_bg.x + MusicaProgresso * 332;
	SeekBar.SeekBarPro.width = SeekBar.SeekDrag.x + 14;
	AtualizaTempo(soundChannel.position);

}

//Controles de próxima, anterior, pause
Controles.btnProxima.addEventListener(MouseEvent.CLICK, ProximaMusica);
Controles.btnAnterior.addEventListener(MouseEvent.CLICK, AnteriorMusica);
Controles.btnPause.addEventListener(MouseEvent.CLICK, PauseMusica);

//botão próxima com imagem
ProximaMc.btn_ProximaMc.buttonMode = true;
ProximaMc.btn_ProximaMc.addEventListener(MouseEvent.CLICK, ProximaMusica);
ProximaMc.btn_ProximaMc.addEventListener(MouseEvent.MOUSE_OVER, ProximaOver);
ProximaMc.btn_ProximaMc.addEventListener(MouseEvent.MOUSE_OUT, ProximaOut);
ProximaMc.btn_ProximaMc.addEventListener(MouseEvent.MOUSE_UP, ProximaOver);
ProximaMc.btn_ProximaMc.addEventListener(MouseEvent.MOUSE_DOWN, ProximaPress);

function ProximaOver(e:MouseEvent){
	ProximaMc.gotoAndStop(2);
}
function ProximaOut(e:MouseEvent){
	ProximaMc.gotoAndStop(1);
}
function ProximaPress(e:MouseEvent){
	ProximaMc.gotoAndStop(3);
}

//ProximaMusica função para mudar para a próxima música
function ProximaMusica(e:Event){
	if (Atual < (ListaMusica.length() - 1)){
		Atual++;

	}else{
		Atual = 0;
	}
	if (Atual == ListaMusica.length() - 1){
		AtualP = 0;
	}else{
		AtualP = Atual + 1;
	}
	var nextReq:URLRequest = new URLRequest(ListaMusica[Atual].url);
	var Musica:Sound = new Sound(nextReq);
	soundChannel.stop();
	musica_txt.text = ListaMusica[Atual].musica;
	artista_txt.text = ListaMusica[Atual].artista;
	album_txt.text = ListaMusica[Atual].album;
	ProximaMc.musica_txtp.text = ListaMusica[AtualP].musica;
	ProximaMc.artista_txtp.text = ListaMusica[AtualP].artista;
	
	loadIMG.load(new URLRequest(ListaMusica[Atual].img));
	loadIMGR.load(new URLRequest(ListaMusica[Atual].img));
	loadIMGP.load(new URLRequest(ListaMusica[AtualP].img));
	soundChannel = Musica.play();
	MusicaPlay = true;
	MusicaAtual = Musica;		
	
	stage.addEventListener(Event.ENTER_FRAME, Atualiza);
	stage.addEventListener(Event.ENTER_FRAME, LoadProgress);
	MusicaAtual.addEventListener(Event.COMPLETE, LoadComplete);
}
//AnteriorMusica função para a música anterior
function AnteriorMusica(e:Event){
	if (Atual > 0){
		Atual--;
	}else{
		Atual = ListaMusica.length() - 1;
	}
	if (Atual == 0){
		AtualA = 2;
	}else{
		AtualA = Atual - 1;
	}
	var prevReq:URLRequest = new URLRequest(ListaMusica[Atual].url);
	var Musica:Sound = new Sound(prevReq);
	soundChannel.stop();
	musica_txt.text = ListaMusica[Atual].musica;
	artista_txt.text = ListaMusica[Atual].artista;
	album_txt.text = ListaMusica[Atual].album;
	ProximaMc.musica_txtp.text = ListaMusica[AtualA].musica;
	ProximaMc.artista_txtp.text = ListaMusica[AtualA].artista;
	
	loadIMG.load(new URLRequest(ListaMusica[Atual].img));
	loadIMGR.load(new URLRequest(ListaMusica[Atual].img));
	loadIMGP.load(new URLRequest(ListaMusica[AtualA].img));
	soundChannel = Musica.play();
	MusicaPlay = true;
	MusicaAtual = Musica;
	
	stage.addEventListener(Event.ENTER_FRAME, Atualiza);
	stage.addEventListener(Event.ENTER_FRAME, LoadProgress);
	MusicaAtual.addEventListener(Event.COMPLETE, LoadComplete);
}

//Pausa a música
function PauseMusica(e:Event){
	pos = soundChannel.position;
	soundChannel.stop();
	MusicaPlay = false;
	stage.removeEventListener(Event.ENTER_FRAME, Atualiza);
	Controles.btnPlay.addEventListener(MouseEvent.CLICK, PlayMusica);
}
//Reproduz a música
function PlayMusica(e:Event){
	if (MusicaPlay == false){
		soundChannel = MusicaAtual.play(pos);
		soundChannel.addEventListener(Event.SOUND_COMPLETE, ProximaMusica);
		MusicaPlay = true;
		stage.addEventListener(Event.ENTER_FRAME, Atualiza);
		Controles.btnPlay.removeEventListener(MouseEvent.CLICK, PlayMusica);
	}
}

//SoundMixer.computeSpectrum - Equalizador
var ba:ByteArray = new ByteArray();
//Cria um Sprite e adiciona ao palco
var gr:Sprite = new Sprite();
gr.y = 85;
gr.x = 365;
gr.cacheAsBitmap = true;
addChild(gr);
//máscara para o equalizador
mask_gr.cacheAsBitmap = true;
mask_gr.y = 25;
mask_gr.x = 365;
gr.mask = mask_gr;

var Mtime:Timer = new Timer(70);
Mtime.addEventListener(TimerEvent.TIMER, Equalizador);
Mtime.start();

//função Equalizador
function Equalizador(e:TimerEvent){
	SoundMixer.computeSpectrum(ba, true, 0);
	var i:int;
	//tamanho do width(Largura) das barras;
	var w:uint = 5;
	gr.graphics.clear();
	//tamanho e cor da linha;
	gr.graphics.lineStyle(0, 0x222222);
	//cor das barras;
	gr.graphics.beginFill(0x3079ED);
	
	for (i=0; i<170; i+=w){
		var t:Number = ba.readFloat();
		var n:Number = (t * 50);
		gr.graphics.drawRect(i, 0, w, -n);
	}
}

//Volume
VolumeBar.VolumeDrag.x = widthPos;
VolumeBar.mouseEnabled = false;
VolumeBar.VolumeDrag.buttonMode = true;
VolumeBar.VolumeDrag.addEventListener(MouseEvent.MOUSE_OVER, overDrag);
VolumeBar.VolumeDrag.addEventListener(MouseEvent.MOUSE_OUT, outDrag);
VolumeBar.VolumeDrag.addEventListener(MouseEvent.MOUSE_DOWN, dragVolume);

//Quando mover o MC do Volume
function dragVolume(e:MouseEvent){
	VolumeBar.VolumeDrag.startDrag(false,limites);
	//chama a função Volume que atualiza o % do volume
	addEventListener(Event.ENTER_FRAME, Volume);
	stage.addEventListener(MouseEvent.MOUSE_UP, stopVolume);
}
//Quando soltar o MC do Volume
function stopVolume(e:MouseEvent){
	VolumeBar.VolumeDrag.stopDrag();
	stage.removeEventListener(MouseEvent.MOUSE_UP, stopVolume);
}
//atualiza o % do Volume e o Width da Barra do Volume
function Volume(e:Event){
	ProVolume = VolumeBar.VolumeDrag.x / widthPos;
	MusicaVolume.volume = ProVolume;
	soundChannel.soundTransform = MusicaVolume;
	VolumeBar.VolumeBarPro.width = VolumeBar.VolumeDrag.x + 14;
	VolumeTxt.text = Math.round((VolumeBar.VolumeDrag.x)/(limites.right-limites.left)* 100) + "%";
}

//SeekBar
SeekBar.mouseEnabled = false;
SeekBar.SeekDrag.buttonMode = true;
SeekBar.SeekDrag.addEventListener(MouseEvent.MOUSE_OVER, overSeekDrag);
SeekBar.SeekDrag.addEventListener(MouseEvent.MOUSE_OUT, outSeekDrag);
SeekBar.SeekDrag.addEventListener(MouseEvent.MOUSE_DOWN, dragSeek);
SeekBar.SeekBar_m.addEventListener(MouseEvent.CLICK, ClickSeek);
SeekBar.SeekBar_m.buttonMode = true;

//Quando clicar em alguma area do SeekBar
function ClickSeek(e:MouseEvent){
	PosProgresso = Math.round(MusicaAtual.length*(SeekBar.SeekBar_m.mouseX-7)/332);
	SoundMixer.stopAll();
	stage.addEventListener(Event.ENTER_FRAME, Atualiza);
	soundChannel = MusicaAtual.play(PosProgresso);
}
//Quando mover o MC do SeekBar
function dragSeek(e:MouseEvent){
	SeekBar.SeekDrag.startDrag(false,limitesSeek);
	SoundMixer.stopAll();
	stage.removeEventListener(Event.ENTER_FRAME, Atualiza);
	//chama a função Seek que atualiza p Tempo
	stage.addEventListener(Event.ENTER_FRAME, Seek);
	stage.addEventListener(MouseEvent.MOUSE_UP, stopSeek);
}
//Quando soltar o MC do SeekBar
function stopSeek(e:MouseEvent){
	SeekBar.SeekDrag.stopDrag();
	SoundMixer.stopAll();
	stage.addEventListener(Event.ENTER_FRAME, Atualiza);
	stage.removeEventListener(Event.ENTER_FRAME, Seek);
	stage.removeEventListener(MouseEvent.MOUSE_UP, stopSeek);
	soundChannel = MusicaAtual.play(PosProgresso);
}
//atualiza o Tempo e o Width da Barra do SeekBar
function Seek(e:Event){
	PosProgresso = Math.round(MusicaAtual.length*(SeekBar.SeekDrag.x)/332);
	SeekBar.SeekBarPro.width = SeekBar.SeekDrag.x + 14;
	AtualizaTempo(PosProgresso);
}
function overDrag(e:MouseEvent){
	VolumeBar.VolumeDrag.gotoAndStop(2);
}
function outDrag(e:MouseEvent){
	VolumeBar.VolumeDrag.gotoAndStop(1);
}
function overSeekDrag(e:MouseEvent){
	SeekBar.SeekDrag.gotoAndStop(2);
}
function outSeekDrag(e:MouseEvent){
	SeekBar.SeekDrag.gotoAndStop(1);
}


Exemplo:
Get Adobe Flash player

Como sempre você pode usar para AIR
Bom é isso.
Bons estudos e até a próxima
Abraço

Autor: Thiago Bueno
Thiago Bueno: Meu nome é Thiago Bueno, trabalho na area de desenvolvimento Web, atualmente no desenvolvimento de sistemas em PHP. Trabalhando como Freelancer
Tags: Flash, ActionScript 3, AS3, MP3 player, MP3Player, Equalizador, XML, Música, Artista, Album, Imagem, SeekBar, Volume
Compartilhar
Adicionar Comentário
Comentários
Francesca Isaac
Olá! Sou iniciante em flash mas gostaria muito de desenhar um player como esse. Descompactei a pasta e abri o flash copiando o codigo em action, mas infelizmente nada aconteceu. Nao sei se preciso acrecentar alguma coisa a mais dentro da action...realmente nao sei. Apenas copiei o codigo completo e salvei em meu flash CS4. Substitui as musicas por outras e as imagens e dados do album em XML.
Por favor, preciso muito da ajuda de voceis. Isso tem passado muito comigo, comprei varias revistas que sempre tem o tutorial escrito com as actions e quando eu copio nada acontece. Preciso de dicas de como aprender usar o tutorial.
Obrigada
Francesca
responder - útil - 29/04/2010 às 17:46
Hugo
Como fazer pra que o player não toque automaticamente?
responder - útil - 01/05/2010 às 20:20
docflash
Bom tutorial.
O AS está perfeito...
O player está c/ muito bom aspecto. .
Parabens!

responder - útil - 16/05/2010 às 15:05
Túlio Navarro
Oi, parabéns pelos TUTO's
Ajuda muito que esta começando nessa Área...
responder - útil - 17/05/2010 às 07:43
Balck
Boas eu fiz isso e correu bem ate a parte que adicionei mais do que 3 musicas eu meti 12 musicas e corre tudo bem menos p botao de prev.
Ao fazer prev. ele mete sempre a primeira musica a tocar e nao a anterior
Podes resolver este erro ???
responder - útil - 18/06/2010 às 05:08
Dj Valrenicio
cara de + esse seu player concerteza no proximo site que eu fizer eu vou colocar esse player la vlw.
responder - útil - 03/08/2010 às 16:36
Airton Miranda
olá pessoal...
eu sou novo aki nisso. .. gostaria d saber se tem como eu botar esse mp3 player junto com outra animação já feita . por exemplo
se eu tiver um menu no cabeçalho da pagina tem como eu botar o player assim dentro do menu num cantinho?
por favor, se tiver como dêm uma dika..
abraços...
responder - útil - 17/08/2010 às 01:04
Damiel
baixei os arquivos mas quando vou abrir usando o flash cs3 dá a msg = Unexpected file format
e agora?
alguem pode me enviar o arquivo ?
xdamiel@gmail.com
Obrigado
responder - útil - 01/09/2010 às 20:26
Victor
Pow, tow com o mesmo problema do Damiel!!!
Eu tento abrir o .fla com o meu CS3 e dá exatamente a msma msg: Unexpected file format
Vlww... t+
responder - útil - 14/09/2010 às 13:54
Thiago Bueno
Olá
Damiel e Victor esta dando a mensagem "Unexpected file format" pq o arquivo para download do "Romer Santos" esta em formato CS4
Obrigado
responder - útil - 14/09/2010 às 14:01
Victor
Thiago,
Imaginei q pudesse ser isso, mas fiquei na dúvida pq na descrição fala formato: Flash CS3.
Vou ter q ver oq q eu faço entaum, valeu!
Abraços....
responder - útil - 15/09/2010 às 08:53
DJ George Flash
ola estou com um problema pois os nomes de artista e musica só estao saindo algumas vogais alguem ai teve o mesmo erro ou pode me ajudar...
responder - útil - 25/12/2010 às 18:47
Vitor
Como que faço para as musicas serem reproduzidas aleatoriamente.
responder - útil - 14/02/2011 às 15:38
Fabio Silva
Caros, Boa Tarde
Tenho uma duvida
Gostaria de colocar no site que estou criando so as barras do equalizador no centro do site para funcionar com o player que ja tenho tocando as minhas musicas como faço
exemplo: http://templates.entheosweb.com/template_number/27700.asp#/home/
Gostei mt desse e queira fazer bem parecido me ajudem
Grato...
responder - útil - 16/02/2011 às 14:49
Thiago Bueno
Olá Pessoal!
Bom se vocês estão baixando o arquivo do Romer Santos e tiver dando erro vocês não estão seguindo o Tutorial e nem baixando o arquivo de inicio se tem erros não é no codigo do Tutorial e sim do arquivo baixado, o player de exemplo que tem no fim do Tutorial foi criado com o codigo do Tutorial se vocês seguirem com o arquivo de inicio e o codigo do Tutorial acho que não terão mais problemas
Abraço!
responder - útil - 22/03/2011 às 13:28
Jean Rodrigues
Como fazer pra que o player não toque automaticamente,
e como acrescentar um botão stop ?
responder - útil - 05/04/2011 às 10:36
nilton moreira damascena
quero um tocador como este ai mais que toque pelo menos 12 musicas
responder - útil - 15/05/2011 às 01:22
Thiago Bueno
Olá nilton moreira damascena, então cara esse ai toca ate 50, 100, 150 se vc quiser só tem que editar o arquivo XML
responder - útil - 15/05/2011 às 21:47
landskron
Primeiramente parebéns pelo site, é excelente e mostra uma preocupação incomum com a pessoa que está acessando, não é apenas um site funcional, é um site inteligente. A parte de cadastro do usuário é absolutamente demais, muito bem desenvolvido.
Estou usando o Flash CS3.
Escrevi o código acima no primeiro frame do layer AS, salvei...cliquei em publish....ok...gerou o swf.....executei o swf....nada apareceu mesmo eu tendo congirado corretamente o XML e colocando músicas e imagens nas pastas corretas.
Entrei novamente no FLA para edição e testei o CTRL+ENTER para rodar diretamente por ali. Aparece então na janela de erro o seguinte:
"TypeError: Error #1010: A term is undefined and has no properties.
at mp3player_fla::MainTimeline/mp3player_fla::frame1()"

alguma idéia do que pode ser ?
responder - útil - 27/05/2011 às 12:15
Kelvin
Olá, muito bom o tuturial.
o problema é q o meu player nao esta exibindo as imagens . ele funciona normal soh as imagens q nao aparecem. c puder enviar um arquivo swf com tds os caminhos q ta aki no tuturial pra eu rodar e ve se da eu agradeço
responder - útil - 03/06/2011 às 15:25
irineu oliveira
ola eu reportei erros..
1120: Access of undefined property gr2
gr2.filters = filB;
ja redigitei tudo do zero enada....
sera que tem como me enviar por e-mail
obrigado
responder - útil - 02/07/2011 às 17:49
charlles
cara eu preciso de um player com esse spectrum analyser mas para uma web radio (streaming), como eu faço ?, e aproveitando tambem quero te perguntar como se faz um player que reproduz streaming em aacplus.
responder - útil - 08/07/2011 às 22:27
Felipe Panegalli
E aew thiago blz.... kra excelente player, gostei muito... soh um detalhe, eu vi q mais pessoas tmb tiveram esse problema de quando querem voltar uma musica ele volta pro começo, tipo ta tocando charie brown, de vez voltar pro nirvana e volta pro foo figther. tem alguma idéia do q seja isso?obg
responder - útil - 27/07/2011 às 23:24
Luana Costta
Thiago, usando sua action dá erro no meu...o que pode ser errado? dá o seguinte aviso:

TypeError: Error #1009: Não é possível acessar uma propriedade ou um método de uma referência de objeto nula.
at mp3player_fla::MainTimeline/CarregaXML()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/onComplete()
responder - útil - 22/10/2011 às 15:13
Thiago Bueno
verifique se o arquivo musicas.xml esta junto do arquivo .FLA ou seja na mesma pasta
responder - útil - 23/10/2011 às 16:04
Matheus Mariano
Eu estava lendo o código antes de começar a fazer o player pra tentar entender um pouco, então encontrei um erro na função Seek:

SeekBar.SeekBarPro.width = SeekBar.SeekDrag.x 14;

...SeekDrag.x ?? 14;
No código não há nada especificando o que fazer depois do "x", apenas um espaço separando o 14.
responder - útil - 24/10/2011 às 18:52
Thiago Bueno
valeu por ver isso cara é o caso do sinal de Mais
responder - útil - 24/10/2011 às 20:35
Matheus Mariano
Entendi, tranquilo. ;)
responder - útil - 25/10/2011 às 14:29
Neurivan Maia
Thiago Bueno, vc é show d+
Realmente curto muito flash, dreamweaver, firework, as, js, css, etc.
Achei o seu mp3player muito bonito, uma interface atraente, enfim, bem eleaborado. Parabéns!
Baixei, e não tive nenhuma dúvida, só alegria. Já procurei muito na internet esse projeto, mas até agora como o seu não. Valeu mesmo. Continue a nos ajudar, não só para baixar mais tambem para aprimorar nosso aprendizado.
Até a p´roxima amigo.
responder - útil - 08/11/2011 às 17:10
Thiago Bueno
Obrigado volte sempre, faça um cadastro no site e vc podera criar tutoriais tbm
responder - útil - 08/11/2011 às 17:12
Douglas
Ai ficou muito show, pow se desse pra vc colocar uma lista mostrando todas as musícas contidas no player iria muito legal tmb.
responder - útil - 11/11/2011 às 18:39
Thiago Bueno
Olá Douglas ficaria legal mesmo seguindo outro tutorial que tem aqui no site para duplicar mc de uma lista XML daria para adaptar
responder - útil - 11/11/2011 às 21:53
Maureucio
Velho, muito bom o tutorial e o player , só ainda não descobri como colocar a lista no aleatório, tem como ?
responder - útil - 18/12/2011 às 14:21
João Victor Holander
Olá thiago tudo bem ?
Gostaria de saber se existe outro player igual este seu pq eu ja baixei um igual mas não consigo mas sncontra-lo....
se puder me ajudar..
responder - útil - 01/02/2012 às 02:28
Gustavo Henrique
Thiago, muito bom o seu trabalho, sempre uso alguns Scripts que vc desenvolve pois são muito bons. Será q tem como vc ensinar como faz essa barra de Download aí no Topo da postagem, onde tem o botão preto Download, se tiver como fico muito grato! Obrigado desde já e abraços!
responder - útil - 10/02/2012 às 15:35