Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Problema dx_lib32 (error dx_Sound)

Iniciado por K0rl3oN, 28 de Agosto de 2006, 09:38:51 PM

« anterior - próximo »

K0rl3oN

Hola a todos!! Tengo éste código:


Option Explicit

Dim m_Sound As dx_Sound_Class 'Referencia a dx_Sound.
Dim Snd_Id As Long 'Almacena el identificador de la secuencia de sonido en memoria.
Dim Snd_Freq As Long 'Almacena la frecuencia de la secuencia de sonido.
Dim Speed As Long 'Almacena el valor de la frecuencia para modificar la velocidad.

Private Sub Form_Load()
'Inicializamos dx_Sound:
Set m_Sound = New dx_Sound_Class

'Inicializamos la clase dx_Sound con los valores por defecto:
Call m_Sound.Init(Me.hWnd)

Call m_Sound.SOUND_Unload(Snd_Id) 'Descargamos la secuencia de sonido anterior.
       
Snd_Id = m_Sound.SOUND_Load("C:secta_final.xm") 'Carga la secuencia de sonido en memoria.

Call m_Sound.SOUND_Play(Snd_Id, 0, CBool(True)) 'Reproduce la secuencia de sonido en el canal 0.

Call m_Sound.SOUND_SetFrequency(0, Speed)
End Sub

Private Sub Form_Unload(Cancel As Integer)
'Terminamos la ejecucion de la clase:
Call m_Sound.Terminate

'Destruimos la instancia de la clase:
Set m_Sound = Nothing

End Sub


El problema, es que no reproduce ningún sonido...

:D ¡DONDE ESTARÁ EX3 CUANDO SE LE NECESITA! :D

Gracias por adelantado.

Salu2... :lol:
a muerte llega tan lenta que nos da toda una vida para poder alcanzarla

[EX3]

Wenas, K0rl3oN.

Cita de: "K0rl3oN"Snd_Id = m_Sound.SOUND_Load("C:secta_final.xm") 'Carga la secuencia de sonido en memoria.
El problema, es que no reproduce ningún sonido...
Asi a simple vista veo dos errores muy claros:
1. La ruta de acceso no es valida ya que faltan el delimitador \. La ruta valida seria "C:\secta_final.xm"

2. dx_lib32 desde la version 2.0 no soporta formatos de modulos musicales como xm, sm3, it, mod, etc... Las funciones de sonido, prefijo SOUND_, solo soportan formato WAV y las funciones de musica, prefijo MUSIC_, soportan de forma nativa WAV, MIDI y MP3, y mediante codecs formatos como el OGG. Tanto en la pagina del proyecto, en la seccion de caracteristicas, como en la documentacion esta mencionado.

Cita de: "K0rl3oN":D ¡DONDE ESTARÁ EX3 CUANDO SE LE NECESITA! :D
Ocupado desde el jueves formateando y reinstalando Windows para despues pasarme 3 dias peleandome con el firewall de windows y con todo el spyware que invitaba a mi ordenador :P

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

K0rl3oN

Jajajaja :D  no es por amargar, EX3, pero ahora lo puse de esta forma:


Snd_Id = m_Sound.SOUND_Load("C:\entidad_3d\wav\saltar.wav") 'Carga la secuencia de sonido en memoria.


Pero sigue sin oirse. :)

¿Sabes por qué?

Espero haberme explicado bien.

Gracias de antermano.

Salu2...
a muerte llega tan lenta que nos da toda una vida para poder alcanzarla

[EX3]

Sin mas informacion poco te puedo decir. Las funciones de carga y de inicializacion devuelven un resultado. Revisa que valor te devuelven y compara en la documentacion con las constantes definidas en la enumeracion SND_ErrorCodes.

Aun asi, la version actual aun podria provocar algun error en la clase de sonido por la configuracion de optimizaciones en el motor de compilacion de VB 6.0. La proxima version, la 2.1.190 posiblemente corrija dicho errores al no utilizar ninguna configuracion de optimizacion en la compilacion de la DLL.

Mirate lo de las devoluciones y me dices.

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

K0rl3oN

Ya sé donde me daba error.


Call m_Sound.SOUND_Play(Snd_Id, 0, CBool(True))     '// ERROR

Call m_Sound.SOUND_Play(Snd_Id, 1, CBool(True))     '// FORMA CORRECTA


Me puse a investigar, y me dí cuanta de que ese 1 es un 0.

Gracias, EX3.

Salu2...
a muerte llega tan lenta que nos da toda una vida para poder alcanzarla

[EX3]

En teoria, y al menos en la practica en mis pruebas realizadas, ese parametro te permite especificar en que canal, de los que haya habilitados, vas a reproducir el sonido. Por defecto el valor es -1, este valor indica que dx_lib32 asignara el primer canal libre que haya disponible. Todo esto viene indicado en la documentacion. Asi que en principio el valor 1 deberia ser valido, pero si falla lo mejor es no asignar ningun valor a ese parametro y dejar que dx_lib32 asigne el canal, de esta forma tambien te aseguras que puedas reproducir el mismo sonido varias veces de forma simultanea si fuese necesario mientras que indicando de forma fija el canal 0 solo se reproducira una sola vez.

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.