FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Ayuda con SndPlaySound()
Posts: 205
Joined: Wed Sep 02, 2009 03:11 AM
Ayuda con SndPlaySound()
Posted: 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

Posts: 2365
Joined: Wed Nov 02, 2005 11:46 PM
Re: Ayuda con SndPlaySound()
Posted: 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 (fw): Select all Collapse
#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
Posts: 205
Joined: Wed Sep 02, 2009 03:11 AM
Re: Ayuda con SndPlaySound()
Posted: Sun May 02, 2010 02:03 AM

Gracias Daniel, voy a probarlo

Posts: 205
Joined: Wed Sep 02, 2009 03:11 AM
Re: Ayuda con SndPlaySound()
Posted: Sun May 02, 2010 02:21 AM

Hola Daniel,

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

Gracias

Posts: 2365
Joined: Wed Nov 02, 2005 11:46 PM
Re: Ayuda con SndPlaySound()
Posted: 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...

Posts: 205
Joined: Wed Sep 02, 2009 03:11 AM
Re: Ayuda con SndPlaySound()
Posted: 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.

Posts: 205
Joined: Wed Sep 02, 2009 03:11 AM
Re: Ayuda con SndPlaySound()
Posted: Sun May 02, 2010 01: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

Posts: 632
Joined: Thu Jan 19, 2006 10:45 AM
Re: Ayuda con SndPlaySound()
Posted: 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 (fw): Select all Collapse
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
Posts: 205
Joined: Wed Sep 02, 2009 03:11 AM
Re: Ayuda con SndPlaySound()
Posted: Mon May 03, 2010 04: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

Posts: 632
Joined: Thu Jan 19, 2006 10:45 AM
Re: Ayuda con SndPlaySound()
Posted: Tue May 04, 2010 08: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
Posts: 205
Joined: Wed Sep 02, 2009 03:11 AM
Re: Ayuda con SndPlaySound()
Posted: Tue May 04, 2010 12:21 PM

Muchas gracias Andres

Continue the discussion