Carcleo 4 Denunciar post Postado Março 5, 2008 Ola pessoal do fórum! Talves, seje simples minha duvida porem, não consegui resolver. Então vamos la? Bom, to tentando fazer um radio pra toicar mp3 em flash e estiv e estudando alguns códigos. Cheguei a esse abaixo porem, da o log de erros abaixo. Se alguem puder ajudar desde ja agradeço; codigo var som:Sound = new Sound(); var musicas:Array = new Array(); var i, vol, verifica, pos:Number; var ligado:Boolean; var acao:String; stop(); musicas[0] = "audio/audio1.mp3"; musicas[1] = "audio/audio2.mp3"; musicas[2] = "audio/audio3.mp3"; if (ligado==null) { i = 0; vol = 100; ligado = false; } this.onEnterFrame = function() { som.setVolume(vol); if (ligado==false) { som.loadSound(musicas[i], true); if (i<5) i++; else i = 0; ligado = true; } artista.text = "Artista: " + som.id3.artist; musica.text = "Musica: " + som.id3.songname; verifica = som.getVolume(); if (verifica>=100) { som.setVolume(100); } if (verifica<=0) { som.setVolume(0); } v3.text = som.getVolume() + "%"; } som.onSoundComplete = function() { ligado = false; } v1.onRelease = function() { verifica = som.getVolume(); vol = verifica+5; } v2.onRelease = function() { verifica = som.getVolume(); vol = verifica-5; } stopi.onRelease = function() { som.stop(); } pausi.onRelease = function() { acao = "pause"; pos = som.position/1000; som.stop(); } plai.onRelease = function() { if (acao=="pause") { som.start(pos); acao=""; } else { som.start(); } } ff.onRelease = function() { ligado = false; som.stop(); }log' Compartilhar este post Link para o post Compartilhar em outros sites
Weverton N 0 Denunciar post Postado Março 5, 2008 Amigo, seu código é só esse? Pq se for tá rolando norlmal, e o erro está se referindo á classe flash.media. Ve ai se tem mais codigo e passa pra gente. Se tiver o arquivo .zip, melhor. Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Março 5, 2008 Tem sim: ta em http://www.carcleo.com/player.fla Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Março 6, 2008 O erro era na declaração das variaveis; Mas agora surgiu mais dois problemas. 1) esse código abaixo é para pular as musicas pra frente: ff.onRelease = function () { ligado = false; som.stop(); };E, para pular musicas para traz?Não estou conseguindo. 2) Outra coisa é o seguinte: no inicio dop código tem o seguinte: ... var musicas:Array = new Array(); ... musicas[0] = "audio/audio1.mp3"; musicas[1] = "audio/audio2.mp3"; musicas[2] = "audio/audio3.mp3";Eu gostaria de criar uma função aonde eu não precisasse fazer musicas[0], etc.. e sim que a função contasse quantas musicas tem no diretorio e pegasse as tags id3 delas automaticamente alem de alterar essa parte do código: if (i<5) // auterar o valor do i a cada musica excluida ou acrecentada no diretorio de musicas. i++; else i = 0; ligado = true; }Desde ja meu muito obrigado Compartilhar este post Link para o post Compartilhar em outros sites
Weverton N 0 Denunciar post Postado Março 6, 2008 Para retroceder, você precisa mudar o código. Utilize assim: var som:Sound = new Sound(); var musicas:Array = new Array(); var i:Number = 0; var vol:Number = 100; var verifica, pos:Number; var ligado:Boolean; var acao:String; stop(); musicas[0] = "audio/audio1.mp3"; musicas[1] = "audio/audio2.mp3"; musicas[2] = "audio/audio3.mp3"; function passai(dir) { if (dir == "ff") { i++; } else { i--; } if (i == musicas.length) { i = 0; } else if (i<0) { i = musicas.length-1; } } function playMusic(dir) { passai(dir); som.loadSound(musicas[i], true); artista.text = "Artista: "+som.id3.artist; musica.text = "Musica: "+som.id3.songname; v3.text = som.getVolume()+"%"; } function setaVolume(v) { som.setVolume(v); vol = v; } playMusic("ff"); som.onSoundComplete = function() { playMusic("ff"); }; v1.onRelease = function() { verifica = som.getVolume(); setaVolume(verifica+5); }; v2.onRelease = function() { verifica = som.getVolume(); setaVolume(verifica-5); }; stopi.onRelease = function() { som.stop(); }; pausi.onRelease = function() { acao = "pause"; pos = som.position/1000; som.stop(); }; plai.onRelease = function() { if (acao == "pause") { som.start(pos); acao = ""; } else { som.start(); } }; ff.onRelease = function() { playMusic("ff"); }; rr.onRelease = function() { playMusic("rr"); }; Agora para buscar as musicas do diretorio, eu não conheco nehuma classe no as2 que le diretorio, mas você pode disponibilizar as musicas em xml e carregar com a classe XML. Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Março 6, 2008 Ta ok To quase la. veja a linha: som.loadSound(musicas[i], true);la em cima, precisa dizer o caminho todo de cada mp3 musicas[0] = "audio/audio1.mp3"; musicas[1] = "audio/audio2.mp3"; musicas[2] = "audio/audio3.mp3";Eu to querendo arrumar uma forma ou função que faça isso.leia no diretorio audio/, o nome de cada uma delas para por em som.loadSound(musicas[i], true);Para que, se acaso tirar alguma musica ou por nÃo precise alterar no .fla e que, ao ler o nome de cada musica, de tudo certo.e outra função que leia no diretorio audio/, quantas musicas tem la para por em if (i<5) i++; else i = 0; ligado = true; }Só isso ta FALTANDO Compartilhar este post Link para o post Compartilhar em outros sites
Weverton N 0 Denunciar post Postado Março 6, 2008 Aí é que tá. você não vai precisar definir a comparação de i como 5. Perceba que no código que eu alterei, eu fiz a verificação pelo tamanho do array musicas. if (i == musicas.length) { E como eu disse, eu não conheço, e até onde eu saiba o flash não le arquivos em um diretorio. Mas você pode utilizar a classe loadVars ou XML para acessar uma página ASP que utilize o componente FSO para ler e retornar os dados no flash. abs Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Março 7, 2008 Ta. Ok. Ja fiz uma pagina em php contendo um script que cria uma array contendo os nomes das musicas do diretorio e uma varivel com o numero total de musicas no diretorio. Pergunta? Agora, no Flash, como faço para entregar essa array do php contendo os nomes das musicas do diretorio e a varivel com o numero total de musicas no diretorio? Da uma luz! To quase la! Compartilhar este post Link para o post Compartilhar em outros sites
Weverton N 0 Denunciar post Postado Março 7, 2008 Esse é o codigo para carregar: var myLV:LoadVars = new LoadVars(); myLV.onLoad = function(sucess:Boolean){ if(sucess==true){ musicas = this.dados.split(","); }else{ trace("Problemas ao carregar o arquivo); } } myLV.load("meuarquivo.php"); Daí a adaptação do resto do codigo, ficaria assim: var som:Sound = new Sound(); var musicas:Array;var i:Number = 0; var vol:Number = 100; var verifica, pos:Number; var ligado:Boolean; var acao:String; stop(); var myLV:LoadVars = new LoadVars(); myLV.onLoad = function(sucess:Boolean){ if(sucess==true){ musicas = this.dados.split(","); }else{ trace("Problemas ao carregar o arquivo"); } } myLV.load("meuarquivo.php"); function passai(dir) { if (dir == "ff") { i++; } else { i--; } if (i == musicas.length) { i = 0; } else if (i<0) { i = musicas.length-1; } } function playMusic(dir) { passai(dir); som.loadSound(musicas[i], true); artista.text = "Artista: "+som.id3.artist; musica.text = "Musica: "+som.id3.songname; v3.text = som.getVolume()+"%"; } function setaVolume(v) { som.setVolume(v); vol = v; } playMusic("ff"); som.onSoundComplete = function() { playMusic("ff"); }; v1.onRelease = function() { verifica = som.getVolume(); setaVolume(verifica+5); }; v2.onRelease = function() { verifica = som.getVolume(); setaVolume(verifica-5); }; stopi.onRelease = function() { som.stop(); }; pausi.onRelease = function() { acao = "pause"; pos = som.position/1000; som.stop(); }; plai.onRelease = function() { if (acao == "pause") { som.start(pos); acao = ""; } else { som.start(); } }; ff.onRelease = function() { playMusic("ff"); }; rr.onRelease = function() { playMusic("rr"); }; E isso considerando que seu php retorne assim: &dados=arquivo1mp3,arquivo2.mp3,arquivo3.mp3 Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Março 7, 2008 Testei mas só da indefinido e não carrega. Tem como achar em que ponto ta falhando? o c ódigo que usei no php é simples: <?php $dir = 'audio/'; $dir_musicas = scandir($dir); $quais_musicas = array_splice($dir_musicas, 2); $quantas_musicas = count($quais_musicas); //print_r ($quais_musicas); //print ($quantas_musicas); ?>e retorna no print Array ( [0] => audio1.mp3 [1] => audio2.mp3 [2] => audio3.mp3 [3] => audio4.mp3 [4] => audio5.mp3 ) 5 Só + uma pergunta: O php tem que retornar uma matriz com esses valores ou uma variavel tipo string com o valor abaixo? &dados=arquivo1mp3,arquivo2.mp3,arquivo3.mp3 Compartilhar este post Link para o post Compartilhar em outros sites
Weverton N 0 Denunciar post Postado Março 7, 2008 Tá dando erro por causa da sua ultima pergunta aí... você tem que colocar o seu resultado na estrutura que pasei.. &dados=arquivos separados por virgula Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Março 7, 2008 Olha, na boa. To tendo um pouco de dificuldade em conseguir fazer isso. você não teria um pequeno exemplo que poderia postar de como fazer essa interação? Compartilhar este post Link para o post Compartilhar em outros sites
Weverton N 0 Denunciar post Postado Março 7, 2008 seguinte amigo. Se você utilizar o ultimo codigo completo do flash que postei, vai dar certo a parte do flash. Daí, o php não posso te ajudar, pq não mecho com isso. Mas você tem que fazer com que o retorno do php retorne assim: &dados=arquivo1mp3,arquivo2.mp3,arquivo3.mp3 Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Março 7, 2008 Pois é, isso ja consegui mas não esta funcionando meu código php: <?php $dir = 'audio/'; $dir_musicas = scandir($dir); $quais_musicas = array_splice($dir_musicas, 2); $quantas_musicas = count($quais_musicas); $qual_musica = implode(",",$quais_musicas); print "&dados=$qual_musica"; ?> O que isso imprime na tela: &dados=audio1.mp3,audio2.mp3,audio3.mp3,audio4.mp3,audio5.mp3 Compartilhar este post Link para o post Compartilhar em outros sites
Weverton N 0 Denunciar post Postado Março 7, 2008 Utilize dois frames. No primeiro, coloque esta parte do codigo: var som:Sound = new Sound(); var musicas:Array; var i:Number = 0; var vol:Number = 100; var verifica, pos:Number; var ligado:Boolean; var acao:String; stop(); var myLV:LoadVars = new LoadVars(); myLV.onLoad = function(sucess:Boolean){ if(sucess==true){ musicas = this.dados.split(","); play(); }else{ trace("Problemas ao carregar o arquivo"); } } myLV.load("meuarquivo.txt"); No segundo, coloque esta: function passai(dir) { if (dir == "ff") { i++; } else { i--; } if (i == musicas.length) { i = 0; } else if (i<0) { i = musicas.length-1; } } function playMusic(dir) { passai(dir); som.loadSound(musicas[i], true); artista.text = "Artista: "+som.id3.artist; musica.text = "Musica: "+som.id3.songname; v3.text = som.getVolume()+"%"; } function setaVolume(v) { som.setVolume(v); vol = v; } playMusic("ff"); som.onSoundComplete = function() { playMusic("ff"); }; v1.onRelease = function() { verifica = som.getVolume(); setaVolume(verifica+5); }; v2.onRelease = function() { verifica = som.getVolume(); setaVolume(verifica-5); }; stopi.onRelease = function() { som.stop(); }; pausi.onRelease = function() { acao = "pause"; pos = som.position/1000; som.stop(); }; plai.onRelease = function() { if (acao == "pause") { som.start(pos); acao = ""; } else { som.start(); } }; ff.onRelease = function() { playMusic("ff"); }; rr.onRelease = function() { playMusic("rr"); }; stop(); O problema é que não está dando tempo de carregar o array, confome explicado neste post: http://wevertonn.wordpress.com/2008/01/29/...s-nao-funciona/ Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Março 7, 2008 Ok mas e os Botoes? Eu coloco no 1º ou no 2º Frame? veja em que pe esta: http://www.carcleo.com/player.zip Compartilhar este post Link para o post Compartilhar em outros sites
Weverton N 0 Denunciar post Postado Março 7, 2008 Pode deixar no segundo frame. Se quiser, crie uma camada so para os botões, daí eles abrangerão o primeiro e o segundo frame. abs Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Março 7, 2008 No 1º frame, puz um preloader. Me responde uma curiosidade: o código abaixo .... myLV.load("musicas.php"); myLV.onLoad = function(sucess:Boolean){ if(sucess==true){ musicas = this.dados.split(","); ....principalmente: musicas = this.dados.split(",");Não obriga as musicas a ficarem no mesmo diretorio que o swf? Se sim, como faço para infomar que o diretório é outro? No codigo não vejo lugar algum fazendo mensão ao diretorio onde estão as musicas! Compartilhar este post Link para o post Compartilhar em outros sites
Weverton N 0 Denunciar post Postado Março 7, 2008 ou você informa isso na hora de escrever o retorno no php: &dados=musicas/audio1.mp3,musicas/audio2.mp3 Ou você coloca assim nessa linha: som.loadSound("musicas/"+musicas[i], true); Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Março 7, 2008 so da indefinido. Estou postando o arquivo novamente, por favor. Baixe e de uma olhada, talves tenha alguma coisa de errado. http://www.carcleo.com/player.zip Em tempo, qundo puz no 1o frame aquela parte que tu falou, v eja o que saiu n o output: Error opening URL 'file:///C|/Program%20Files/Apache%20Group/Apache2/htdocs/php/player/projeto/musicas/undefined' Error opening URL 'file:///C|/Program%20Files/Apache%20Group/Apache2/htdocs/php/player/projeto/musicas/undefined' Error opening URL 'file:///C|/Program%20Files/Apache%20Group/Apache2/htdocs/php/player/projeto/musicas/undefined' Error opening URL 'file:///C|/Program%20Files/Apache%20Group/Apache2/htdocs/php/player/projeto/musicas/undefined' Error opening URL 'file:///C|/Program%20Files/Apache%20Group/Apache2/htdocs/php/player/projeto/musicas/undefined' Error opening URL 'file:///C|/Program%20Files/Apache%20Group/Apache2/htdocs/php/player/projeto/musicas/undefined' Error opening URL 'file:///C|/Program%20Files/Apache%20Group/Apache2/htdocs/php/player/projeto/musicas/$qual_musica"; ?>' Error opening URL 'file:///C|/Program%20Files/Apache%20Group/Apache2/htdocs/php/player/projeto/musicas/$qual_musica"; ?>' Error opening URL 'file:///C|/Program%20Files/Apache%20Group/Apache2/htdocs/php/player/projeto/musicas/$qual_musica"; ?>' Error opening URL 'file:///C|/Program%20Files/Apache%20Group/Apache2/htdocs/php/player/projeto/musicas/$qual_musica"; ?>' Error opening URL 'file:///C|/Program%20Files/Apache%20Group/Apache2/htdocs/php/player/projeto/musicas/$qual_musica"; ?>' Error opening URL 'file:///C|/Program%20Files/Apache%20Group/Apache2/htdocs/php/player/projeto/musicas/$qual_musica"; ?>' Error opening URL 'file:///C|/Program%20Files/Apache%20Group/Apache2/htdocs/php/player/projeto/musicas/$qual_musica"; ?>' Error opening URL 'file:///C|/Program%20Files/Apache%20Group/Apache2/htdocs/php/player/projeto/musicas/$qual_musica"; ?>' Error opening URL 'file:///C|/Program%20Files/Apache%20Group/Apache2/htdocs/php/player/projeto/musicas/$qual_musica"; ?>' Error opening URL 'file:///C|/Program%20Files/Apache%20Group/Apache2/htdocs/php/player/projeto/musicas/$qual_musica"; ?>' Error opening URL 'file:///C|/Program%20Files/Apache%20Group/Apache2/htdocs/php/player/projeto/musicas/$qual_musica"; ?>' Error opening URL 'file:///C|/Program%20Files/Apache%20Group/Apache2/htdocs/php/player/projeto/musicas/$qual_musica"; ?>' Error opening URL 'file:///C|/Program%20Files/Apache%20Group/Apache2/htdocs/php/player/projeto/musicas/$qual_musica"; ?>' Error opening URL 'file:///C|/Program%20Files/Apache%20Group/Apache2/htdocs/php/player/projeto/musicas/$qual_musica"; ?>' Compartilhar este post Link para o post Compartilhar em outros sites