Fecha actual Mar Jul 01, 2025 3:43 pm

Todos los horarios son UTC + 1 hora [ DST ]




Nuevo tema Responder al tema  [ 13 mensajes ] 
Autor Mensaje
 Asunto: Función Tone()
NotaPublicado: Sab Nov 25, 2006 4:04 pm 

Registrado: Dom Feb 12, 2006 3:28 pm
Mensajes: 54
Hola a todos, estoy desarrollando un programa que requiere sonidos y no puedo emular la función tone() de clipper. Tampoco he podido compilar un acceso al API con la función playsound(), y mi último intento ha sido hacer el programa y las funciones de sonido en mi querido clipper, pero al llamarlo con winexec() el programa funciona pero no suena. Si lo ejecuto desde la línea de comandos funciona perfectamente. ¿Alguna sugerencia?

Un saludo.


Arriba
 Perfil  
Responder citando  
 Asunto:
NotaPublicado: Sab Nov 25, 2006 11:55 pm 
Avatar de Usuario

Registrado: Vie Oct 07, 2005 8:26 pm
Mensajes: 115
Ubicación: Valencia - España
Hola eb4bgr, aquí te dejo el obj que andas buscando para reproducir ficheros wav. PlaySound.

Uso
PlaySound( "fichero.wav")

Este es el fichero en C que genera el obj.

CLIPPER PLAYSOUND( void )
{
_retl( PlaySound( _parc( 1 ), ( HMODULE ) _parnl( 2 ), _parnl( 3 ) ) );
}


Un saludo.
Víctor


Adjuntos:
PlaySound.obj [6.38 KiB]
493 veces
Arriba
 Perfil  
Responder citando  
 Asunto: PlaySound
NotaPublicado: Dom Nov 26, 2006 5:26 am 

Registrado: Dom Feb 12, 2006 3:28 pm
Mensajes: 54
Muchas gracias Victor, lo probaré a ver si me soluciona el tema.

Pero he sido yo quien no se ha explicado bien. Para el tema de la función Tone() necesitaría emularla en C3 de la misma forma que funciona en Clipper (frecuencia del sonido + duración). El mismo código fuente que tú me has enviado ya me lo envió otra persona y lo pude compilar. El problema fué al intentar meterlo dentro de la aplicación. Creé una librería con el .Obj (BCPP 5.5.1) y la incluí dentro del proyecto en C3. Me daba error al compilarlo diciendo que faltaba la librería UUID.LIB, que también había incluído dentro del proyecto en C3. Veré a ver qué pasa con el .Obj que me has enviado.

El segundo problema que tengo con PlaySound() es que cuando reproduce un archivo (probando el programa compilado que me habían pasado como ejemplo), abre el reproductor de windows media y no lo cierra cuando finaliza la reproducción del archivo.

Si se me está pasando algo por alto no dudes en decírmelo.

También hay que contar con otro pequeño detalle: aunque he desarrollado algunos proyectos en CPP, nunca he conseguido enlazar en un mismo programa Clipper+C o C3+C. En ese tema estoy bastante verde todavía.

Cuento también con Delphi 2.0 y xBasic 6.2.3, pero tampoco sé como desarrollar en él la función Tone(). Hay determinadas llamadas a funciones que no entiendo la forma de explicarlas en la ayuda de Delphi. Y supongo entenderás que con xBasic no me vale la pena desarrollar un programa que ocupe un mínimo de 2 MBytes sólamente para reproducir sonidos.

Muchas gracias por tu ayuda.


Arriba
 Perfil  
Responder citando  
NotaPublicado: Dom Nov 26, 2006 12:02 pm 
Avatar de Usuario

Registrado: Dom Oct 09, 2005 11:26 am
Mensajes: 362
Ubicación: Salamanca - España
eb4bgr escribió:
Hola a todos, estoy desarrollando un programa que requiere sonidos y no puedo emular la función tone() de clipper. Tampoco he podido compilar un acceso al API con la función playsound(), y mi último intento ha sido hacer el programa y las funciones de sonido en mi querido clipper, pero al llamarlo con winexec() el programa funciona pero no suena. Si lo ejecuto desde la línea de comandos funciona perfectamente. ¿Alguna sugerencia?

