VB .NET - Embutindo e executando arquivos de vídeos - (playlist) II


 Neste artigo vou mostrar como embutir e executar arquivos de vídeos como um recurso usando a linguagem VB .NET. Hoje vamos criar uma playlist de vídeos embutidos para execução.

Na primeira parte do artigo embutimos os arquivos de vídeos em Resources Files e conseguimos executar um vídeo usando o média player.

Acontece que temos 5 vídeos embutidos e desejamos executar os 5 vídeos e, para fazer isso vamos criar uma playlist contendo os vídeos a serem executados.

Para fazer isso vamos usar o método AxWindowsMediaPlayer.newPlaylist que retorna uma interface IWMPPlaylist  para uma nova playlist.

Dim playlist As WMPLib.IWMPPlaylist
playlist = wmp1.playlistCollection.newPlaylist("Playlist")

Com a playlist criada basta adicionar cada vídeo na playlist usando o método appendItem().

Como nossos vídeos estão embutidos em Resources Files teremos que acessar cada vídeo ler o contéudo e gerar um stream do vídeo em um arquivo de vídeo que será executado.

Assim para o primeiro vídeo teremos que fazer o seguinte:

Dim caminhovideo1 = Path.Combine(Application.StartupPath, "video1.wmv")
If (Not File.Exists(caminhovideo1)) Then
     File.WriteAllBytes(caminhovideo1, My.Resources.Aula1)
End If
playlist.appendItem(wmp1.newMedia(caminhovideo1))

Esse código vai gerar um arquivo video1.wmv a partir do arquivo Aula1.mp4.

Agora é só repetir o processo para os demais vídeos.

Recursos Usados:

Executando uma playlist de vídeos

Abra o projeto criado no VS 2017 Community do artigo anterior e defina a variável playlist no início do formulário:

 Dim playlist As WMPLib.IWMPPlaylist

A seguir altere o código do evento Click do botão Assistir Vídeo conforme abaixo:

Private Sub btnAssistir_Click(sender As Object, e As EventArgs) Handles btnAssistir.Click
        wmp1.stretchToFit = True
        btnTelaCheia.Enabled = True
        playlist = wmp1.playlistCollection.newPlaylist("Playlist")
        Dim caminhovideo1 = Path.Combine(Application.StartupPath, "video1.wmv")
        If (Not File.Exists(caminhovideo1)) Then
            File.WriteAllBytes(caminhovideo1, My.Resources.Aula1)
        End If
        playlist.appendItem(wmp1.newMedia(caminhovideo1))
        Dim caminhovideo2 = Path.Combine(Application.StartupPath, "video2.wmv")
        If (Not File.Exists(caminhovideo2)) Then
            File.WriteAllBytes(caminhovideo2, My.Resources.Aula2)
        End If
        playlist.appendItem(wmp1.newMedia(caminhovideo2))
        Dim caminhovideo3 = Path.Combine(Application.StartupPath, "video3.wmv")
        If (Not File.Exists(caminhovideo3)) Then
            File.WriteAllBytes(caminhovideo3, My.Resources.Aula3)
        End If
        playlist.appendItem(wmp1.newMedia(caminhovideo3))
        Dim caminhovideo4 = Path.Combine(Application.StartupPath, "video4.wmv")
        If (Not File.Exists(caminhovideo4)) Then
            File.WriteAllBytes(caminhovideo4, My.Resources.Aula4)
        End If
        playlist.appendItem(wmp1.newMedia(caminhovideo4))
        Dim caminhovideo5 = Path.Combine(Application.StartupPath, "video5.wmv")
        If (Not File.Exists(caminhovideo5)) Then
            File.WriteAllBytes(caminhovideo5, My.Resources.Aula5)
        End If
        playlist.appendItem(wmp1.newMedia(caminhovideo5))
        wmp1.currentPlaylist = playlist
        wmp1.Ctlcontrols.play()
    End Sub

Esse código vai executar todos os vídeos incluídos na playlist de forma sequencial.

Para incrementar um pouco mais o nosso projeto vamos incluir um novo botão de comando com o texto - Tela Cheia:

A seguir inclua o código abaixo no evento Click deste botão:

   Private Sub btnTelaCheia_Click(sender As Object, e As EventArgs) Handles btnTelaCheia.Click
        If wmp1.playState = WMPLib.WMPPlayState.wmppsStopped Then
            Me.Hide()
        ElseIf wmp1.playState = WMPLib.WMPPlayState.wmppsPlaying Then
            wmp1.fullScreen = True
        End If
    End Sub

Este código permite assistir o vídeo em tela cheia usando a propriedade fullScreen igual a true. Para funcionar o vídeo tem que estar em execução.

Agora ao executar o projeto e clicar em assistir vídeo cada vídeo será executado sequencialmente.

Creio que você deve estar pensando : "Não tem como otimizar esse código para não ficar repetindo o procedimento para cada vídeo ?"

Garoto esperto !!!

Na próxima parte do artigo veremos como incrementar o código criando uma playlist de vídeos não embutidos.

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

"Jesus lhes respondeu, e disse: A minha doutrina não é minha, mas daquele que me enviou.
Se alguém quiser fazer a vontade dele, pela mesma doutrina conhecerá se ela é de Deus, ou se eu falo de mim mesmo."

João 7:16,17

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

Quer aprender os conceitos da Programação Orientada a objetos ?

Quer aprender o gerar relatórios com o ReportViewer no Visual Studio ?

Quer aprender a criar aplicações Web Dinâmicas usando a ASP .NET ?

 

Gostou ?   Compartilhe no Facebook   Compartilhe no Twitter

Referências:


José Carlos Macoratti