Neste artigo vou mostrar como executar arquivos de áudio e de vídeo em uma aplicação Windows Forms usando a linguagem C#. |
Recursos Usados
Criando o projeto Windows Forms
Abra o projeto CSharp_ArquivosVideos criado na primeira parte do artigo no VS 2015 Community;
Selecionando e executando um arquivo no Windows Media Player
No evento Click do botão Executar inclua o código abaixo:
private void btnExecutar_Click(object sender, EventArgs e)
{
if (cboArquivos.SelectedItem == null)
{
MessageBox.Show("Selecione um arquivo a executar.");
return;
}
var midia=((DataRowView)cboArquivos.SelectedItem).Row["FileName"];
wmp1.URL = ObterDoBancoDados(midia.ToString());
wmp1.settings.autoStart = true;
}
|
Este código verifica se um item da combobox foi selecionado.
Em caso positivo convertemos o item selecionado, que é do tipo DataRowView, para obter o nome do arquivo.
Usamos a instância do Windows Media Player - wmp1 - para obter a URL do arquivo chamando o método ObterDoBancoDados() passando o nome do arquivo.
A seguir executamos o arquivo no Windows Media Player.
O código do método ObterDoBancoDados() é visto abaixo:
private string ObterDoBancoDados(string nomeArquivo) { try { String Consulta = "SELECT FileData FROM [Cadastro].[dbo].[Midias] where FileName = '" + nomeArquivo + "'"; SqlDataAdapter adapter = new SqlDataAdapter(Consulta, ConnectionString); DataSet Ds = new DataSet(); adapter.Fill(Ds, "Midias"); if (Ds.Tables[0].Rows.Count == 0) { MessageBox.Show("Nenhum arquivo encontrado."); return string.Empty; } return ConverterByteParaArquivo(nomeArquivo, ObterDadosNaoComprimidos ((byte[])Ds.Tables[0].Rows[0]["FileData"])); } catch (Exception) { throw; } } |
Neste código obtemos os dados do arquivo selecionado que esta armazenado na tabela Midias no formato binário.
Usamos os métodos ConverterByteParaArquivo e ObterDadosNaoComprimidos para obter os dados e descompactar o arquivo antes de executá-lo.
Abaixo temos o código do método ObterDadosNaoComprimidos();
public static byte[] ObterDadosNaoComprimidos (byte[] valor)
{
try
{
if (valor != null)
using (var zipInputStream = new ZipInputStream(new MemoryStream(valor)))
{
while ((zipInputStream.GetNextEntry()) != null)
{
using (var zippedInMemoryStream = new MemoryStream())
{
var data = new byte[2048];
while (true)
{
var size = zipInputStream.Read(data, 0, data.Length);
if (size <= 0)
break;
zippedInMemoryStream.Write(data, 0, size);
}
zippedInMemoryStream.Close();
return zippedInMemoryStream.ToArray();
}
}
}
return null;
}
catch (Exception)
{
return valor;
}
}
|
O método ConverterByteParaArquivo() converte os bytes armazenados para o arquivo de midia e possui o seguinte código:
private string ConverterByteParaArquivo(string nomeArquivoDestino, byte[] valor) { var str = string.Empty; try { try { var path = Path.GetTempPath(); str = path + "\\" + nomeArquivoDestino; if (File.Exists(str)) File.Delete(str); } catch (Exception) { throw; } var arquivo = (new BinaryWriter(new FileStream(str, FileMode.OpenOrCreate, FileAccess.Write))); arquivo.Write(valor); arquivo.Close(); return str; } catch (Exception) { throw; } } |
Neste momento já temos todas as funcionalidades que permitem selecionar um arquivo e executar o arquivo no Windows Média Player.
Executando o projeto, selecionando um arquivo e clicando em - Executar Arquivo - teremos o seguinte resultado:
Pegue o código do projeto aqui: CSharp_ArquivosVideos.zip (sem as referências)
"Porque a lei foi dada por Moisés; a
graça e a verdade vieram por Jesus Cristo."
João 1: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 VS 2013 ? Quer aprender a criar aplicações Web Dinâmicas usando a ASP .NET MVC 5 ? |
Gostou ? Compartilhe no Facebook Compartilhe no Twitter
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Visual Studio - Dica de produtividade - Quick Launch - Macoratti.net
Visual Studio - Dica de produtividade - Nuget - Macoratti.net
Tocando sons wav com o componente SoundPlayer - Macoratti.net
VB.NET - Carregando e executando arquivos mp3 em ... - Macoratti.net