[VB6] MADamp 3

madcat1990

Power Member


MADamp3

Release Candidate 4


Detalhes:

Este é um media player que ando a fazer nos meus poucos tempos livres, vendo que eu gosto mais
de software feito por mim. (dá me orgulho ;) ) Também como sou um pouco "noob" quanto a multimedia
este media player fez me aprender muita coisa, interpretar Midis, mp3, verificar a genuidade dos ficheiros
e é o primeiro programa que faço sem dependencias externas, nomeadamente, ficheiros OCX e etc...
Vendo que ha vezes em que quero usar o meu software em sitios publicos e eles nao tem os ficheiros OCX instalados, algo que me irrita profundamente. Mas enfim, consegui!



Changelog:

3.0 Beta :
*Botões com icons do "ClearLook" adicionados!
*Playlist Adicionada
*Shuffle
*MP3/2/1 Reproduziveis!
*Midi Reproduzivel!
*Backup de Playlist Adicionado!
*Ficheiro .INI externo adicionado para as opções
*Integrado GUI para modificação das configurações

3.0 RC1 :
*Novo esquema de cores
*Adicionado Progress Bar ao estilo Windows™ Vista™
*Tratado um bug que fazia o player "crashar" por uns segundos
*WAV Reproduzivel
*Shuffle Adicionado!
*About Adicionado!
*Limpar Lista Adicionado!
*Apagar fisicamente um ficheiro Adicionado!
*Tratei de um bug que fazia a leitura de M3U perder 2 musicas
*Tratei de um bug que fazia o programa ir abaixo ao adicionar um ficheiro
*Adicionado Procura recursiva de pastas!
*ADICIONADO SUPORTE WMA!
*Adicionado link no "About" para o nosso site!
*Adicionado detecção do firefox!
*Adicionado Estatisticas de Lista (Top5 ainda a ser trabalhado...)
*Adicionada uma função que escolhe automaticamente a ultima musica que o utilizador ouviu antes de ter fechado o MADamp3
*Verifica agora (se o utilizador o desejar) se tem mais que um madamp3 aberto.
*Adicionado Remover da lista (nao fisicamente)

3.0 RC2 :
*Tratei de um bug que fazia o programa dar 1 erro de runtime quando se abria varias vezes (obrigado AMG)
*Tratei de umas falhas de segurança (obrigado AMG)
*Novo SplashScreen
*Quando tem algo selecionado na playlist e carregar no botão delete, ele apaga a musica selecionada

3.0 RC3 :
-Modifiquei a interface por completo
-Adicionei a opção do player parar de reproduzir a musica DEPOIS de ter limpo a lista
-Adicionei a opção do player lembrar-se da altura que tinha na ultima vez que foi aberto
-Tratei dum bug que fazia com que o label em que está a posição da musica, ficasse com o left em 0
-Adicionei um novo Beta Tester (Parabéns BadBoyNuno)
-Adicionei MultiSelecção na playlist para a remoção de 1 ou mais itens de uma vez
-Para opções da Playlist agora é fazendo right click na mesma
-Melhorei o visual do Skin (agora na parte debaixo do form do player, nao aparece o fundo do form em si, mas sim o fundo do skin)
-Tratei dum bug que ocorria quando nós nao tinhamos nada selecionado no "Add Folder"
-Adicionei Multi remoção fisica de ficheiros
-Tratei dum overflow que dava de vez em quando no madamp
-Adicionei o TitleScroll
-Adicionei o controlo da velocidade do TitleScroll nas opções
-Adicionei um botão bem visivel para o menu da playlist
-tratei de um bug que fazia o MADamp dizer aleatoriamente que o Default.m3u estava corrupto
-Ao ler o Default.m3u o MADamp já verifica se os ficheiros existem, caso não existirem ele avança "silenciosamente" para a proxima musica na lista
-MADamp declarado estável!
-Calibrei melhor os as áreas dos botões =D
-Tratei de um bug no "ADD FOLDER" que ocorria quando se adicionava 1 pasta so com 1 ficheiro la dentro.
-Tratei de um bug no "ADD FOLDER" que ocorria quando se adicionava 1 pasta vazia
-Tratei de um bug no "ADD FOLDER", ele agora guarda o ultimo directório em que andou
-Tratei de um bug no "ADD FOLDER", ele agora guarda a definição de, se quer procurar em sub pastas
-Adicionei os botoes "Desktop" e "My Docs" no "ADD FOLDER"
-Reparei que algumas vezes o MADamp nao guarda o ultimo directorio usado, ele agora guarda sempre!
-Adicionei dois botões de ajuda nas opções!