Un saludo.


Hola, eb4bgr (jo... con el nombrecito ;))

Mira hace algun tiempo dejé este pequeño trabajo:

http://www.c3compiler.com/Es/Foros/viewtopic.php?t=195

Aqui se te explica bien el uso del PlaySound, yo lo uso con C3 incrustando los WAV como recursos y me va 'de cine' y NO ME ABRE NINGUNA aplicacion para reproducir sonidos....

Con respecto al sound, creo (creo) que es mas complicado... yo solo encontre el MessageBeep..., pero no se si te srviria....

_________________
Un saludo.
Jesús P. Melgar Velasco


Arriba
 Perfil  
Responder citando  
 Asunto:
NotaPublicado: Dom Nov 26, 2006 3:42 pm 

Registrado: Dom Feb 12, 2006 3:28 pm
Mensajes: 54
Jesús y Victor,

voy a tener que pediros que me enviéis el ejemplo completo para incluír la función, por no decir la librería playsound.lib compilada. Necesito saber con qué parámetros compiláis el .Obj y todos los archivos que intervienen en el proceso de creación del .Obj

No me funciona; en ambos casos el error es el mismo que a mí me daba. También he probado a sustituír rc32.exe y no me deja compilar (compilo desde el ide). En referencia a messagebeep(), si funciona con frecuencia + duración me sería muy útil.

Un saludo.


Arriba
 Perfil  
Responder citando  
NotaPublicado: Lun Nov 27, 2006 9:16 pm 
Avatar de Usuario

Registrado: Mar Oct 11, 2005 6:58 pm
Mensajes: 138
Ubicación: España
[quote="eb4bgr"]Hola a todos, estoy desarrollando un programa que requiere sonidos y no puedo emular la función tone() de clipper. Tampoco he podido compilar un acceso al API con la función playsound(), y mi último intento ha sido hacer el programa y las funciones de sonido en mi querido clipper, pero al llamarlo con winexec() el programa funciona pero no suena. Si lo ejecuto desde la línea de comandos funciona perfectamente. ¿Alguna sugerencia?

Un saludo.[/quote]

Hola eb4bgr;
Si repasas el ejemplo titulado "Merlin" veras que cada vez que se tiene que insertar un sonido se hace uso de la funcion Play("sonido x") que pertenece a los sonidos predeterminados de Windows.
Pues bien haces un Bucle de tiempo para darle el tiempo que necesites e introduces dentro del bucle dicha funcion y creo que tendras el problema resuelto.
Espero que te te sea de utilidad la idea.

Fraguibo


Arriba
 Perfil  
Responder citando  
 Asunto: Merlín
NotaPublicado: Lun Nov 27, 2006 9:55 pm 

Registrado: Dom Feb 12, 2006 3:28 pm
Mensajes: 54
Gracias Fraguibo, ese es el primer ejemplo que había mirado pero no me sirve.

Un saludo.


Arriba
 Perfil  
Responder citando  
NotaPublicado: Mar Nov 28, 2006 1:32 am 
Avatar de Usuario

Registrado: Dom Oct 09, 2005 11:26 am
Mensajes: 362
Ubicación: Salamanca - España
Fraguibo escribió:
eb4bgr escribió:
Hola a todos, estoy desarrollando un programa que requiere sonidos y no puedo emular la función tone() de clipper. Tampoco he podido compilar un acceso al API con la función playsound(), y mi último intento ha sido hacer el programa y las funciones de sonido en mi querido clipper, pero al llamarlo con winexec() el programa funciona pero no suena. Si lo ejecuto desde la línea de comandos funciona perfectamente. ¿Alguna sugerencia?

Un saludo.


Hola eb4bgr;
Si repasas el ejemplo titulado "Merlin" veras que cada vez que se tiene que insertar un sonido se hace uso de la funcion Play("sonido x") que pertenece a los sonidos predeterminados de Windows.
Pues bien haces un Bucle de tiempo para darle el tiempo que necesites e introduces dentro del bucle dicha funcion y creo que tendras el problema resuelto.
Espero que te te sea de utilidad la idea.

Fraguibo


