Reproducir audio con Visual Basic .Net
Escrito en Marzo 8, 2009 por Alex
Con visual Basic .Net podemos reproducir archivos de audio como mp3 o Wav.
Lo único que necesitamos es agregar el componente Windows Media Player al cuadro de herramientas. Para esto, damos clic derecho sobre el cuadro de herramientas y seleccionamos la opción “Elegir elementos”.
Hacemos clic en la ficha “Componentes COM” y buscamos el componente “Windows Media Player” que en su ruta de acceso apunte hacia: msdxm.ocx.
Seleccionamos su cuado de opción y le damos aceptar.
En el cuadro de herramientas debe de aparecer un nuevo control llamado Windows Media Player que necesitamos agregar ahora al formulario.
Ahora comenzamos con la codificación
El primer paso será ocultar el control al usuario, si es que queremos hacerlo y si queremos que no comience a reproducir al iniciar el programa ponemos esto:
'ocultar el reproductor AxMediaPlayer1.Visible = False 'impedir reproducci¢n automatica AxMediaPlayer1.AutoStart =False
Le asignamos un archivo de audio y reproducimos con el método play():
AxMediaPlayer1.FileName "C:\miaudio.mp3" AxMediaPlayer1.Play()
Podríamos para mejorar este código insertar un OpenFiledialog para buscar archivos y reproducirlos y también poner botones de Play, Stop y Pausa.
Para utilizar esos botones existen tambien los métodos del mismo nombre y que su manera de utilizatr es similar al método Play. Aquí unos ejemplos:
AxMediaPlayer1.Stop() AxMediaPlayer1.Pause()
Es importante que siempre se manejen capturas de errores en todas las aplicaciones, cobre todo en este caso, cuando el archivo de audio se especifica mediante código y no forma parte de los recursos del programa, es decir, que se encuentra en una carpeta que podría ser borrada.
También hay que tomar en cuenta que solo se reproducirán archivos de audio de los formatos que el reproductor de windows admite.