3.0 RC4 :
-Adicionei o Update Manager
-Tratei de umas melhorias no Update manager nomeadamente, ele está mais seguro e mais restrito quanto aos ficheiros sacados
-Adicionei a função de Drag'n'Drop
-Tratei de um bug que dava quando se adicionava ficheiros via drag and drop
-MADamp RC4 declarado estável
-Tratei dum bug no Update manager na parte em que ele verificava a legitimidade do ficheiro baixado
-Adicionei a opção de por o MADamp na system tray =D
-Tratei de um bug no focus de quando o MADamp estava minimizado no system tray =D
-Tratei de um bug que fazia a musica no madamp ainda ser reproduzida quando este for fechado no system tray
-Tratei de um bug que dava quando se actualizava manualmente o MADamp, ele dava erro ao ir as opções
-Tratei de um bug que fazia o MADamp NAO mudar a velocidade do scroll quando arrancava


Screenshot:




Notas:
c97116aeccb09871e4030a388851304d.gif

Este programa é compativel com o Microsoft™ Windows™ Vista™


Obrigado especial para:
-TomoyoChan por ter encontrado uma série de bugs!
-Uchiha por ter também encontrado bugs
-Esp@nhol por me acalmar em alturas de raiva extrema
-E a você por usar ;)

Download:

Servidor Oficial da AltoCircuito (186KB)
US_flag.gif
 
Última edição:
tá muito fixe sim, parabens! :wink:

agora só falta poder ver-se videos, experimentei adiconar .mpg e deu que o tipo de ficheiro não era suportado, só falta mesmo isso.
 
Hum... estive a ver, e sim senhor, um projecto que deves continuar...

Suguestões que acho que todos gostamos de ver neste tipo de programas, e seria engraçado explorares para numa próxima versão implementares, já que não é assim muito dificil :p (já fizeste o mais complicado).

Podermos usar Drag de ficheiros para a playlist.
Minimzar para o systray e colocares um menuzito de controlo tipo play/stop/pause/next/prev/
Mais à frente (este sim que é mais complicado, mas não impossivel) adicionares um equalizer.

Gostei bastante do splash screen, mas é coisa para se apresentar apenas uma vez, na primeira execução, poderia colocar uma entrada no .ini de configuração para que se as pessoas o quisessem desligar (o splash screen) o pudessem fazer.

De resto acho que só falta mesmo um melhoramento grafico na main instace do programa.

Nota que não estou a criticar, apenas a opinar. :)
desde já os meus parabens, e boa continuação :)
 
Minimzar para o systray e colocares um menuzito de controlo tipo play/stop/pause/next/prev/

Por acaso ando a implementar isso enquanto falamos ;)

Mais à frente (este sim que é mais complicado, mas não impossivel) adicionares um equalizer.

não faço milagres :S

Gostei bastante do splash screen, mas é coisa para se apresentar apenas uma vez, na primeira execução, poderia colocar uma entrada no .ini de configuração para que se as pessoas o quisessem desligar (o splash screen) o pudessem fazer.

Vou já adicionar!!!!

De resto acho que só falta mesmo um melhoramento grafico na main instace do programa.

Como assim? XD nao vou por 1 interface como no wmp11, este madamp foi feito para pcs lentinhos XP logo nao pode ter 1 interface toda XPTO, se bem que, posso incorporar um sistema de skins...

