Escuchar un fichero .mp3 en gambas3
Pasos a seguir:
1º Tenemos que añadir a nuestro proyecto el componente "gb.sdl.sound"
Menu: Proyecto/Propiedades/Componentes y clickearlo:
Añadiendo el componente gb.sdl.sound a nuestro proyecto |
2º La que vamos a usar , es la clase Music (http://gambasdoc.org/help/comp/gb.sdl.sound/music)
Esta clase tiene el método Load (que es la que se encarga de cargar el archivo .mp3 en la memoria), y Play (que empezará a reproducir el sonido).
Os dejo un ejemplo, donde se escuchará un archivo mp3 al pulsar un botón
Ejemplo:
Public sonido1 As Music
Public Sub Form_Open()
Me.Center
End
Public Sub ToolButton1_Click()
Music.load("/tmp/sonido1.mp3")
Music.play
End
Enlace de descarga: ejemplo completo
2) Reproducir dos sonidos a la vez: (código proporcionado por abarzuaf )
' gambas class file
Private sonido1 As Sound
Private canal1 As Channel
Private sonido2 As Sound
Private canal2 As Channel
Public Sub Form_Open()
Channels.Count = 2 --> Pueden ser hasta 32
canal1 = Channels[0]
canal2 = Channels[1]
sonido1 = New Sound("/ruta/al/archivo/a.wav")
sonido2 = New Sound("/ruta/al/archivo/b.wav")
Slider1.MaxValue = 10
Slider1.MinValue = 0
Slider1.Value = 10
Slider2.MaxValue = 10
Slider2.MinValue = 0
Slider2.Value = 10
End
Public Sub Button1_Click()
canal1.Volume = 0.0
canal1.play(sonido1)
End
Public Sub Button2_Click()
canal1.Stop()
End
Public Sub Button3_Click()
canal2.Volume = 0.0
canal2.Play(sonido2)
End
Public Sub Button4_Click()
canal2.Stop
End
Public Sub Slider1_Change()
Dim volumen1 As Float
volumen1 = Abs((((Slider1.value) * 0.1) - 1))
canal1.Volume = volumen1
End
Public Sub Slider2_Change()
Dim volumen2 As Float
volumen2 = Abs((((Slider2.value) * 0.1) - 1))
canal2.Volume = volumen2
End
Nota:
gb.sdl.sound no permite ejecutar dos .mp3 a la vez, los tienes que convertir al formato .wav:
$ffmpeg -i sonido.mp3 sonido.wav
Fuente:
http://jsbsan.blogspot.com.es/2013/05/escuchar-un-mp3-en-gambas3.html
http://www.gambas-es.org/viewtopic.php?f=8&t=941
http://gambaswiki.org/wiki/comp/gb.sdl.sound
Una pregunta, Julio, ¿por qué se usa Music.load o Music.play en lugar de sound1.load o sound1.play?
ResponderEliminarPor que la clase Music y la clase Sound son clases estáticas, y tienes que usar las instancias de esas clases (en mi caso las he llamado sonido1 o sonido2).
ResponderEliminarHolaaa ¿y como se podría hacer una lista de reproducción? gracias
ResponderEliminarPues se me ocurre una forma, que seria creando un Array de String (cadenas) donde vas almacenando las rutas de los archivos de musica que se quieran reproducir.
EliminarSaludos
Me encantaria un ejemplo que haga eso seria muy util
Eliminarsi un un Array de String (cadenas) donde vas almacenando las rutas de los archivos de musica que se quieran reproducir.
gracias
Vale, preparo un ejemplo en unos cuantos dias y lo subo.
EliminarEn estos enlaces teneis el ejemplo:
ResponderEliminarhttp://jsbsan.blogspot.com.es/2016/05/naranjito-reproductor-de-musica-hecho.html
http://jsbsan.blogspot.com.es/2016/05/como-esta-hecho-naranjito-el.html
buenas tardes como hago para obtener ayuda para mi proyecto por este canal
ResponderEliminar