MP3 player com DirectX

Ao menos uma vez você já deve ter tentando executar um MP3 utilizando .NET. Você vai lá e adiciona um objeto SoundPlayer do namespace System.Media, utilizando o método Play() e… não é possível executar o arquivo, pois o SoundPlayer não suporta o MP3.

Vamos usar o DirectX para nos auxiliar com isso, então, baixe o DirectX Software Development Kit no site do Microsoft, são apenas 443 MB.

No meu caso, eu tive que executar um mp3 em um dashboard de Call Center. O cliente queria colocar um telão no Call Center e, toda vez que o nível de atendimento estava abaixo do mínimo aceitável, o sistema tinha que tocar uma sirene. Bom, fizemos um esquema para ler wav, mas nossa vontade era fazer com mp3! Coisas de desenvolvedor… Bem, fizemos, mas não foi para produção, não deu tempo. Mas não importa – a questão é que o DirectX vai nos ajudar com o nosso MP3.

Requisitos

  • Windows XP com framework 2.0 ou superior
  • DirectX SDK 2006 ou  superior
  • Visual Studio 2005 ou compatível

Criando o projeto Windows Forms Application

Agora com o DirectX SDK, crie um novo projeto do tipo Windows Forms Application, com o nome que você achar melhor. Não vou mostrar aqui com usar o OpenFileDialog, isso fica para outro artigo.

Adicione as referências

Vá ao menu “Project”, clique em “Add Reference”, na aba “.NET”, adicione as referências “Microsoft.DirectX” e “Microsoft.DirectX.AudioVideoPlayback”.

Adicione o caminho do mp3

Dê um clique duplo no formulário. No método Form_Load, crie uma variável do tipo string com o nome musica e sete o valor dela como o caminho para o seu arquivo mp3 (pois é, um arquivo mp3!!!! Hehe).

Adicione objeto Microsoft.DirectX.AudioVideoPlayback.Audio

Adicione um objeto do tipo Áudio (Microsoft.DirectX.AudioVideoPlayback.Audio) com o nome áudio. Instancie áudio como um novo Áudio e passe como parâmetro o objeto música no construtor.

Execute “Play”

Agora execute o método “Play” do objeto áudio.

Código fonte

Abaixo estão os códigos-fonte em VB.NET e C#:

VB.NET

Imports Microsoft.DirectX.AudioVideoPlayback Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim musica As String = "C:\Documents and Settings\oscar\Meus documentos\Minhas músicas\Top Gun - Danger Zone.mp3" Dim audio As Audio audio = New Audio(musica) audio.Play() End Sub End Class

C#

using System; using System.Windows.Forms; using Microsoft.DirectX.AudioVideoPlayback; namespace DirectXPlayer {     public partial class Form1 : Form     {         public Form1()         {             InitializeComponent();         }         private void Form1_Load(object sender, EventArgs e)         {             string musica = @"C:\Documents and Settings\oscar\Meus documentos\Minhas músicas\Top Gun - Danger Zone.mp3";             Audio music;             music = new Audio(musica);             music.Play();         }     } }

Referências

http://msdn.microsoft.com/en-us/directx/aa937788.aspx
http://msdn.microsoft.com/en-us/directx/default.aspx
http://msdn.microsoft.com/en-us/aa937791.aspx

Como você pode ver, não é uma situação tão difícil. Espero que tenha agregado conhecimento. Até a próxima.

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s