Ir para conteúdo
Fórum Script Brasil
  • 0

Executar a próxima música quando a música atual terminar


daltro12

Pergunta

Estou desenvolvendo um player em VB.Net. Ele não usa a interface do Windows Media Player "em si". Ou seja, fiz 4 picturebox para substituir buttons e uma progressbar que substitui a barra de progresso do WMP. Além de uma ListBox com uma playlist. Mas, quando a música termina, eu gostaria que o seguinte comando fosse executado:

Try
            ListBox1.SelectedIndex += +1
            ListBox2.SelectedIndex += +1
            AxWindowsMediaPlayer1.URL = ListBox1.SelectedItem
        Catch ex As Exception
            MsgBox("Não há nenhum som após...")
        End Try
Ou seja, o comando de próxima música.. Tentei colocar em um Timer com "Enabled = True" e intervalo de 50, usando:
If ProgressBar1.Value = AxWindowsMediaPlayer1.currentMedia.duration Then
                Try
                    ListBox1.SelectedIndex += +1
                    ListBox2.SelectedIndex += +1
                    AxWindowsMediaPlayer1.URL = ListBox1.SelectedItem
                Catch ex As Exception
                    MsgBox("Não há nenhum som após...")
                End Try
            End If

Mas.. Por incrível que pareça, não deu certo... O porquê de ter duas ListBox é que em uma só aparece o nome da música e a outra aparece o caminho completo (ela é invisível). Então, o player reproduz o caminho completo selecionado na ListBox1, enquanto o usuário só enxerga o nome do arquivo na ListBox2. E quando o Index selecionado da ListBox2 muda, o da ListBox1 muda também.. Então, como faço para a próxima música ser executada quando a música atual termina?

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Consegui de outra forma. Criei outro Timer com o seguinte código:

Private Sub Timer5_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer5.Tick
        If ProgressBar1.Value = ProgressBar1.Maximum Then 'se a ProgressBar estiver no máximo, ou seja, a música acabar
            Me.Timer5.Enabled = True 'habilita o Timer
            Try 'tentar, pois caso não exista proxima música...
                ListBox1.SelectedIndex += +1 'seleciona próximo item da ListBox1
                ListBox2.SelectedIndex += +1 'seleciona próximo item da ListBox2
                AxWindowsMediaPlayer1.URL = ListBox1.SelectedItem 'WMP toca item selecionado da ListBox1
                Me.Timer5.Enabled = False 'desabilita o Timer, pois caso fique habilitado irá ficar trocando de música até o fim da playlist
            Catch ex As Exception 'se não existir próxima música
                MsgBox("Não há nenhum som após...") 'caixa de mensagem -> "Não há nenhum som após..."
                Me.Timer5.Enabled = False 'desabilita o Timer5
            End Try
        End If
    End Sub

#Fikdik pra quem deseja esse recurso em seu player de música..

Editado por daltro12
Link para o comentário
Compartilhar em outros sites

  • 0

 

Em 17/02/2012 at 16:28, daltro12 disse:

Consegui de outra forma. Criei outro Timer com o seguinte código:

 

 

Private Sub Timer5_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer5.Tick
        If ProgressBar1.Value = ProgressBar1.Maximum Then 'se a ProgressBar estiver no máximo, ou seja, a música acabar
            Me.Timer5.Enabled = True 'habilita o Timer
            Try 'tentar, pois caso não exista proxima música...
                ListBox1.SelectedIndex += +1 'seleciona próximo item da ListBox1
                ListBox2.SelectedIndex += +1 'seleciona próximo item da ListBox2
                AxWindowsMediaPlayer1.URL = ListBox1.SelectedItem 'WMP toca item selecionado da ListBox1
                Me.Timer5.Enabled = False 'desabilita o Timer, pois caso fique habilitado irá ficar trocando de música até o fim da playlist
            Catch ex As Exception 'se não existir próxima música
                MsgBox("Não há nenhum som após...") 'caixa de mensagem -> "Não há nenhum som após..."
                Me.Timer5.Enabled = False 'desabilita o Timer5
            End Try
        End If
    End Sub

 

#Fikdik pra quem deseja esse recurso em seu player de música..

Testei seu código, mais quando dou play ele fica pegando todas as posições e não toca nenhuma musicas, alguma solução?

Editado por Dany Porto
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...