Foros - Stratos

Proyectos => Proyecto dx_lib32 => Mensaje iniciado por: K0rl3oN en 28 de Agosto de 2006, 09:38:51 PM

Título: Problema dx_lib32 (error dx_Sound)
Publicado por: K0rl3oN en 28 de Agosto de 2006, 09:38:51 PM
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:
Título: Re: Problema dx_lib32 (error dx_Sound)
Publicado por: [EX3] en 29 de Agosto de 2006, 12:36:10 AM
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 (http://dxlib32.se32.com/features.html#dx_sound), 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...
Título: Re: EX3
Publicado por: K0rl3oN en 29 de Agosto de 2006, 01:09:34 PM
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...
Título: Problema dx_lib32 (error dx_Sound)
Publicado por: [EX3] en 29 de Agosto de 2006, 07:20:02 PM
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...
Título: Re: EX3
Publicado por: K0rl3oN en 29 de Agosto de 2006, 09:53:22 PM
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...
Título: Problema dx_lib32 (error dx_Sound)
Publicado por: [EX3] en 29 de Agosto de 2006, 11:08:18 PM
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...