VB .NET - Criando um tocador de músicas com Media Player


 Neste artigo vamos criar um tocador de músicas usando o Windows Média Player e a linguagem VB .NET.

Em minha série de artigos VB .NET - Embutindo e executando arquivos de vídeos - I mostrei como usar o componente Windows Média Player(WMP) para executar vídeos embutidos como um Resource File ou como um arquivo externo.

Hoje vou mostrar como criar um simples tocador de músicas que também pode exibir vídeo usando o controle WMP.

Vamos criar um projeto onde o usuário poderá incluir arquivos de vídeos ou músicas em uma ListBox para serem executados e e exibidos em um controle Windows Media Player.

Vamos dar a opção de executar individualmente um arquivo ou de criar uma playlist.

Os conceitos usados foram mostrados na série de artigos citada.

Então ao trabalho...

Recursos Usados:

Criando o projeto Windows Forms no VS Community 2017

Abra o VS 2017 Community e crie um projeto usando a opção : Visual Basic -> Windows Classic Desktop e selecione o template Windows Forms App (.NET Framework);

Informe o nome Windows Media Player e clique no botão OK;

Vamos incluir os componentes a partir da Toolbox para criar a interface com o usuário.

Para incluir o componente Windows Media Player no projeto faça o seguinte :

1- Abra a janela ToolBox e a seguir clique com o botão direito do mouse sobre um item da ToolBox e a seguir clique em Choose Items...

2- Na janela - Choose ToolBox Items - clique na aba COM Components e selecione : Windows Media Player

3- Você deverá ver na ToolBox o componente incluído no item selecionado pronto para ser usado.

Agora basta incluir o componente no formulário Form1.vb a partir da Toolbox e alterar sua propriedade name para wmp1.

Inclua também os seguintes componentes:

Disponha os controles conforme o leiaute da figura abaixo:

Definindo o código do formulário

1- Incluindo uma música/vídeo

Private Sub btnIncluirMusica_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnIncluirMusica.Click
        ofd1.ShowDialog()
        If DialogResult.OK Then
            For Each track As String In ofd1.FileNames
                lbMusicas.Items.Add(track)
            Next
        End If
    End Sub

2- Removendo uma música/vídeo

 Private Sub btnRemoverMusica_Click(sender As Object, e As EventArgs) Handles btnRemoverMusica.Click
        lbMusicas.Items.Remove(lbMusicas.SelectedItem)
End Sub

3- Limpando todas as músicas/vídeos

    Private Sub btnLimpar_Click(sender As Object, e As EventArgs) Handles btnLimpar.Click
        lbMusicas.Items.Clear()
    End Sub

4- Criando um playlist

  Private Sub btnCriarPlaylist_Click(sender As Object, e As EventArgs) Handles btnCriarPlaylist.Click
        If lbMusicas.Items.Count > 0 Then
            Dim playlist As WMPLib.IWMPPlaylist
            playlist = wmp1.playlistCollection.newPlaylist("Playlist")
            For i As Integer = 0 To lbMusicas.Items.Count - 1
                Dim musica As String = CStr(lbMusicas.Items(i))
                playlist.appendItem(wmp1.newMedia(musica))
            Next
            wmp1.currentPlaylist = playlist
            wmp1.Ctlcontrols.play()
        Else
            MessageBox.Show("Não existem músicas para selecionar")
        End If
    End Sub

5 - Executando uma música/vídeo

  Private Sub lbMusicas_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles lbMusicas.DoubleClick
        wmp1.URL = lbMusicas.SelectedItem
 End Sub

6- Encerrando a aplicação - Menu Sair

 Private Sub mnuSair_Click(sender As Object, e As EventArgs) Handles mnuSair.Click
        If (MessageBox.Show("Deseja encerrar a aplicação ?", "Encerrar", MessageBoxButtons.YesNo) = DialogResult.Yes) Then
            If wmp1.playState = WMPLib.WMPPlayState.wmppsStopped Then
                Me.Close()
            ElseIf wmp1.playState = WMPLib.WMPPlayState.wmppsPlaying Then
                wmp1.Ctlcontrols.stop()
                Me.Close()
            Else
                Me.Close()
            End If
        End If
   End Sub

O código é muito simples e não merece nenhum comentário. (Para dúvidas veja o artigo citado na introdução)

Ao executar o projeto usando este código iremos obter o seguinte resultado:

Pegue o projeto completo aqui : WindowsMediaPlayer.zip (sem os vídeos)

"Jesus disse-lhes: A minha comida é fazer a vontade daquele que me enviou, e realizar a sua obra."
João 4:34

Referências:


José Carlos Macoratti