Ayuda con SndPlaySound()

Ayuda con SndPlaySound()

Postby JoseGS » Fri Apr 30, 2010 10:58 pm

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
JoseGS
 
Posts: 205
Joined: Wed Sep 02, 2009 3:11 am

Re: Ayuda con SndPlaySound()

Postby Daniel Garcia-Gil » Sat May 01, 2010 12:23 am

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
 
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

Re: Ayuda con SndPlaySound()

Postby JoseGS » Sun May 02, 2010 2:03 am

Gracias Daniel, voy a probarlo
JoseGS
 
Posts: 205
Joined: Wed Sep 02, 2009 3:11 am

Re: Ayuda con SndPlaySound()

Postby JoseGS » Sun May 02, 2010 2:21 am

Hola Daniel,

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

Gracias
JoseGS
 
Posts: 205
Joined: Wed Sep 02, 2009 3:11 am

Re: Ayuda con SndPlaySound()

Postby Daniel Garcia-Gil » Sun May 02, 2010 10:01 am

Jose...

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

puede que este fallando hardware o un cable desconectado, etc...
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

Re: Ayuda con SndPlaySound()

Postby JoseGS » Sun May 02, 2010 12:41 pm

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.
JoseGS
 
Posts: 205
Joined: Wed Sep 02, 2009 3:11 am

Re: Ayuda con SndPlaySound()

Postby JoseGS » Sun May 02, 2010 1:39 pm

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
JoseGS
 
Posts: 205
Joined: Wed Sep 02, 2009 3:11 am

Re: Ayuda con SndPlaySound()

Postby Andrés González » Mon May 03, 2010 10:30 am

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.
Saludos

Andrés González desde Mallorca
User avatar
Andrés González
 
Posts: 627
Joined: Thu Jan 19, 2006 10:45 am
Location: Mallorca

Re: Ayuda con SndPlaySound()

Postby JoseGS » Mon May 03, 2010 4:13 pm

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
JoseGS
 
Posts: 205
Joined: Wed Sep 02, 2009 3:11 am

Re: Ayuda con SndPlaySound()

Postby Andrés González » Tue May 04, 2010 8:47 am

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.
Saludos

Andrés González desde Mallorca
User avatar
Andrés González
 
Posts: 627
Joined: Thu Jan 19, 2006 10:45 am
Location: Mallorca

Re: Ayuda con SndPlaySound()

Postby JoseGS » Tue May 04, 2010 12:21 pm

Muchas gracias Andres
JoseGS
 
Posts: 205
Joined: Wed Sep 02, 2009 3:11 am


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 13 guests