A ver, aqui os dejo la fuente y obj, de PlaySound..., si leeis el hilo vereis su uso, y si no me lo decis y os aclaro...., bueno a mi me funciona 100%, ya que los mensajes de error, avisos, inicio... cerrado.... bueno que el programa con el que estoy trabajando SUENA muy bien......, todo desde recursos....


Adjuntos:
Escritorio.rar [686 Bytes]
444 veces

_________________
Un saludo.
Jesús P. Melgar Velasco
Arriba
 Perfil  
Responder citando  
 Asunto: APIPlaySound.C
NotaPublicado: Mar Nov 28, 2006 2:16 am 

Registrado: Dom Feb 12, 2006 3:28 pm
Mensajes: 54
Jesús, no sé si soy yo, o cuál es el error que impide que me funcione. Si me dices que a tí te funciona, te rogaría que me enviaras la línea de comando que utilizas para compilarlo y todos los archivos que intervienen en el proceso (incluídos .Obj adicionales). El archivo .Obj que me envías es exactamente el mismo (comparación binaria) que obtengo yo al compilar con tu código fuente. En la compilación me dice que falta el módulo "_main" referido en el archivo c0x32.obj, que deduzco se genera al compilar el proyecto en C3. Pero en la compilación desde C3-IDE me dice que falta el archivo uuid.lib, aunque lo incluya dentro del proyecto. Trabajo con C3 v2 + BCCP 5.5.1, y no he modificado definiciones en los archivos include. No entiendo qué es lo que hago mal.

Muchas gracias por tu ayuda.


Arriba
 Perfil  
Responder citando  
 Asunto: Función Tone()
NotaPublicado: Mié Nov 29, 2006 11:00 am 
Avatar de Usuario

Registrado: Mar Oct 11, 2005 6:58 pm
Mensajes: 138
Ubicación: España
Jesus:
Creo que nosotros hemos interpretado mal, lo que eb4bgr esta buscando y le hemos proporcionado reproductores de sonido ya grabado.

Pero analizando bien su petición, lo que en realidad esta buscando, es una función reproductora de "Frecuencias" a coplada a un contador de tiempo, que es lo que hace en realidad la función "Tone()" de Clipper, ya que con esta función se puede crear cualquier tipo de sonido que podamos imaginar, para ello solo tenemos que decirle el numero de frecuencia a crear y el tiempo que debe de estar creandola.

Un Saludo:
Fraguibo


Arriba
 Perfil  
Responder citando  
 Asunto:
NotaPublicado: Mié Nov 29, 2006 5:57 pm 
Avatar de Usuario

Registrado: Jue Nov 03, 2005 4:29 pm
Mensajes: 33
Ubicación: Gijón (Asturias)
basandose en la function tone de harbour , se puede crear la function en C .... .
Esta function esta en gtgui.prg ...
no se si os vale ...


Arriba
 Perfil  
Responder citando  
 Asunto:
NotaPublicado: Mié Nov 29, 2006 6:43 pm 
Site Admin
Avatar de Usuario

Registrado: Jue Oct 06, 2005 10:49 pm
Mensajes: 655
Ubicación: España - Salamanca
Hola,

eb4bgr tiene desde esta mañana un prototipo de la función, si funciona bien la incluiré en la próxima actualización.

_________________
Un saludo,
Bruno Cantero
www.c3compiler.com


Arriba
 Perfil  
Responder citando  
NotaPublicado: Mié Nov 29, 2006 10:51 pm 

Registrado: Dom Feb 12, 2006 3:28 pm
Mensajes: 54
Muchas gracias a todos. La función Tone() que me ha enviado bruno, a menos que fallen mis oídos, funciona muy bien.

En respuesta a vuestros mensajes, también buscaba reproducir archivos de audio y vídeo, pero cerrando el reproductor al terminar. Para mí sigue quedando pendiente resolver mis problemas con BCPP 5.5.1 pero ya tengo resuelto el problema básico de mi proyecto actual.

Un saludo,
Alejandro.



p.d.: eb4bgr = Licencia de operador de radio de clase B.


Arriba
 Perfil  
Responder citando  
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 13 mensajes ] 

Todos los horarios son UTC + 1 hora [ DST ]


No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro
No puede enviar adjuntos en este Foro

Buscar:
Saltar a:  
cron