MeP3 Player: projeto dev de um mp3 player simples e eficiente

por Marcos Elias

Estou trabalhando num projeto de um tocador de música leve, simples e que não seja muito chato, como são diversos players atuais cheios de bugigangas (tá, tudo bem, há quem goste; mas não é meu caso). Sempre fui feliz com o Winamp com skin clássico, mais ou menos essa idéia pretendo aplicar no Mep3.

A princípio é um player para Windows, baseado na biblioteca Bass (http://www.un4seen.com/). Eis um print no estado em que se encontra (13/01/2010):

Por enquanto (e provavelmente por um bom tempo) tem versão apenas para Windows. Quem sabe no futuro eu faça um parecido que seja multiplataforma, em Lazarus/FreePascal, usando ACS.

Ele deverá ter suporte a vários idiomas (essencialmente inglês e português, sendo aberto para traduções), mas as versões “dev” atuais estão apenas em português (o que pode mudar em pouco tempo, pretendo soltar as compilações dev em inglês e deixar o pt-br para depois de pronta a versão 1.0).

Objetivos essenciais do MeP3:

– Ser leve, fácil de usar e não ir muito além do essencial: tocar mp3 e wma.

– Ser leve não quer dizer ser ruim para usar. O MeP3 pretende ser muito prático. Tecle J na tela principal e será levado a uma busca de músicas na playlist.

– Funções básicas como reproduzir a selecionada e tocar aleatoriamente.

– *Não* ter suporte a skins. Eu não fico olhando um player de música no computador pra achá-lo bonitinho ou parecido com um aparelho de som. Quero apenas que toque as músicas em segundo plano enquanto uso outros programas no PC (como o navegador web, IDEs de desenvolvimento, editores disso e daquilo, etc). Quanto menos processamento o player usar e menos frescuras tiver, melhor. Sendo assim usará componentes padrões do sistema (janelas, abas, botões, etc, sem carregar bitmaps por cima como fazem quase 99% dos players).

– Facilitar o carregamento de arquivos, tanto com cliques no Explorer ou arrastando para a tela dele. Por enquanto não dá para arrastar para a tela do programa, mas dá para arrastar para o ícone se ele estiver fechado (ou passar como parâmetros para o exe).

– Não ficar lendo as tags do MP3 nem usar essas informações na playlist. Minha playlist “atual” geralmente contém de 5 a 15 mil músicas e sets, e é ruim ver os players tentando ler as tags de todas as músicas, causando uma lentidão temporária no programa, mesmo em máquinas atuais. O MeP3 trabalha com uma playlist simples, com os nomes dos arquivos apenas. As tags do MP3 deverão ser exibidas apenas ao tocar a música.

Idéias futuras e o que falta fazer:

– Tocar webradios (suporte parcialmente implementado, já funciona com várias, incluindo mp4/aac e wma).

– Gravar webradios nativamente (pretendo incluir isso no futuro, mas sem pressa).

– Pastas monitoradas (atualiza a playlist com músicas de pastas que o usuário marcar).

– Atalhos globais opcionais (combinações de teclas para controlar a execução das músicas mesmo com a janela mimizada, enquanto você estiver usando outros programas).

Bugs mais importantes da versão dev atual:

– Vários (afinal é DEV e fornecido mais como um preview, o programa não tem nem uma semana de vida, com menos de 20 horas de código).

– A busca na playlist (tecla J) só seleciona o primeiro resultado. Tente ser o mais específico possível (pode usar substrings, por exemplo, para achar a música “paparazzi lady gaga.mp3” basta procurar por ga.m ou zzi ou papar, enfim: qualquer trecho do nome do arquivo).

– Por enquanto não há leitura de tags do MP3, e os caminhos completos são exibidos na playlist. Futuramente deverá exibir apenas o nome do arquivo, e as tags MP3 serão lidas apenas para a música que estiver tocando.

– Falta função para importar playlists m3u e pls. Mas você pode adicionar com um clique (na verdade 3 :P) todas as músicas de uma pasta de uma só vez.

– Algumas raras vezes a troca das músicas não ocorre, a detecção do final da música que está tocando precisa de aprimoramentos, mas nos meus testes funcionou em mais de 99,9% do tempo de uso.

– A deteção se o programa está aberto (ao tentar abrir mais instâncias) nem sempre funciona.

– Ele ainda não salva as opções alteradas (mas salva a playlist).

– Falta função para editar a playlist (há funções parciais, como remover um item).

– A barra de progresso funciona um pouco diferente do que os usuários esperariam (será melhorada no futuro, essa é temporária). A barrinha que você arrasta não acompanha o tempo da música. Assim você pode clicar nela sem arrastar para voltar a música ao mesmo ponto.

– Falando em tempo, falta exibir o tempo das músicas.

Observações para quem for testar

– A playlist padrão (com a lista das músicas carregadas) é salva automaticamente, e fica no arquivo:

C:\Users\[SEU NOME]\AppData\Local\MeP3\playlist.mep3 (lista da aba Músicas)
C:\Users\[SEU NOME]\AppData\Local\MeP3\webradio.mep3r (lista da aba Web Rádios)

– O suporte a WMA depende dos módulos do Windows Media Format (se não tiver o Windows Media Player no seu computador, o que é algo raro em se tratando de Windows, você pode baixar o componente no link: http://www.un4seen.com/download.php?extra/wmfdist.exe).
Se quiser desativar o suporte a WMA, remova a DLL basswma.dll da pasta do programa (faça isso com ele fechado, caso contrário não vai dar por ela estar carregada em memória).

Ao fechar no “x” ele é minimizado na área de notificação (também chamada “bandeja”, próximo ao relógio). Isso é para evitar que você feche por engano com suas músicas em execução, e é padrão na maioria dos tocadores. Você pode desativar isso navegando pelos menus dele, mas por enquanto ele não salva as opções (isso deverá ser feito nos próximos builds).

Para navegar nos menus… Clique com o botão direito em qualquer lugar da tela dele. Todas as funções estarão organizadas num menu pop-up.

Download do MeP3

Ele pode ser baixado em:

http://www.viamep.net/downloads/dev/setup-mep3-player.zip

Esse link corresponde à compilação mais recente em desenvolvimento. Assim que estiver mais estável terá uma página própria.

Testei apenas no Windows 7 e Windows XP. Não pretendo “suportar” versões anteriores do Windows.

Enfim, é um preview que estou compartilhando a quem possa interessar, sem garantias. Sugestões podem ser postadas como comentário aqui :)

Por fim, um último aviso: “talvez” alguns anti-vírus reclamem do bass.dll. O programa não tem vírus, se você quiser pode tentar baixar o bass.dll no site original (http://www.un4seen.com/) e trocar o que vem com ele (desde que seja correspondente à mesma versão usada). No caso o bass.dll serve como o “motor” do player, foi o melhor que encontrei para desenvolvimento para Windows com Delphi. É relativamente comum acusarem indevidamente projetos que usam componentes compartilhados (como o UPX…).

Ele é freeware, a licença final ainda não foi definida. Como falei é um preview de algo no estágio inicial de desenvolvimento, então não reclame esperando um programa 100% pronto :P

comments powered by Disqus

Comentários arquivados

  1. Dark escreveu

    Realmente, nada pior do que programas que instalam mil coisas por traz só pra fazer uma tarefa básica, ou ter mil e duas funções que a pessoa nunca vai usar.

    Ficaria melhor a playlist ficar na pasta do programa, e também distribuir uma versão zip, sem instalador, parece que o instalador apenas extrai e cria o atalho, mas para alguns é mais cômodo extrair e rodar.

    Fazer um programa “portable”, com tudo dentro de uma pasta, sem registros, fica mais fácil para o usuário mover, configurar e fazer backup.

    Sobre sugestões mais “difíceis”:

    -Proibir a playlist de ter duas vezes a mesma musica.

    -Deletar e mudar a ordem das musicas da playlist.

    -Escanear pastas ao adicionar arquivos.

    -Melhorar a randomização, sei que é “aleatório”, mas é desagravel ouvir a mesma musica 2 vezes em menos de 10 minutos(talvez eu esteja sem sorte).

  2. escreveu

    Vlw :)

    A versão instalável não pode gravar na pasta do programa por causa das permissões no Windows, onde usuários comuns não podem gravar na pasta dele. Assim que ele estiver melhor vou soltar uma versão portable também. Se fosse no tempo do Windows 98 até tudo bem, daria pra gravar na pasta do programa como quase todos os programas faziam, mas no 2000/XP pra cima com partições em NTFS isso é ruim, o programa precisaria ser aberto como administrador.

    Escanear as pastas ao adicionar arquivos, mudar a ordem e deletar entradas da playlist estão planejadas (deletar entradas já tem). Sobre proibir duas vezes a mesma música, tem em teste, um item Remover itens duplicados. Vou ver um jeito de fazer automaticamente ao adicionar novas, sem prejudicar o desempenho, já que na lista com 10 mil músicas ele ficou mais lento ao verificar, pois tem que ver linha por linha se tem o arquivo.

    Quanto a randomização… Falta mesmo uma “lista negra” para guardar as músicas que já foram tocadas e não tocá-las novamente até chegar a todas da playlist, estarei vendo isso.

  3. Mariana escreveu

    Adorei o conceito :D

    Mesmo sabendo que não tá pronto gostei da leveza dele, consumiu menos da metade de memória do Winamp aqui com a mesma playlist e webrádios! Assim que tiver pronto me avise por favor, vou querer acompanhar o programa.

  4. Dark escreveu

    Que burro eu sou, esqueci de clicar com botão direito antes de falar, mesmo estando escrito no texto.

    90% do que eu pedi já tem no programa, desculpa ai.

    Agora que já vi as opções, vou exportar a playlist e usa-lo como player principal(mesmo sendo beta, único problema que vi até agora é precisar clicar no RN toda vez que inicia).

  5. escreveu

    Eu postei ele de novo (no mesmo link) com mais melhorias, barra de progresso “decente” e destaque da música ativa da selecionada…

    Nas próximas vou colocar associação aos .mp3 pra adicionar na playlist clicando (claro que opcional). E falta salvar as opções mesmo, falta pouco… :D

  6. Rafael escreveu

    cara muito bom o programa, uso ele no meu eee pc e fico mesmo muito leve, no aguardo da versao final 1.0,
    ps. vai ai uma sugestao, num da pra vazer um modo mais compacto, tipo ele ficar só com os botoes de play\pause\avancar\voltar da largura da barra superior da janela pra deixar o player no topo do lado dos botoes de fechar\minimizar.

  7. escreveu

    Vlw pelos comentários… :D

    Rafael, penso em algo assim como uma interface alternativa, depois verei uma…

    De imediato estou finalizando tudo o que ele tem pra soltar a versão 1.0, aí depois dela vou adicionando recursos… Claro, idéias são sempre bem vindas, essa de interface pequena pra ficar na tela está planejada pra depois da 1.0.

  8. roque escreveu

    istalei o mep modengo no meu pc e não consigo excliur,e o pior é que nem consigo localizar onde ele está para excluir,por favor me ajudem ???

  9. escreveu

    :O

    Vá no painel de controle, adicionar ou remover programas…

    Ou na pasta Mep Mondego dentro de C:\Arquivos de programas ou C:\Program Files (se seu Windows for de 64-bit, ficará na Program Files (x86)).

    Agora se vc nem sabe onde instalou ae complica né? Tente pelo painel de controle / adicionar ou remover programas, é mais garantido.

  10. alceu rodrigues escreveu

    estou testando o mondego e estou gostando, so não consigo adicionar url de radios as que coloquei não fucionam fica conectando e para como faço p/ adicionar playlist de radios

    em breve irei colaborar

  11. escreveu

    Se a playlist for .pls vc pode arrastar pra tela dele, ou abrir mesmo pelo menu > Abrir playlist.

    Algumas fica no “conectando”, se isso se repetir muito experimente clicar no stop, dar um tempinho e depois clique para tocar novamente. Percebi isso mais com as que usam WMA (formato do Windows Media).

  12. marcos escreveu

    vou baixar…mas entrei aqui por uma pergunta comum,…porque a o windws media player nao toca arquivoa de musicas gravados em pastas comuns …aquelas amarelinhas..