La Web del Programador: Comunidad de Programadores
 
    Pregunta:  2321 - REPRODUCIR UN ARCHIVO DE SONIDO CON VFP6
Autor:  Gustavo González
Hola, me llamo Gustavo y tengo el siguiente problema :

Intento hacer un prg que reciba como parametro el nombre de un archivo de sonido, podría ser .wav o .mid, etc. Y simplemente lo reproduzca nada mas.(No debería generarme ninguna salida visual)

Hasta ahora tengo esto :

* Comienzo del Prg
****

Parameters NomArcSnd
* Como parametro recibe el nombre del archivo de * sonido

SET CLASSLIB TO _MULTIMEDIA.VCX ADDITIVE
* agrega la biblioteca de clases para multimedia

* comienzo del código ****

Objeto1 = CREATEOBJECT( "Reproductor" )
Objeto1.cFileName = NomArcSnd
Objeto1.AutoRepeat = .F.
Objeto1.AutoOpen = .F.
Objeto1.AutoPlay = .T.
Objeto1.OpenSound( )
*Objeto1.PlaySound( ) no es necesario por *autoplay en true
Objeto1.CloseSound( )

return

* fin del código ****

* Comienzo Definiciones****

DEFINE CLASS Reproductor AS _soundplayer
ENDDEFINE

* Fin Definiciones ****

* Fin del PRG ****

El problema es que si corro este programita via depurador me anda bien, ya que el problema parece ser que se corta la reproduccion en la sentencia
Objeto1.CloseSound( ) cuando se corre en tiempo real.
Y en estas circunstancias solo escucho un corto fragmento del archivo de sonido y nada mas ahi termina todo.

Le agrege luego de la sentencia Objeto1.OpenSound( ) el siguiente bucle para probar y ahi si me reprodujo todo el archivo completo.

for i = 1 to 100000000
next

  Respuesta:  Claudio Rivadera
Hola!
yo probe este codigo y me funciona muy bien.
El declare lo puse en el load del form y luego en cualquier parte convoco con playsound...incluso creo que la ayuda del VFP 6 hay una descripcion de los parametros..

Saludos

mensaje="bienvenido.wav"
DECLARE INTEGER PlaySound IN WINMM.dll STRING cWave,INTEGER
nModule,INTEGER nType
PlaySound(mensaje,0,1)

  Respuesta:  Victor F. Rodriguez
Yo tambien deseo aprender como hacer esto por programacion. Hasta ahora, lo unico que he encontrado es esto, que te lo muestro con un ejemplo:
SET BELL TO "C:\WINDOWS\MEDIA\LOGOFF.WAV",0
??CHR(7)
Copia esto en la ventana de comando y veras lo que sucede. Si quieres reproducir un sonido, solo tendrias que ubicar el nombre del archivo y hacer lo mismo.
Victor F. Rodriguez/Santo Domingo, Republica Dominicana

  Respuesta:  Fernando Palazzi
Probaste insertando el activex ?
En el formulario elegis, barra de herramientas, elegis Control ActiveX (OleControl). Lo colocas en el formulario y luego elegis Crear desde archivo, Examinar y nombre del archivo WAV,mp3 O mid y Aceptar
En las propiedades elegis las del objeto
para ejetutarlo al estar el formulario en funcionamiento utilizas la propieded del ActiveX Doverb()