Page 1 of 1

Ayuda con SndPlaySound()

PostPosted: Fri Apr 30, 2010 10:58 pm
by JoseGS
Hola amigos:

Tengo un sistema con el que mi cliente activa mediante un boton la grabadora de sonido de Windows mediante WAITRUN('SNDREC32'). Esto le permite almacenar en un archivo WAV conversaciones sostenidas con sus pacientes.

Estos archivos WAV son almacenados en un folder predeterminado y hasta hace algunos dias los reproducia mediante SndPlaySound(nombre del archivo). Pero ahora no funciona. Es el mismo equipo, el mismo Windows... nada ha cambiado.

Alguna idea de como hacer que funcione SndPlaySound() o algun metodo alterno?

Busque en los ejemplos y encontre:
DLLCALL.PRG
DLL FUNCTION SndPlaySound( cFile AS LPSTR, nType AS WORD ) AS BOOL ;
PASCAL LIB "MMSYSTEM.DLL"


Y TESTBMP2.PRG
#ifdef __XPP__

DLL FUNCTION SndPlaySound( cFile AS LPSTR, nType AS LONG ) AS BOOL PASCAL ;
FROM "sndPlaySoundA" LIB "winmm.dll"

#endif

Pero no me funciona....


Gracias

Re: Ayuda con SndPlaySound()

PostPosted: Sat May 01, 2010 12:23 am
by Daniel Garcia-Gil
Hola Jose


yo lo hago de esta forma

aqui puedes ver los flags
http://msdn.microsoft.com/en-us/library/dd798676(VS.85).aspx


Code: Select all  Expand view

#pragma BEGINDUMP
#include <hbapi.h>
#include <windows.h>

//----------------------------------------------------------------------------//
HB_FUNC( SNDPLAYSOUND ) // cFileName, nFlags -->lSuccess
{
   hb_retl( sndPlaySound( ( LPSTR ) hb_parc( 1 ), SND_ASYNC | hb_parnl( 2 ) ) );
}

#pragma ENDDUMP
 

Re: Ayuda con SndPlaySound()

PostPosted: Sun May 02, 2010 2:03 am
by JoseGS
Gracias Daniel, voy a probarlo

Re: Ayuda con SndPlaySound()

PostPosted: Sun May 02, 2010 2:21 am
by JoseGS
Hola Daniel,

Copie todo al final de mi PRG y NADA... se me habra olvidado algo ?

Gracias

Re: Ayuda con SndPlaySound()

PostPosted: Sun May 02, 2010 10:01 am
by Daniel Garcia-Gil
Jose...

Has intentado reproducir los archivos por otra via, es decir, un reproductor externo?

puede que este fallando hardware o un cable desconectado, etc...

Re: Ayuda con SndPlaySound()

PostPosted: Sun May 02, 2010 12:41 pm
by JoseGS
Es algo raro porque lo he probado en 3 computadoras. Voy a tener que usar un reproductor externo.

Muchas gracias por tu ayuda

Saludos desde Panama.

Re: Ayuda con SndPlaySound()

PostPosted: Sun May 02, 2010 1:39 pm
by JoseGS
El peor error que uno puede buscar en un programa, es el que no existe.... Con mucha frecuencia pensamos que el codigo que escribimos contiene un error y pasamos horas y hasta dias buscandolo. Al final nos percatamos que no habia tal error y el problema era otro.

Mi problema con el SndPlaySound() era que el volumen del microfono estaba al minimo... y claro no registraba nada....


Gracias Daniel por tu tiempo

Saludos a todos

Re: Ayuda con SndPlaySound()

PostPosted: Mon May 03, 2010 10:30 am
by Andrés González
De todas formas Jose la misma herramiente te reproduce lo que has grabado. Yo lo tengo en un boton que esta unido al registro y cuando lo pulso mira si el fichero existe y sino lo crea con el nombre que tu le especificas en /new (si has grabado algo). Y, si existe te lo reproduce y así tu puedes hacer lo que quieras despues, añadir grabacion, borrar hasta un punto determinado, mezclar con otra, etc. Entiendo el uso de SndPlaySoun() si no quieres permitir modificarlo.

Por asi decirlo este seria el script o la porcion de codigo que ejecuto cada vez:
Code: Select all  Expand view
WinExec("CMD /C START /separate c:\Windows\system32\sndrec32.exe "+ iif(!file(".\DAT\SND\"+alltrim(q_t)+".Wav"),"/new "+".\DAT\SND\"+alltrim(q_t)+".Wav","/play "+".\DAT\SND\"+alltrim(q_t)+".Wav"),0)


otros codigos:
/embedding - ???
/play - play file
/open - open file but don't play it
/new - open new file ready for recording
/close - close file

Algo similiar tengo hecho con un programa ya mas avanzado y gratuito que es el Audacity. Te permite la edición multipista. El problema que tienes con SndRec32 es que no es para realizar grabaciones largas, ya que cuando llega al final del slider se para y tienes que darle otra vez para que se ponga en marcha otro tiempo finito. Para mensajes cortos, va fenomenal.

Re: Ayuda con SndPlaySound()

PostPosted: Mon May 03, 2010 4:13 pm
by JoseGS
Hola Andres

Gracias por contestar


Casualmente ahora tengo problema con WAITRUN('SNDREC32') ya que no me funciona en W7... ademas, no habia tomado en consideracion el tiempo de grabacion, el cual es muy importante en la aplicacion que estoy desarrollando debido a que puede ser una charla larga entre un paciente y su medico... Que alternativas tengo para reemplazar WAITRUN('SNDREC32')


Gracias por tu ayuda

Saludos desde Panama

Re: Ayuda con SndPlaySound()

PostPosted: Tue May 04, 2010 8:47 am
by Andrés González
La verdad es que no me lo había planteado, pero realizando una búsqueda rápida he encontrado este que además es opensource.
http://www.fridgesoft.de/harddiskogg.php

Voy a ver que consigo con él y te digo cosas.

Re: Ayuda con SndPlaySound()

PostPosted: Tue May 04, 2010 12:21 pm
by JoseGS
Muchas gracias Andres