[DICA] - Organizando e reproduzindo suas MP3 com FSO ...
Olá Pessoal,
Frequentemente eu vejo a galera postando um monte de script, em sua grande maioria complexo para quem está iniciando, como é o meu caso.
Fiz um script simples, de acordo com as minhas necessidades. O que eu mais gostei nele, é que, embora possa se fazer de diversas maneiras, acredito ter feito
usando uma bem fácil.
Descrição: Supondo que cada artista/banda esteja com as suas musicas em uma pasta e que esta pasta pode ter diversas subpastas (no caso, os albuns deste
artista), este script de apenas uma página (poderiam existir várias, com includes e BDs, mas a idéia é ser simples) lista as pastas e os arquivos (musicas)
da pasta atual.
Gostaria de agradecer ao LucasBR por grande apoio e auxílio. Graças a sua ajuda, consegui trabalhar para que a musica possa ser tocada no proprio browser,
sem a necessidade de abrir um programa.
Bom, vamos ao código:
// Aqui criei uns estilos no proprio corpo para ficar mais fácil<style type="text/css"><!--.table1 { font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #FFFFFF; border: thin solid #003366;}.table2 { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 13px; color: #003366; background-color: #CCE6FF;}.table3 { text-align: center; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 13px; font-weight: bold; color: #FFFFFF; background-color: #006699;}a:link { color: #003366; text-decoration: none;}a:visited { color: #003366; text-decoration: none;}a:active { color: #003366; text-decoration: none;}a:hover { color: #006699; text-decoration: none;}--></style><%caminho = request.QueryString("artista")// A idéia é que quando se clique em um artista abra-se a pasta dele. Para isso, altera-se o valor da variável caminho.if caminho = "" Then // Substituir pela pasta onde ficam as suas MP3 caminho = "C:\Rodrigo\Musica"end ifSet fso = CreateObject("Scripting.FileSystemObject")Set folderObject = fso.GetFolder(caminho)Set filesObject = folderObject.FilesSet subFolders = folderObject.SubFolders%><%// Só exibe o cabeçalho da tabela, se existirem subpastas para a pasta atualIf subFolders.Count <> "0" Then%><table class="table1"><tr><td class="table3">Nº</td><td class="table3">Artista</td><td class="table3">Músicas</td></tr><%cont=0%><% For Each folderObject in SubFolders %>// Lista as pastas, conta e exibe quantos arquivos existem nela.<%cont=cont+1%><tr><td align="right" class="table2"><%=cont%></td><td class="table2"><a href="default.asp?artista=<%=folderObject.path%>"><%= folderObject.Name%></a></td><td align="right" class="table2"><% Set total = folderObject.Files %><% response.Write(total.Count) %> </td></tr><% Next %></table><br><%End if%><%// Só exibe o cabeçalho da tabela, se existirem arquivos para a pasta atualIf filesObject.Count <> "0" Then%><table class="table1"><tr><td class="table3">Nº</td><td class="table3">Música</td><td class="table3">Tamanho(Mb)</td></tr><%cont=0%><% For Each file In filesObject %><%cont=cont+1%><tr><td class="table2"><%=cont%></td><td class="table2"><%=file.Name%></td><td class="table2" align="right">Converte de Bytes para MegaBytes e exibe o resultado com apenas 2 casas decimais.<%=FormatNumber(Round(file.Size/1024/1024,2))%></td></tr><% Next %></table><br><% End If %><a href="java script:history.back();">[Voltar]</a><%Set subFolders = NothingSet fileObject = NothingSet folderObject = NothingSet fso = Nothing%>
Pronto !
Podemos aprimorar ainda mais isto, mandando executar o arquivo em questão no player ...
em uma outra página, colocamos o seguinte código
<OBJECT ID="WMPlay" border=0 CLASSID="clsid:22d6f312-b0f6-11d0-94ab-0080c74c7e95F" codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701" standby="" type="application/x-oleobject"> <EMBED type="application/x-mplayer2" pluginspage="http://download.microsoft.com/download/winmediaplayer/nsplugin/6.4/WIN98/EN-US/wmpplugin.exe" src="teste.mp3" NAME=WMPlay ShowControls=1 ShowStatusBar=1 displaysize="0" <OBJECT ID="WMPlay" border=0 CLASSID="clsid:22d6f312-b0f6-11d0-94ab-0080c74c7e95F" codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701" standby="" type="application/x-oleobject"> <EMBED type="application/x-mplayer2" pluginspage="http://download.microsoft.com/download/winmediaplayer/nsplugin/6.4/WIN98/EN-US/wmpplugin.exe" src="teste.mp3" NAME=WMPlay ShowControls=1 ShowStatusBar=1 displaysize="0" height=68 > </EMBED> </OBJECT>// -1 = automatico, 0 = Não , 1 = sim// O código inicial só funcionava no IE e não no FF. Com a ajuda do LucasBr e com algum estudo, descobri que o comando "param name" só funciona no IE. Para fazer isto CrossBrowser, é necessário utilizar os parâmetros dentro do EMBED.// Vai tocar o arquivo que estiver no parametro src (neste caso, teste.mp3) > </EMBED> </OBJECT>
Pronto !
Tudo o que se precisa fazer é através de um Frame ou Iframe, acrescentar um Link na primeira página para abrir na segunda, passando como parâmetro o Path do arquivo. Ai na segunda pagina, atraves de um Request.QueryString, captura-se este valor e joga no src.
Infelizmente, só toca uma música por vez. Gostaria de saber se teria como ir adicionando as musicas na sequência, a medida que vai clicando no arquivo a esquerda, adicionando na playlist (ou em uma outra pagina) a direita. Tentei adaptar o script da rádio uol, mas não tive sucesso.
Fiz uma pesquisa por Playlist ASP, e encontrei estes 2 sites aqui:
http://www.paulsadowski.com/WSH/ASP-Playlist.htm
http://www.microsoft.com/windows/windowsme...rticles/ad.aspx
Mas infelizmente não consegui entender / implementar.
Se alguém puder auxiliar, para que o script fique um pouco mais completo, eu agradeceria.
Novamente, obrigado ao LucasBr pelo auxílio e colaboração.
Sei que o script é simples, mas no meu caso foi útil ...
Valeu galera,
Até a próxima ...
Discussão (1)
Carregando comentários...