quarta-feira, 2 de dezembro de 2009

MP3 player com DirectX

Requisitos

Windows XP com framework 2.0 ou superior
DirectX
Visual Studio 2008 ou compatível

1º Instalar Microsoft DirectX SDK (June 2006) ou compatível

Vamos lá pessoal, algum dia na vida qualquer um aqui já tentou executar um MP3
utilizando .NET correto? Aí vamos lá e adicionamos um objeto SoundPlayer do namespace
System.Media, quando utilizávamos o método Play()! PAN! Não é possível executar o arquivo
pois o SoundPlayer não suporta o MP3. Utilizaremos o DirectX para nos auxiliar com isso, para
isso a primeiro que devemos fazer é baixar DirectX Software Development Kit no site do
Microsoft através do link
http://www.microsoft.com/downloads/details.aspx?FamilyID=1fd20df1-dec6-47d0-8bef-
10e266dfdab8&DisplayLang=en, 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 com (o gerente desse projeto foi mandado embora
antes da conclusão do projeto, então essa parte do telão não rolou... vai vendo rsrs) e toda vez
em que o nível de atendimento estava abaixo no mínimo aceitável o sistema tinha que tocar
uma sirene, bem 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, não
importa, esse treco aqui funciona.

2º Criar um 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, bem, não mostrar com usar o OpenFileDialog, isso fica
para outro artigo.

3º Adicionar as referências

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

4º Adicionar caminho do mp3

Dê um clique duplo no formulário, agora 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).

5º Adicionar objeto Microsoft.DirectX.AudioVideoPlayback.Audio

Adicione um objeto do tipo Audio (Microsoft.DirectX.AudioVideoPlayback.Audio) com
o nome audio, instancie audio como um novo Audio, e passe como parâmetro o objeto musica
no construtor.

6º Executar “Play”

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

7º Código fonte

Abaixo estão os códigos fonte em VB.NET e C#(Sharp).

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#(Sharp)

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();
}
}
}

Referencias

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

Pessoal, é só isso, como vocês podem ver é super fácil, espero que tenha agregado
conhecimento. Até a próxima.