hola
Disculpa molestia se que lo que estoy esribiendo no es referente a tu tema, ya que tengo un trabajo que me encargaron y necesito de tu ayuda…no se si me puedes ayudar necesito realizar una aplicacion que escanee fotos y las guarde y pueda abrir el archivo de imagen despues…claro en visual net.2005 ayudame para empezar a trabajar dime que utilizo o que debo de utilizar.
saludos estare pendiente a tu contestacion…
Perdón la tardanza en responder pero no lo pude hacer antes.
Mira , no tengo a la mano ningún ejemplo para lo que quieres hacer, pero si lo consigo te lo pongo.
Saludos.
estare al pendiente gracias…
Hola Alex, tengo una pregunta, he estado intentando añadir al cuadro de herramientas el componente windows media player como indicas, pero en visual studio 2005 me dice que no tiene ningún componente, pero en cambio si hago lo mismo en visual studio 2003 si que lo ejecuta, sin ningún problema, ¿esto a que se puede deber? ¿Puede ser debido a alguna incompatibilidad de alguna versión del visual studio 2005 en concreto?
Lo digo porque el proyecto lo estoy haciendo en 2005 y no encuentro la manera de reproducir música.
Un saludo y gracias por anticipado,
Juan T.
Mira. Yo uso el 2008 pero lo he probado con el 2005 y funciona perfecto.
Aqui lo que puedes hacer es buscar el archivo al que se hace referenia en vb2005 y agregarlo manualmente en vb 2003.
Saludos.
Hola!! Kisiera saber si m puedes ayudar, yo kiero obtener las propiedades de un archivo mp3, ya tengo un reproductor que me da las propiedades, pero solo cuando esta en play… Como le hago si kiero obtener el autor o el album en el que esta esa cancion, si me puedes ayudar muchas gracias!!! Ahi t va un pedazo de codigo donde lo kiero poner…
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
‘ agregar columnas
With ListaView
.Columns.Add(”Nombre”, 150)
.Columns.Add(”Fecha y hora de modificación”, 150)
.Columns.Add(”Tamaño - bytes “, 100)
.Columns.Add(”Extensión”, 80)
.View = View.Details
.GridLines = True
End With
btnListar.Text = “Listar propiedades”
txtDir.Text = “C:\Users\-wIs-\Music\30 seconds to mars”
End Sub
Private Sub Button1_Click( _
ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnListar.Click
ListaView.Items.Clear()
Try
‘ recorrer los ficheros en la colección
For Each sFichero As String In Directory.GetFiles( _
txtDir.Text, “*.mp3″, _
SearchOption.TopDirectoryOnly)
‘ Crear nuevo objeto FileInfo
Dim Archivo As New FileInfo(sFichero)
‘ Crear nuevo objeto ListViewItem
Dim item As New ListViewItem(Archivo.Name.ToString)
With item
‘ LastWriteTime - fecha de modificación
.SubItems.Add(Archivo.LastWriteTime.ToShortDateString & ” ” & _
Archivo.LastWriteTime.ToShortTimeString)
‘ Length - tamaño en bytes
.SubItems.Add(Archivo.Length.ToString)
‘ Extension - extensión
.SubItems.Add(Archivo.Extension.ToString)
ListaView.Items.Add(item) ‘ añadir el item
End With
La info que necesitas se refiere a extraer la información llamada ID3 dentro de archivos de audio.
Aquí te pego el código para realizar esto.
Este código esta sujeto a correcciones y mejoras ya que no tiene captura de errores.
Dim mp3 As String = “c:\mimp3.mp3″
Dim fs As New FileStream(mp3, FileMode.Open)
Dim Buffer As Byte()
ReDim Buffer(0 To 128)
fs.Seek(-128, SeekOrigin.End)
fs.Read(Buffer, 0, 128)
fs.Close()
Dim enc As Byte()
Dim id3 As String
id3 = Encoding.ASCII.GetString(Buffer)
If id3.Substring(0, 3) = “TAG” Then
textTitulo.Text = id3.Substring(3, 30)
textArtista.Text = id3.Substring(33, 30)
textAlbum.Text = id3.Substring(63, 30)
textAño.Text = id3.Substring(93, 4)
textComentario.Text = id3.Substring(97, 28)
End If
Para sacar la información id3 de archivos de audio aparte de necesitar el código de arriba,
Olvide mencionar que necesitas importar los espacios de nombres:
Imports System.IO
Imports System.Security.Cryptography
Imports System.Text
¿necesito codigo para crearun reproductor de musica y que pueda reproducir todas las extenciones de audio existentes…?
para desarrollarlo en visual basic.net
ES URGENTE!!!!!!!!!!
Miguel: El código que necesitas esta precisamente en este post.
Solo lee la información y listo.
este ese codigo enque botton ba si se puede saber alexpor que el reproductor que yo estoy creando es cencillo tiene el botton de play, pausa, stop, siguiente, anterior me podrias ayudar a resolverlo con comentarios en las lineas digo si pueds gracias
y tambien tiene el de directoria, drive1, y file1 espero y me contestes me urge
Sua: No entiendo que necesitas…
Si necesitas poner código a los botones de play, pausa, stop etc.
Aqui te dejo algunas funciones:
AxMediaPlayer1.FastForward() ‘Avance rapido
AxMediaPlayer1.FastReverse() ‘retroceso rapido
AxMediaPlayer1.Next() ‘Siguente
AxMediaPlayer1.Pause() ‘Pausa
AxMediaPlayer1.Play() ‘Play reproducir
AxMediaPlayer1.Previous() ‘atras
Cualquier duda me comentas…
Oye jeje ese componente solo viene en .net? yo tengo la versión express, (la gratuita) 2008 pero no está en herramientas, debo hacer algo especial para ponerlo en el form? si lo he visto en otros proyectos pero cómo lo ponen? en la vista de diseño?
Si sabes te agradeceré
sino igual pero sé que sabes
uju ya lo encontré si no te molesta acá pongo el link va?
http://support.microsoft.com/kb/821767/es
El componente para reproducir audio no depende de la versión de vb.net ya que viene con el reproductor de Windows.
Cuando digo que su ruta apunte hacia msdxm.ocx es porque muchas veces no esta visible y hay que agregarlo desde examinar en el directorio de windows\system32.
Saludos.
hola disculpa ya puse lo de windows media player pero pongo lo q indicas y me marca error porq falta algo antes de AxMediaPlayer1. o despues esq marca error
Hola, necesitaria ver tu código para saber que falta, porque he probado este código varias veces y funciona.
Creo que lo que te falta es hacer bien la referencia a msdxm.ocx
Como dije en el anterior comentario, si haces la referencia solo hacia windows media player puede que estés apuntando a otra dll o a otra referencia del reproductor de windows, por eso aclaro que debe apuntar hacia msdxm.ocx y si no se ve ocupa el botón de examinar y encuentra este archivo en el directorio de windows\system32.
Saludos.
Amigo Alex me dice q AxMediaPlayer1 no ha sido declarado, como le hago…Saludos
Lo mismo, checa que tengas las referencias que menciono.
Y despues de eso agrega el componente como si se tratara de un textbox o un label.
Hola tengo una gran duda, quiero reproducir en el componente wmp de vb.net 2005 un archivo de audio que lo tengo almacenado en una bd sql, como hago para asignarle esa cadena de bytesy reproducirlo en el componente wmp.
Debes volver a pasarlo a mp3 o el archivo que era.
En el post de Guardar PDF en mysql esta una solución.
Alex una consulta, para ejecutar este codigo instancias un objeto de qué tipo?
Gracias
Instancias un objeto del tipo Axmedia Player pero ese objeto esta instanciado como un componente COM que agregas del cuadro de herramientas por lo quew no es necesario hacerlo con codigo.
Hola Alex, exelente tu aporte. Una pregunta, como le puedo hacer para reproducir solo un segmento de una cancion y que este se repita. Sin llegar precisamente al inicio de la cancion, sino poner una marca que indique el inicio y el fin seleccionados.
Gracias.
Lo quieres en minutos? porque se puede establecer la posicion inicial utilizando:
axmediaplayer1.currentPosition=15
y comienza a partin de la posición 15.
Hola Jose, gracias por contestar.
Ya casi lo soluciono, lo que hice fue poner un timer q inicie cuando empíeza la cancion, Pongo en una variable el incio y en otra el fin del segmento que quiero escuchar. Y en el timer hago la comparacion con un if
si el currentPosition >= Fin entonces le asigno al curentPosition= inicio
Muchas graicas.
Hola que tal.. estuve leyendo y me parecio muy bueno.
queria hacerte una pregunta espero q no moleste:
si bein en visual basic me funciono… sabrias decirme que opcion puedo elegir para visual web developer.. ya que si sigo los pasos en ese programa no me deja utilizar la herramienta.
si bien me aparece entre las herramientas pero en gris ( no disponible).
espero q puedas ayudarme y desde ya gracias por el trabajo que te tomaste en responder a toda la gente.
disculpa que escriba denuevo pero.. si tambien podrias aclararme como poner mas de un tema a reproducir te lo agradeceria.
El código esta en Visual Basic.Net si lo quieres hacere en visual web developer y lo intentas hacer para mostrarlo en un sitio web, esta no es la manera ya que no puedes llamar a una api o a un OCX etc desde un sitio web, para eso se utilizan los active X.
ok gracias!… te vuelvo a felicitar por el aporte! muy bueno de encerio.
enseñenme desde el principio no se na……..
haber si aprendo eso del reproductor de musica
quisiera saber los codigos para botones de play y en k eventos, y para un menu desplegable en el windows media con lo temas, y un codigo tbm, para al hacer doble click en la cancion se reproduzca. gracias
Este codigoi es el que buscas que mas necesitas.?????
Esta muy claro lo de los eventos y el play…
No pidas código pide concimiento y entiende porque funcionan las cosas-.
necesito la programacion del boton siguiente que no sea e.playlist por q tengo visual 2008
Funciona en visual 2008 pero en el código no pongo nunca e.playlist
estuvo biieN… pero0 queria ver si me po0dias ayudar con un programa de entrada que ocupo hacer en vb….. el programa tiiene que reproducir un sonido cuando yo aplaste Un push button (no me acuero como se llama xD) por ejemplo aplasto un boton por ejemplo el 1 y tiiene que reproducir la letra A…es un ejemplo o0k…bueno te egradeceria mucho0 si me pudiieras ayudar xD
Juan: Lo que necesitas es copiar el codigo de arriba dentro del boton y ya-…
Alex, queria saber como hacer para reproducir los archivos de musica que almaceno en un listbox (playlist)
me refiero que al hacerles click a los archivos no se reproducen quiero saber como habilitar que al darles click se reproduzcan. uso el Visual basic 5.0. gracias de antemano
oigan a todos los que se consideren programadores y que quieran intercambar conocimiento ,de cualquier tema no solo programacion, quiero proponerles que se unan a mi cuenta de msn donde solo agrego a gente que quiera programar, o platicar de temas interesantes( ya que el mundo y la caja idiotizante-TELEVISION- no genera mas que gente estupida),para los que esten interesados aqui les dejo mi cuenta de correo: masturbin0136@hotmail.com y ya yo me pondre en contacto con los interesados
ademas….
muy buenos codigos los que vi publicados
son realmente impresionantes!!( y eso que a mi casi nada me impresiona)
y gracias a los que se tomaron la molestia de leer este pequeño comentario
este ejemplo esta para visual . Net Como he dicho anteriormente me extenderia mucho en poner ejemplos de otros lenguajes que por ser mas antiguos existe mucha info en la red.
aye amigo me podrias lludar en como hacer reprodur un archivo de video en vb.net es no e encotrado ninguna concretomes si me allude te lo agardeseria
Copia este codigo es lo mismo.
hola necesito los codigos para poder realizar un reproductor de musica en visual basic 2005, por fa si puedes mandarlo es para un proyecto de la escuela, estare al pendiente gracias atte: Crunk!!!
Como hago para anadirle la musica. Es que si lo pongo asi es solo una ruta y si instalo el programa en otra computadora no puedo escucharla ya que no tiene la musica ni la carpeta. Espero su ayuda. Gracias
Necesito ponerle sonido a la imagen al hacerle click Me podria ayudar con los codigos soy una principiante de programacion…
estoy desarrollando el programa en microsot visual basic 6.0
porfis deme la ayuda
este mi es correo femeni_telle@hotmail.com
Y si quiero manejar el balance o frecuencia del audio como hago? Gracias
holas bueno no se sim e puedas ayudar es k me an pedido hacer un trabajo k es hacer un reproductor de audio y video en visual basic 8.0 o 9.0 y pues nose bien como hacer me puedes ayudar por favor .
GRACIASSS
Maria: Con este ejemplo lo puedes hacer, no se que duda tengas acerca del código????
hola necesito un programa en el que tenga almacenado muchos sonidos cortos, cuando un sensor externo sea activado reproducir el sonido tantas veces como sea necesario hasta que el sensor sea soltado. los datos de los distintos sensores entraran via usb.
cualquier ayuda la agradeceria, realmente estoy muy perdida gracias
De verdad alex haces una labor genial sos el mejor
hola c omo hago para enlazar acces con vb 2005 lo estoy intentando y las carpetas las monto al escritorio y me dejan ver los archivos luego cuando intento enlazar no me deja y me dice que no hay archivos en las carpetas incluso en acces le doy la opcion de modificarlo de 2007 a 2002-2003 y no me enlaza en q estoy herrado si
Sabes estoy haciendo una pequeña aplicacion educativa en la que quiero que al escuchar un sonido de un button seleccionen la imagen que corresponde al sonido y que me muestre si es correcto o no—porfa nose si podrias ayudarme…lo del sonido ya funciona solo quiero sobre la imagen al hacer clic….bueno espero tu respuesta….v_virgo27_6@hotmail.com
Oues es muy sencillo, es mas de lógica. Necesitas conocer el nombre de la imagen y le pones el mismo nombre al sonido. Si los nombres son iguales pues es correcto.
hola… Oye ya puse el codigo ke indicas arriba pero mmm
no pasa nada con el reproductor no reproduce….
ni me deja usar los botones de play y eso….
como le ago…???
Checa si agregaste bien el control AXMediaPlayer , si no dime que error te manda.
Hola que pena, me haces un inmenso favor, es que quiero reproducir un video que está en la carpeta recursos de la aplicación pero por mucho que intente no encuentro la forma. Gracias!!!!
Estefa:
Los recursos se llaman de la siguiente manera:
My.resources.archivo.mp3
Hola. Me gustaría que me solucionaran este problema:
He intentado agregar el archivo de reproductor de mp3: msdxm.ocx, pero al insertarlo a la barra de herramientas, me sale el mensaje: No se pudo realizar el autorregistro de msdxm.ocx.
¿A qué puede ser debido? Tengo un Visual Basic 2008 Express con licencia gratuita. ¿Tengo que pagar la licencia?
Gracias.
Manuel.
Yo recomede el componente AxMediaPlayer.ocx. Prueba con ese. El que mencionas es para internet explorer y no para un WindowsForms.
Alex me dice que FileName no es un miembro de AxWMPLib.AxWindowsMwdiaPlaye te agradezco me pudieras ayudar. Gracias…