Quanto aos videos...O unico problema são os AVI com MP3 no som.. ainda tou para ver porque é que dá esse problema..
mas depois vou incorporar isso, mas só no RC3 :D
 
Minimzar para o systray e colocares um menuzito de controlo tipo play/stop/pause/next/prev/

Por acaso ando a implementar isso enquanto falamos ;)

Mais à frente (este sim que é mais complicado, mas não impossivel) adicionares um equalizer.

não faço milagres :S

Gostei bastante do splash screen, mas é coisa para se apresentar apenas uma vez, na primeira execução, poderia colocar uma entrada no .ini de configuração para que se as pessoas o quisessem desligar (o splash screen) o pudessem fazer.

Vou já adicionar!!!!

De resto acho que só falta mesmo um melhoramento grafico na main instace do programa.

Como assim? XD nao vou por 1 interface como no wmp11, este madamp foi feito para pcs lentinhos XP logo nao pode ter 1 interface toda XPTO, se bem que, posso incorporar um sistema de skins...

Quanto aos videos...O unico problema são os AVI com MP3 no som.. ainda tou para ver porque é que dá esse problema..
mas depois vou incorporar isso, mas só no RC3 :D

Quando falava em melhoramento grafico, falava nos icons e na barra ao cimo (do menu) os icons estão um pouco mal "cortados" vês o border deles a branco, com a barra do menu a cincento destoa um pouco... Estava a falar no aspecto também de poderes acompanhar a barra do menu quando maximizas a instance do programa, fazeres com que a barra maximize também, e os botões dos menus fiquem sempre à esquerda.

Isso dos icons/alteração não te ia "comer" muitos recursos :)

~São apenas opiniões.

Abraço.
 
olha, tive toda a tarde a trabalhar e FINALMENTE consegui o novo visual, tou agora a tratar duns bugs e depois actualizo o post inicial ;)
 
ja fiz upload do novo madamp mas como nao ha paxorra para editar o post inicial (o BB Code aqui é diferente do BBCode no PHPbb2) fica aqui o link do post oficial:

http://altocircuito.net/acv2/forum/viewtopic.php?t=102

Peço desculpa pelo double post

:P Está muito melhor agora com a "cara lavada", embora tenha aumentado 2mb (de ~9 para ~9) nos gastos da memória, não se pode pedir muito mais de uma aplicação em vb independente de dll's :). E de certeza que irá melhorar com o tal systray icon que estás a desenvolver.

Continua com o teu bom trabalho.

Um abraço.
 
tray icon class module

Código:
Option Explicit

Private Type NOTIFYICONDATA
    cbSize As Long
    hwnd As Long
    uId As Long
    uFlags As Long
    ucallbackMessage As Long
    hIcon As Long
    szTip As String * 64
End Type

Private Const NIM_ADD = &H0
Private Const NIM_MODIFY = &H1
Private Const NIM_DELETE = &H2
Private Const WM_MOUSEMOVE = &H200
Private Const NIF_MESSAGE = &H1
Private Const NIF_ICON = &H2
Private Const NIF_TIP = &H4

Private Const WM_LBUTTONDBLCLK = &H203
Private Const WM_LBUTTONDOWN = &H201
Private Const WM_LBUTTONUP = &H202
Private Const WM_RBUTTONDBLCLK = &H206
Private Const WM_RBUTTONDOWN = &H204
Private Const WM_RBUTTONUP = &H205

Private Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean
Private theTray As NOTIFYICONDATA

Public Enum theStates
    TI_ADDED = 1
    TI_MODIFIED = 2
    TI_REMOVED = 0
End Enum

Private mvarTooltip As String
Private mvarIcon As StdPicture
Private mvarOwnerForm As Object
Private mvarState As Integer

Public Event MouseDown(ByVal Button As Integer)
Public Event MouseUp(ByVal Button As Integer)
Public Event MouseDblClick(ByVal Button As Integer)

Public WithEvents OwnerForm As Form

