Lucas Vida 0 Denunciar post Postado Outubro 22, 2009 Bom dia a todos! Não sei se aqui vai ser bem a seção correta, mas necessito desenvolver um player que seja em modo aleatório...a ideia é ter um player em que a pessoa entra no site e toca uma determinada música, seria umas 5 ou 6, mas que cada hora que ela entrasse tocava uma diferente, claro que dependendo pode ser que repita, mas que nem sempre seja o mesmo trecho ou música. obrigado a todos Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Outubro 23, 2009 Pegue todas as musicas em um array E use Math.random()*array.leght Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Lucas Vida 0 Denunciar post Postado Outubro 23, 2009 Bacana Berseck, mas você sabe me informar onde e como coloco esse array no exemplo e tutorial que você me indicou? http://forum.imasters.com.br/index.php?/topic/331250-tutorial-mp3-player-com-datagrid-e-xml/ Abs Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Outubro 23, 2009 Aqui ó: function iniciar(){ mysound = new Sound(); mysound.onSoundComplete = iniciar; if(inic == 0){ bt_play._visible = 1; bt_pause._visible = 0; inic = Math.round(Math.random()*mp3.length); txt_stat = mp3[inic]; mysound.loadSound(mp3[inic], true); // carrego a musica da array mysound.stop(); // dou stop assim que ele encontra a primeira musica para que ele n inicie tocando sozinho inic++; }else if(inic == mp3.length){ mysound.onSoundComplete = function(){ mysound.stop(); } }else{ txt_stat = mp3[inic]; mysound.loadSound(mp3[inic], true); inic++; } } Abraços E bons estudos Compartilhar este post Link para o post Compartilhar em outros sites
Lucas Vida 0 Denunciar post Postado Outubro 30, 2009 Boa tarde Beserck, desculpa pela demora...Gostaria de agradecer você mais uma vez pela atenção.Não sou muito bom em programação mas estudei seu código e consegui fazer as alterações que necessitava para colocar o player da maneira que eu deseja, no caso como queria ele iniciando automaticamente mudei alguns valores, e tirei as partes que não ia usar. Mas ainda falta alguns detalhes que se possível gostaria de modificar. O primeiro seria que na hora que clica no botão voltar, se a pessoa voltar além da primeira música ele aparece escrito "Undefine", queria saber se tem como voltar para a última música. tambem gostaria de saber se tem como deixar ele em loop, assim que acabar a ultima música ele volta para a primeira. Outra dúvida que tenho é se da pra editar o nome nome dá música, por exmplo "Musica: Musica Um">sample.mp3 e fazer rolagem automática dentro do txt_stat.Até então meu código está assim: //Código original desenvolvido por: Berseck //Uso codificação que leia os acentos System.useCodepage = true; //Minhas arrays var mp3:Array = new Array(); //Variáveis var mysound:Sound = new Sound(); mysound.onSoundComplete = inicia; var inic:Number = 0; var pos:Number = new Number(); //Clicar na celula muda de música dgL = new Object(); dgL.cellPress = function(evt_obj:Object){ inic = evt_obj.itemIndex; iniciar(); if(inic == 1){//alterei o valor para 1 bt_play._visible = 1; bt_pause._visible = 0; }else{ bt_play._visible = 0; bt_pause._visible = 1; } } //Style _global.style.setStyle("color", 0x696969); _global.style.setStyle("themeColor", "haloBlue") _global.style.setStyle("fontSize",16); _global.style.setStyle("fontFamily" , "OCR A Extended"); //Função que vai carregar os Mp3 var my_xml = new XML; my_xml.ignoreWhite = true; my_xml.onLoad = function(success:Boolean) { if(success){ var cont = my_xml.firstChild.childNodes; for(var i = 0; i < cont.length; i++){ mp3.push(cont[i].childNodes); var dados:Object = {Músicas:cont[i].childNodes}; my_dg.addItem(dados); } iniciar(); }else{ trace("erro ao carregar o xml"); } } my_xml.load("musicas.xml"); //Fim //Inicia o player function iniciar(){ mysound = new Sound(); mysound.onSoundComplete = iniciar; if(inic == 1){ bt_play._visible = 1; bt_pause._visible = 0; vu._visible = 0; inic = Math.round(Math.random()*mp3.length); txt_stat = mp3[inic]; mysound.loadSound("mp3/"+mp3[inic], true); //mysound.stop(); inic++; }else if(inic == mp3.length){ mysound.onSoundComplete = function(){ mysound.stop(); } }else{ txt_stat = mp3[inic]; mysound.loadSound("mp3/"+mp3[inic], true); inic++; } } //Fim //Botões bt_pause._visible = 1; vu._visible = 1; bt_play.onPress = function(){ mysound.start(pos/1000); bt_pause._visible = 1; vu._visible = 1; bt_play._visible = 0; } bt_pause.onPress = function(){ mysound.stop(); bt_play._visible = 1; vu._visible = 0; bt_pause._visible = 0; pos = mysound.position; } bt_stop.onPress = function(){ mysound.stop(); bt_play._visible = 1; bt_pause._visible = 0; vu._visible = 0; } bt_fow.onPress= function(){ if(inic >= mp3.length){ inic = mp3.length; }else{ iniciar(); bt_play._visible = 0; bt_pause._visible = 1; vu._visible = 1; } } bt_bac.onPress= function(){ if(inic == 1){ inic = 0; }if(inic == 2){ inic -= 2; iniciar(); bt_play._visible = 0; bt_pause._visible = 1; vu._visible = 1; }else { inic -= 2; iniciar(); bt_play._visible = 0; bt_pause._visible = 1; vu._visible = 1; } } //Fim //Volume mc_volume.gotoAndStop(6); mysound.setVolume(100); mc_volume.vol1.onPress = function(){ mysound.setVolume(0); mc_volume.gotoAndStop(1); } mc_volume.vol2.onPress = function(){ mysound.setVolume(20); mc_volume.gotoAndStop(2); } mc_volume.vol3.onPress = function(){ mysound.setVolume(40); mc_volume.gotoAndStop(3); } mc_volume.vol4.onPress = function(){ mc_volume.gotoAndStop(4); mysound.setVolume(60); } mc_volume.vol5.onPress = function(){ mc_volume.gotoAndStop(5); mysound.setVolume(80); } mc_volume.vol6.onPress = function(){ mc_volume.gotoAndStop(6); mysound.setVolume(100); } //Toca a URL mensagem = "Digite aqui a URL do mp3 e aperte Tocar"; site.text = mensagem; site.onSetFocus = function(oldFocus) { trace("to aqui"); if(site.text != "") { site.text = "http://"; } } toca.onPress = function(){ mysound = new Sound(); mysound.onSoundComplete = iniciar; mysound.loadSound(site, true); bt_play._visible = 0; bt_pause._visible = 1; } //Tempo da musica var ttimer = setInterval(intervalTimer, 1000); function intervalTimer(){ var duracao = mysound.duration/1000; var time:Number = mysound.position/1000; var myseekW:Number = my_seek._width; var percent:Number = (time / duracao * myseekW); if(time > 0){ var integer:String = String((time*.0166)>>0); var decimal:String = String((time%60)>>0); stempo = String((integer.length<2)?"0"+integer:integer)+":"+((decimal.length<2)?"0"+decimal:decimal); } else stempo = String("00:00"); } //Fim //Loader function DL(){ download._width = mysound.getBytesLoaded() / mysound.getBytesTotal() * (my_seekBar._width - 2); } var tempoDL = setInterval(DL, 100); //Fim Outra coisa que seria interessante para min, seria colocar a capa do album junto com o player, estava lendo esse outro exemplo de player que contem essa função. http://www.mxstudio.com.br/flash/mp3_player_com_xml/ no caso não sei aonde e como adicionária no código para poder pegar as imagens como filhos no xml. quanto ao xml imagino que ele ira ficar assim: <?xml version="1.0" encoding="utf-8"?> <mp3> <musicas>sample.mp3</musicas> <cd>imagem.jpg</cd> </mp3> Mais uma vez agradeço pela atenção de todos! Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Outubro 31, 2009 Ir e voltar tem que fazer uma comparação para ver se já chegou ao maximo... Ou no minimo para pegar a ultima... Se não me engano no código original tinha essa conta já... Mas como você alterou, tem de re fazer o código é uma coisa simples no botão voltar você precisa colocar um if(inic <= 0) inic = (array.length -1)ele vai para o ultimo numero da array menos 1 else ele continua E a mesma coisa para a ultima musica if(inic >= (array.length -1)) inic = 0 ele zera o contador incial Quanto a novos features que você queira implementar... estude sobre o código e veja sobre MovieClipLoader etc... para poder implementar o que você quiser. Esse tutorial é apenas um exemplo de como se faz... Não tem todas as opções de um player mesmo. Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Lucas Vida 0 Denunciar post Postado Novembro 4, 2009 Bom dia Beserck! Mais uma vez venho te agradecer e tentar esclarecer mais uma dúvida. Consegui solucionar em partes, pois não sei se apliquei o código da maneira correta, mas quando clico no botão voltar agora ele sempre volta para a primeira música, e não vai de música em música como estava, porém não aparece mais o erro. Código original //botão para adiantar musica bt_fow.onPress= function(){ if(inic >= mp3.length){ inic = mp3.length; }else{ iniciar(); bt_play._visible = 0; bt_pause._visible = 1; } } //botão para voltar musica bt_bac.onPress= function(){ if(inic == 1){ inic = 0; }if(inic == 2){ inic -= 2; iniciar(); bt_play._visible = 1; bt_pause._visible = 0; }else { inic -= 2; iniciar(); bt_play._visible = 0; bt_pause._visible = 1; } } Código com as alterações bt_fow.onPress= function(){ if(inic >= mp3.length){ inic = mp3.length; }else{ iniciar(); bt_play._visible = 0; bt_pause._visible = 1; vu._visible = 1; } } bt_bac.onPress= function(){ //Código Substituido if(inic <= 0){ inic = (array.length -1);} if(inic >= (array.length -1)){ inic = 0; iniciar(); bt_play._visible = 0; bt_pause._visible = 1; vu._visible = 1; } else { inic -= 2; iniciar(); bt_play._visible = 0; bt_pause._visible = 1; vu._visible = 1; } } Quanto a questão das imagens dei uma pesquizada sobre MovieClipLoader, mas encontrei esse tutorial na internet ( http://www.plugmasters.com.br/sys/materias/224/1/Carregar-imagens-de-um-XML ) e dele partiu a ideia de criar um novo xml só com imagens, sendo que o número da música seria o mesmo da imagem. Até então está funcionando bem, mas só funciona quando alguém clica, pois se a música acabar a imagem não muda sozinha.você sabe me dizer como posso resolver!? Muito obrigado cara, esses desafios motivam agente a aprender cada vez mais...E assim espero para poder contribuir mais com o forúm. http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Novembro 4, 2009 Vamos ao basico ok? assim talvez você mesmo solucione seu problema tenho 10 musicas! então vou fazer com 10 para você entender bt_forward.onPress = function(){ //Coloco um if que vai verificar se o contador é menor que o total -1 pq uma array comeca do 0 if(inic < (mp3.length-1)){ inic++ }else { //Se ele for igual ao numero maximo menos 1... ou seja está na ultima musica, e você apertar foward ele tem de zerar o contador inic = 0; } //Re inicio o player lembrando que isso é um código ficticio iniciar(); } bt_backward.onPress = function(){ //Coloco um if que vai verificar se o contador é maior que 0 if(inic > 0){ inic--; }else { //se o contador for igual a 0, ele passa a ser a ultima musica inic = mp3.length - 1; } //Reinicio o player lembrando que isso é um código ficticio iniciar(); } Entendeu como funciona?? Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Lucas Vida 0 Denunciar post Postado Novembro 10, 2009 Obrigado novamente Berseck, Agora consegui fazer sim, vi aonde estava o erro! Brigadão mesmo...agora vou tentar implementar a questão da mudança de iamgens para a capa do album! Valeu cara! Abs Compartilhar este post Link para o post Compartilhar em outros sites