VB .NET - Embutindo e executando arquivos de vídeos - III
Na segunda parte do artigo mostrei como criar uma playlist para executar os vídeos embutidos e neste artigo vou mostrar a opção de distribuir os vídeos não embutidos mas em uma pasta do projeto. Assim os vídeos terão que ser acessados pelo programa para serem executados.
A opção de embutir os vídeos em Resourcers Files trouxe como vantagem apenas a forma de distribuição e o acesso mais facilitado; de resto so temos desvantagens, que na minha opinião desencoraja essa prática. A opção de embutir arquivos em Resources Files somente deve ser usada para arquivos pequenos como arquivos de imagens que podem ser usados por todo o projeto.
Então vou mostrar a abordagem onde distribuímos a aplicação com os arquivos de vídeos em uma pasta do projeto.
Para isso eu vou criar uma pasta chamada Videos no projeto e nesta pasta copiar os 5 arquivos de vídeos usados pela aplicação.
Para criar a pasta Videos no menu Project clique em New
Folder A seguir clique sobre a pasta criada e escolha a opção Add Existing Item e selecione os arquivos |
A seguir temos que criar uma playlist acessando os arquivos de vídeos e incluindo cada arquivo na playlist.
Para isto obtemos o caminho do diretório base da aplicação usando a linha de código:
Dim caminhoBase As String = AppDomain.CurrentDomain.BaseDirectory
Depois
basta substituir o \bin\Debug pelo nome da pasta onde estão os vídeos para obter
o caminho completo dos vídeos.
Dim caminhoVideos As String =
caminhoBase.Replace("\bin\Debug\", "\Videos\")
A seguir criamos um array de strings e obtemos todos os arquivos com extensão
.mp4 desta pasta :
Dim videos As String() = Directory.GetFiles(caminhoVideos, "*.mp4")
Agora
percorremos o array contendo os vídeos e incluímos cada vídeo na playlist :
For Each video As String In videos
playlist.appendItem(wmp1.newMedia(video))
Next
E
executamos a playlist :
wmp1.currentPlaylist = playlist
wmp1.Ctlcontrols.play()
Pronto. Bem simples não é mesmo ???
Recursos Usados:
Executando uma playlist de vídeos a partir de uma pasta do projeto
Abra o projeto criado no VS 2017 Community do artigo anterior e 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 caminhoBase As String = AppDomain.CurrentDomain.BaseDirectory
Dim caminhoVideos As String = caminhoBase.Replace("\bin\Debug\", "\Videos\")
Try
Dim videos As String() = Directory.GetFiles(caminhoVideos, "*.mp4")
If videos.Length = 0 Then
MessageBox.Show("Não existem arquivos")
Return
End If
For Each video As String In videos
playlist.appendItem(wmp1.newMedia(video))
Next
wmp1.currentPlaylist = playlist
wmp1.Ctlcontrols.play()
Catch ex As Exception
MessageBox.Show("Erro ao acessar os arquivos. Verifique a pasta e/ou os arquivos")
End Try
End Sub
|
Esse código vai obter os arquivos *.mp4 da pasta Videos, incluir cada vídeo na playlist e executar todos os vídeos incluídos na playlist de forma sequencial.
Inclui um tratamento de erros básico para tratar a exceção de caminho inválido de vídeo e quando a lista de vídeo estiver vazia.
Abaixo segue o código do botão de comando Encerrar:
Private Sub btnEncerrar_Click(sender As Object, e As EventArgs) Handles btnEncerrar.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 restante continua igual e ao executar o projeto e clicar em assistir vídeo cada vídeo será executado sequencialmente.
Acessando arquivos remotos
Podemos executar arquivos de vídeo remotamente ?
Claro que sim, e, é bem simples fazer isso. O código abaixo define uma url de origem e o nome do vídeo a ser executado:
Dim url As String = "http://www.macoratti.net/Video/"
wmp1.URL = url & "Andromeda.mp4"
wmp1.Ctlcontrols.play()
Basta usar a propriedade URL e definir o caminho completo do vídeo e a seguir executar.
O código do nosso botão ficaria assim:
Private Sub btnAssistir_Click(sender As Object, e As EventArgs) Handles btnAssistir.Click
wmp1.stretchToFit = True
btnTelaCheia.Enabled = True
Try
Dim url As String = "http://www.macoratti.net/Video/" Catch ex As Exception
MessageBox.Show("Erro ao acessar os arquivos. Verifique a pasta e/ou os arquivos")
End Try
End Sub
|
Neste exemplo e estou executando um vídeo específico.
Acessando arquivos do youtube usando média player e flash player
Bem, se podemos acessar arquivos remotos, podemos acessar e executar arquivos do Youtube, certo !
Não, não é tão simples assim.
Vamos tentar acessar uma url de um vídeo do Youtube:
Dim video As String =
"https://www.youtube.com/watch?v=udAL48P5NJU".Replace("/watch?v=", "/v/")
wmp1.URL = video
wmp1.Ctlcontrols.play()
Ao executar o projeto usando este código iremos obter o seguinte resultado:
Então, usando o código acima, vemos que existe uma restrição atual feita pelo Youtube que não permite mais embutir vídeos no media player ou no flash player cujo código é mostrado a seguir:
Dim video As String =
"https://www.youtube.com/watch?v=udAL48P5NJU".Replace("/watch?v=", "/v/")
AxShockwaveFlash1.Movie = video
Naturalmente podemos continuar a
incrementar a aplicação com outros recursos mas nosso objetivo esta cumprido.
Fique a vontade para adicionar novos recursos.
Pegue o projeto completo aqui : VBnet_Video_3.zip (sem os vídeos)
"Disse-lhes, pois,
Jesus: Quando levantardes o Filho do homem, então conhecereis que EU SOU, e que
nada faço por mim mesmo; mas isto falo como meu Pai me ensinou."
João 8:28
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:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Super DVD C# - Recursos de aprendizagens e vídeo aulas para C#
Curso Fundamentos da Programação Orientada a Objetos com VB .NET
C# - Executando arquivos de áudio e vídeo em uma ... - Macoratti
VB.NET - Carregando e executando arquivos mp3 em um ... - Macoratti