Public Property Get State() As Integer
    State = mvarState
End Property

Public Sub Remove()
    Shell_NotifyIcon NIM_DELETE, theTray
    mvarState = TI_REMOVED
End Sub

Public Sub Modify()
    With theTray
        .cbSize = Len(theTray)
        .hIcon = mvarIcon
        .hwnd = OwnerForm.hwnd
        .szTip = mvarTooltip
        .ucallbackMessage = WM_MOUSEMOVE
        .uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
        .uId = 1&
    End With
    Shell_NotifyIcon NIM_MODIFY, theTray
    mvarState = TI_MODIFIED
End Sub

Public Sub Add()
    With theTray
        .cbSize = Len(theTray)
        .hIcon = mvarIcon
        .hwnd = OwnerForm.hwnd
        .szTip = mvarTooltip
        .ucallbackMessage = WM_MOUSEMOVE
        .uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
        .uId = 1&
    End With
    Shell_NotifyIcon NIM_ADD, theTray
    mvarState = TI_ADDED
End Sub

Public Property Set Icon(ByVal vData As StdPicture)
    Set mvarIcon = vData
End Property

Public Property Get Icon() As StdPicture
    Set Icon = mvarIcon
End Property

Public Property Let Tooltip(ByVal vData As String)
    mvarTooltip = vData & vbNullChar
End Property

Public Property Get Tooltip() As String
    Tooltip = Left(mvarTooltip, Len(mvarTooltip) - 1)
End Property

Private Sub OwnerForm_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Static rec As Boolean, MSG As Long
    MSG = X / Screen.TwipsPerPixelX
    If rec = False Then
        rec = True
        Select Case MSG
            Case WM_LBUTTONDBLCLK:
                RaiseEvent MouseDblClick(vbLeftButton)
            Case WM_LBUTTONDOWN:
                RaiseEvent MouseDown(vbLeftButton)
            Case WM_LBUTTONUP:
                RaiseEvent MouseUp(vbLeftButton)
            Case WM_RBUTTONDBLCLK:
                RaiseEvent MouseDblClick(vbRightButton)
            Case WM_RBUTTONDOWN:
                RaiseEvent MouseDown(vbRightButton)
            Case WM_RBUTTONUP:
                RaiseEvent MouseUp(vbRightButton)
        End Select
        rec = False
    End If
End Sub



poe isto na form
Código:
Option Explicit

Private WithEvents Tray As TrayIcon

Private Sub Form_Load()
    Set Tray = New TrayIcon
    Set Tray.Icon = Me.Icon
    Tray.Tooltip = App.Title
    Set Tray.OwnerForm = Me
    Tray.Add
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    Tray.Remove
End Sub

Private Sub Tray_MouseDblClick(ByVal Button As Integer)
    'o q acontece quando se faz duplo click ve nas barras mais opcoes
End Sub
 
nova versao ja tem update manager so para veres xD (e ja integrei o Drag and drop) e por acaso agora tou atacando o System Tray

Boas, venho reportar um bugalho :P Quando o update manager faz o download, (a mim disse-me que existia uma versão nova) fez o download e deu um erro (an error has occured when downloading...blabla) error code: 1 (0x0001)

e pelo que me parece, foi criada uma cópia do meu madmp3.exe como madmp3.tmp (é uma cópia de segurança que fazes do original certo?) pelo menos parece, já quem apareceu em coisa de 2 segundos (seria dificil fazer o dld de 350kb em 2 segundos, pelo menos com e minha ligação..he he )

um abraço.
keep working...
 
e simples! tenho 2 ficheiros no meu servidor HTTP
um que diz a quantia de bytes que a nova versao tem
e outro que é a nova versao da aplicação

ele primeiro faz download do ficheiro com o numero de bytes
se houver 1 diferença ele avisa que há um novo update
caso nao..ele diz que não há


isso explica a tua duvida?


Já agora, ja adicionei o system tray =D
 
Última edição:
Back
Topo