Ayuda con SndPlaySound()

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

Ayuda con SndPlaySound()

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

Re: Ayuda con SndPlaySound()

Post by Daniel Garcia-Gil »

Hola Jose


yo lo hago de esta forma

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

Code: Select all

#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
 
our best documentation is the source code
Isla de Margarita Venezuela.
danielgarciagil@gmail.com
http://tdolphin.blogspot.com/
https://www.dropbox.com/referrals/NTI5N ... rc=global9
JoseGS
Posts: 205
Joined: Wed Sep 02, 2009 3:11 am

Re: Ayuda con SndPlaySound()

Post by JoseGS »

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

Re: Ayuda con SndPlaySound()

Post by JoseGS »

Hola Daniel,

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

Gracias
User avatar
Daniel Garcia-Gil
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita
Contact:

Re: Ayuda con SndPlaySound()

Post 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...
our best documentation is the source code
Isla de Margarita Venezuela.
danielgarciagil@gmail.com
http://tdolphin.blogspot.com/
https://www.dropbox.com/referrals/NTI5N ... rc=global9
JoseGS
Posts: 205
Joined: Wed Sep 02, 2009 3:11 am

Re: Ayuda con SndPlaySound()

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

Re: Ayuda con SndPlaySound()

Post 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
User avatar
Andrés González
Posts: 625
Joined: Thu Jan 19, 2006 10:45 am
Location: Mallorca

Re: Ayuda con SndPlaySound()

Post 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

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

Re: Ayuda con SndPlaySound()

Post 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
User avatar
Andrés González
Posts: 625
Joined: Thu Jan 19, 2006 10:45 am
Location: Mallorca

Re: Ayuda con SndPlaySound()

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

Andrés González desde Mallorca
JoseGS
Posts: 205
Joined: Wed Sep 02, 2009 3:11 am

Re: Ayuda con SndPlaySound()

Post by JoseGS »

Muchas gracias Andres
Post Reply