VB .NET - Embutindo e executando arquivos de vídeos - I


 Neste artigo vou mostrar como embutir e executar arquivos de vídeos como um recurso usando a linguagem VB .NET.

Eu já mostrei como usar o Resources Files publicando um artigo e uma vídeo aula sobre o assunto. Confira:

Hoje vou mostrar como embutir arquivos de vídeos em projeto VB .NET usando Resources Files e como executar os arquivos usando o Windows Media Player.

Vamos imaginar que você quer distribuir uma aplicação VB .NET que contém 5 vídeos de um curso que deverão ser acessados e executados pela sua aplicação.

Você resolveu embutir os vídeos como um recurso em seu projeto (não me pergunte porque...), e decidiu usar o Windows Media Player para executar os vídeos.

Um possível motivo para você querer embutir os vídeos no projeto como resources e não querer deixar os vídeos em uma pasta separada do projeto e depois precisar localizar e carregar os arquivos do disco quando a aplicação estiver em execução.

Isto posto 'vamo que vamo...' criar o projeto.

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 VBnet_Video e clique no botão OK;

Projeto criado.

Vamos incluir um controle Panel a partir da Toolbox no formulário e definir sua propriedade Dock igual a Bottom :

   

Agora 'si embora' embutir os vídeos.

Embutindo os arquivos de vídeos como um recurso na aplicação

Para incluir os arquivos de vídeo como um recurso do projeto siga o roteiro:

1- Clique com o botão direito do mouse sobre o nome do projeto e a seguir clique em Properties

2- Na janela de propriedades clique na guia Resources, e a seguir clique em Add Resource e depois em Add Existing File;

3- Na janela Add existing file to resources selecione os arquivos que deseja incluir e clique no botão

Pronto. Você deverá ver na janela Resources os arquivos exibidos conforme abaixo:

Missão cumprida. Os arquivos já estão embutidos no projeto.

E agora !!! Como acessar e exibir esses arquivos ????

Bem, uma possibilidade é usar o Windows Media Player, e ele mesmo que vamos usar...

Usando o Windows Media Player para exibir o vídeo

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.

Vamos incluir o componente acima do controle Panel ocupando todo o formulário e definir sua propriedade name igual a wmp1 e sua propriedade Anchor igual a Top, Bottom, Left, Right :

A seguir inclua no Panel dois botões :

Disponha os controles conforme o leiaute da figura acima.

Executando um arquivo de vídeo embutido

Para concluir vamos executar um arquivo de vídeo embutido.

No evento Click do botão - Assistir Video - inclua o código abaixo:

  Private Sub btnAssistir_Click(sender As Object, e As EventArgs) Handles btnAssistir.Click
         wmp1.stretchToFit = True

        Dim caminhovideo1 = Path.Combine(Application.StartupPath, "video1.wmv")

        If (Not File.Exists(caminhovideo1)) Then
            File.WriteAllBytes(caminhovideo1, My.Resources.Aula1)
        End If

        wmp1.URL = caminhovideo1

        wmp1.Ctlcontrols.play()
    End Sub

Vamos entender o código:

1- Primeiro definirmos a propriedade stretchToFit do controle Windows Media Player - wmp1 - igual a true para o tamanho do vídeo se ajustar ao nosso formulário;

        wmp1.stretchToFit = True

2- Definimos uma variável caminhovideo1 com um valor inicial

        Dim caminhovideo1 = Path.Combine(Application.StartupPath, "video1.wmv")

3- Verificamos se o vídeo existe neste caminho. Se não existir então acessamos o vídeo Aula1 que esta no Resources e o criamos um novo arquivo com o conteúdo do arquivo de vídeo usando o método WriteAllBytes:

        If (Not File.Exists(caminhovideo1)) Then
            File.WriteAllBytes(caminhovideo1, My.Resources.Aula1)
        End If

4- Atribuimos o caminho agora com o conteúdo do nosso arquivo de vídeo e executamos o vídeo:

       wmp1.URL = caminhovideo1
       wmp1.Ctlcontrols.play()

Para concluir temos o código do botão Encerrar:

 Private Sub btnEncerrar_Click(sender As Object, e As EventArgs) Handles btnEncerrar.Click
        If wmp1.playState = WMPLib.WMPPlayState.wmppsStopped Then
            Me.Close()
        ElseIf wmp1.playState = WMPLib.WMPPlayState.wmppsPlaying Then
            wmp1.Ctlcontrols.stop()
            Me.Close()
        End If
    End Sub

Neste código eu verifico se o vídeo esta em execução, neste caso eu encerro a execução e o projeto.

Agora é só alegria...

Executando o projeto e clicando no botão para executar o vídeo teremos a exibição da Aula1 conforme mostra a figura:

Funciona, mas....

Se você olhar o tamanho do executável gerado vai ver que ele é muiiito grande, pois os arquivos de vídeo estão embutidos no projeto e fazem partem do exe gerado.

Outro detalhe, os arquivos de vídeo serão gerados individualmente na pasta no projeto novamente.

Então, qual a foi a vantagem em usar essa abordagem ??? 'Que vantagem Maria levou ???'

Parece que nenhuma...

Na próxima parte do artigo veremos como incrementar o projeto criando uma playlist.

"Levantai os vossos olhos para os céus, e olhai para a terra em baixo, porque os céus desaparecerão como a fumaça, e a terra se envelhecerá como roupa, e os seus moradores morrerão semelhantemente; porém a minha salvação durará para sempre, e a minha justiça não será abolida."
Isaías 51:6

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