• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Sir Pereira

DurationString

13 mensagens neste tópico

Boas pessoal,

não sei porquê, estou aqui com uns problemazitos.

Estou a tentar fazer algo do tipo de um sistema de automação de rádio ou assim, mas ainda está tudo extremamente básico.

Estava a tentar ir buscar o valor da duração de um ficheiro, mas o valor vai dar-me sempre 00:00.

O código que tenho está aqui:

        'Ler som
        playersom.URL = "C:\Users\Ivo Pereira\Music\Pillar-Frontline.mp3"
        playersom.Ctlcontrols.play()
        Threading.Thread.Sleep(1000)
        'lbl_durtime.Text = playersom.currentMedia.CurrentPosition \ 60 & ":" & Format(Int(playersom.currentMedia.CurrentPosition Mod 60), "00") & " / " & playersom.currentMedia.SelectionEnd \ 60 & ":" & Format(Int(playersom.currentMedia.SelectionEnd Mod 60), "00")
        'lbl_durtime.Text = 
        MsgBox(playersom.currentMedia.durationString)

        'tmr_TempoRestante.Enabled = True

Alguém me dá uma mãozinha? :thumbsup:

Abraço

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Exprimenta avaliar a durationstring quando começares a ouvir música.

Essa propriedade só ganha um valor quando a media está carregadíssima (como aliás é lógico).

O Sleep não faz com que a aplicação espere até carregar a media, acho eu.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Exprimenta avaliar a durationstring quando começares a ouvir música.

Essa propriedade só ganha um valor quando a media está carregadíssima (como aliás é lógico).

O Sleep não faz com que a aplicação espere até carregar a media, acho eu.

Sim, já experimentei, o Sleep só acrescentei mas nem era para estar aí :thumbsup: já experimentei em último caso, visto que mesmo sem o Sleep aparecia com a duração de 00:00.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Estranho...

Exprimenta não usares a durationstring mas sim a

WindowsMediaPlayer.currentMedia.duration

só por a curiosidade de ver o que devolve.

Mete num botão a disparar para uma messagebox ou assim, para ter a certeza do que se está a passar.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Estranho...

Exprimenta não usares a durationstring mas sim a

WindowsMediaPlayer.currentMedia.duration

só por a curiosidade de ver o que devolve.

Mete num botão a disparar para uma messagebox ou assim, para ter a certeza do que se está a passar.

Que estranho. Quer dizer em raciocínio lógico não é assim tão estranho.

Se colocar o código num botão, e clicar depois de estar em play, retorna-me correctamente o valor da duração, tanto em string, como em double.

Sendo assim, fica aqui a minha dúvida. Como faço para me dar logo a seguir ao play ?  :thumbsup:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Só por motivos de teste, faz um ciclo While até que a duration seja alguma coisa que não zero.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Só por motivos de teste, faz um ciclo While até que a duration seja alguma coisa que não zero.

        While playersom.currentMedia.duration <> 0
            MsgBox(playersom.currentMedia.durationString)
        End While

Era a isto que te referias ? :thumbsup:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não, não, pelo contrário.

While playersom.currentMedia.duration = 0
My.Application.DoEvents()
End While

MsgBox(playersom.currentMedia.durationString)

Percebes a ideia? Só para ver o que acontece (não tenho uma IDE à mão agora)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não, não, pelo contrário.

While playersom.currentMedia.duration = 0
My.Application.DoEvents()
End While

MsgBox(playersom.currentMedia.durationString)

Percebes a ideia? Só para ver o que acontece (não tenho uma IDE à mão agora)

Epah, agora funcionou :thumbsup:

E sim, percebi a ideia :( mas por exemplo, já agora aproveito a "onda".

Tenho uma progressbar e queria que ela fosse avançando conforme o tempo da música até ao fim, como é que o posso calcular (tendo em vista também este percalço)?

Abraço :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tens que "jogar" com o Progressbar.value consoante o tempo da música.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tens que "jogar" com o Progressbar.value consoante o tempo da música.

Sim, isso eu já sabia :thumbsup:

Boas;

Eu não aconselhava te a não utilizar o componente  do WMP..

Da uma vista de olhos neste componente

http://www.fmod.org/

é free para uso não comercial..

Vou ver, obrigado :(

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

fLaSh_PT estive à procura de documentação sobre a framework, mas não encontrei. Podias dar uma mãozinha? :thumbsup:

EDIT: Btw, reparei que ao adicionar a .DLL ao projecto, mesmo sem utilizar nada da biblioteca, nem consegui fazer debug ao projecto.

Abraço

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora