Developer's Diary

10 agosto, 2010

Reproduciendo Sonido con Directx en .NET

Filed under: .net, Curso C#, Programación — jnavero @ 2:36 PM

—- Nos mudamos: http://devthisblog.namocode.es
—————————————————————–
Lo primero que necesitamos es el SDK de las Directx, lo que aquí voy a mostrar es un poco independiente de la versión que descarguemos ya que no haremos gran cosa. Este post es un comentario de introducción al sonido con DirectX, los ejemplos aqui descritos están programados en c#

En este enlace, disponéis de noticias y descargas recientes: http://msdn.microsoft.com/en-us/directx/aa937788.aspx

Una vez, instalado, abrimos nuestro Visual Studio y seleccionamos un proyecto nuevo, y abrimos un Windows Form como siempre.
Aquí añadimos un simple botón, pulsamos dos clicks y vamos a comenzar a escribir nuestras líneas de código.

Primero, añadimos nuestras referencias:

using Microsoft.DirectX.AudioVideoPlayback;
using Microsoft.DirectX.DirectSound;

Supongamos que disponemos de una canción llamada prueba.mp3 y esta se encuentra en el raiz de c. (C:\).
Declaramos un string para indicar donde se encuentra nuestro MP3.

string rutaMp3;
rutaMp3 = “c:\prueba.mp3”;

y por ultimo llamamos a la función que nos interesa y le damos al play

audio cancion = new audio(rutaMp3);
cancion.play();

Con esto ya estaríamos escuchando una canción en Mp3 via Directx, como veis es muy sencillo.
A continuación indico algunos métodos de la clase audio que son importantes…

Play: Inicia la reproducción de una canción concreta.

Stop: Detiene la reproducción.

Pause: Realiza una pausa y posteriormente podremos inicializar la escucha

SeekCurrentPosition: Establece la canción en un punto determinado.

Por ejemplo, si deseamos avanzar una canción 10 segundos usamos esto:
SeekCurrentPosition(10, SeekPositionFlags.RelativePositioning)
Si deseamos retroceder en vez de 10 podemos indicar -10.

CurrentPosition: Nos indica la posicion en la que se encuentra (con ello podemos ir calculando el tiempo que lleva reproducido.

Balance: Podemos seleccionar el altavoz (Izquierda, derecha o centro)

Volume: Podemos aumentar y/o disminuir el volumen del audio.

Estas dos últimas funciones, tienen unos valores un tanto extraños ya que admite un integer, sin embargo, por ejemplo el volumen, sin sonido puede valer -2000. Asi que para hacer algo un tanto “Efectivo” podríamos hacer un porcentaje que vaya de 0 a 100 como en el ejemplo que dejo a continuación, aunque esto es un poco a criterio de cada uno y cuestión de gustos.

public void volumen(int valor)
{
int cero;
int porcen;
int sol;
if (valor ¡= 0)
{
cero = -2000;
porcen = (cero * valor) / 100;
sol = cero – porcen;
cancion.Volume = sol;
}else
cancion.Volume = -10000;
}

Hasta aquí ha sido todo por hoy sobre el sonido en DirectX.
Nos veremos pronto.
Saludos.

Anuncios

Dejar un comentario »

Aún no hay comentarios.

RSS feed for comments on this post. TrackBack URI

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: