Jump to content
Sign in to follow this  
elrey

Botão Play/Pause de um Media Player

Recommended Posts

elrey

É assim o programita que estou a fazer é um Media Player para mim só com as minhas necessidades.

Já tenho quase tudo prontinho mas falta-me umas coisinhas que não consigo fazer e já estive a pesquisar e também não encontrei nada que me ajudasse.

Neste momento o meu objectivo é:

Ter um botão de play e pause.

Guardar a playlist para quando abro novamente o programa estar lá a playlist já com as musicas.

Tenho agora 2 botões, um para play e outro para pause.

Play -

MediaPlayer.CtlControls.play()

Pause -

MediaPlayer.CtlControls.pause()

Agora quero meter essas 2 "funções" num só botão, só que não sei como hei de fazer isso.

O outro objectivo é que não tenho mesmo noção de como hei de fazer.

Alguém me pode dar uma ajudinha ?

Cumprimentos. ;)

Share this post


Link to post
Share on other sites
Ratakamom

Tenta fazer algo do tipo

form load....

button(que vais usar).tag = "0"
end sub

private sub button(...)
if button1.tag = "0" then
MediaPlayer.CtlControls.play()
button1.tag = "1"
end if

if button1.tag = "1" then
iaPlayer.CtlControls.pause()
button1 = "0"
end if
end sub

Desta maneira tens as duas funções num botão que são activadas consoante a que estava activa anteriormente.

Share this post


Link to post
Share on other sites
elrey

Boas.

Obrigado @Ratakamom, era isso mas tive que adicionar um ElseIf para funcionar.

Ficou:

If Play.Tag = "0" Then
    MediaPlayer.Ctlcontrols.play()
    Play.Tag = "1"
ElseIf Play.Tag = "1" Then
    MediaPlayer.Ctlcontrols.pause()
    Play.Tag = "0"
End If

Mais uma vez obrigado. (:

Agora tenho um problema na playlist com o botão stop.

A última parte de código que adicionei ao programa, foi:

Private Sub Timer1_Tick (...)

Try
    If Me.MediaPlayer.playState = WMPLib.WMPPlayState.wmppsStopped Then
        Form3.ListBox1.SelectedIndex = Form3.ListBox1.SelectedIndex + 1
        MediaPlayer.URL = Form3.ListBox1.SelectedItem
        Play.Image = My.Resources._222
    End If
Catch ex As Exception
            
End Try

Só que agora cada vez que carrego no stop para parar a música ele simplesmente troca de música e não estou a conseguir resolver isso.

Podem-me ajudar ?

Cumprimentos.

Share this post


Link to post
Share on other sites
Ratakamom

Não sei se tou a perceber bem o problema, porque ao que parece estas a querer parar a musica, no entanto o teu "problema" esta claramente instruido no codigo que construis-te.

Private Sub Timer1_Tick (...)

Try
    If Me.MediaPlayer.playState = WMPLib.WMPPlayState.wmppsStopped Then ' Se o estado do media player estiver no Stop
        Form3.ListBox1.SelectedIndex = Form3.ListBox1.SelectedIndex + 1 ' Então o actual estado da ListBox vai avançar um valor (Aqui esta o problema?)
        MediaPlayer.URL = Form3.ListBox1.SelectedItem ' Nova musica escolhida = a musica selecionada na ListBox
        Play.Image = My.Resources._222
    End If
Catch ex As Exception
            End Try

"Só que agora cada vez que carrego no stop para parar a música ele simplesmente troca de música e não estou a conseguir resolver isso."

O que ta acontecer não é propriamente um erro, mas aquilo que tas a pedir ao programa para fazer.

Não sei como esta construido o ambiente grafico do teu programa, mas se tiveres um botão de Stop podia optar por:

Private Sub Stop_Click (...)

MediaPlayer.Ctlcontrols.stop() ' Muda o estado do media player para Stop
Play.Image = My.Resources._222 ' Troca a imagem do play como tinhas anteriormente
Play.tag = "0" ' Muda o tag do play para 0, para o play (e não a pausa) ser seleccionado quando escolhido.
end sub

P.S. Eu estou a fazer isto meio de cabeça, por isso se não for isto o pretendido depois avisa.

Share this post


Link to post
Share on other sites
elrey

Boas.

Private Sub Timer1_Tick (...)

Try
    If Me.MediaPlayer.playState = WMPLib.WMPPlayState.wmppsStopped Then 
        Form3.ListBox1.SelectedIndex = Form3.ListBox1.SelectedIndex + 1 ' Sim aqui está o "problema"!
        MediaPlayer.URL = Form3.ListBox1.SelectedItem 
        Play.Image = My.Resources._222
    End If
Catch ex As Exception
            End Try

Porque quando eu paro a música pelo o botão de Stop, ele avança para a próxima música.

Private Sub Stop_Click
        MediaPlayer.Ctlcontrols.stop()
        Play.Image = My.Resources._555
        tocar.Visible = False
        estado.Visible = True
        estado.Text = ("Parado")
    End Sub

É como está o botão de Stop.

Se adicionar o

Play.Tag = "0"

quando acaba uma música, ele não troca de música.

Cumprimentos.

Share this post


Link to post
Share on other sites
Caça

Resolves isso facilmente com uma variável Boolean.

Quando carregares em stop, colocas-la a true e no timer só deixas mudar de faixa caso esteja a false. Quando clicares em play colocas a variável a false.


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
elrey

Boas, Caça.

Não estou bem a perceber o que queres dizer, até porque nunca trabalhei com a variável Boolean.

Se me puderes dar um exemplo agradecia.

Cumprimentos.

Share this post


Link to post
Share on other sites
bioshock
Public Class PlayForReal
      Private Play As Boolean = True
Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
      If Play = True Then
        ' Faz X coisas
      Else
        ' Faz Y coisas
      End If
    End Sub

Share this post


Link to post
Share on other sites
elrey

Obrigado @Bioshock.

Mas antes de usar isso, adicionei ao botão de stop:

Timer1.Enabled = False

Não me lembrei disso e já faz agora a sua função.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.