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

