Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Almacenar Sonidos en la Base de Datos (https://www.clubdelphi.com/foros/showthread.php?t=62011)

Carmelo Cash 01-12-2008 13:29:12

Almacenar Sonidos en la Base de Datos
 
Hola Foro:

Tengo desarrollada una aplicación tipo "Alarma", que permite al operador seleccionar el archivo de sonido para cada alarma.

Una vez seleccionada guardo la ruta y nombre de archivo en la base de datos y luego para que se escuche hago:

Código Delphi [-]
   sndPlaySound('C:\Sonidos\Misonido.wav', SND_SYNC);
El problema es que si se ejecuta en otra terminal y ese archivo de sonido no está o está en otra carpeta, esto no funciona.

me gustaría guardar el archivo de sonido en un campo Blob, pero la verdad es que no tengo idea de como guardarlo y menos aún de como reproducirlo.

Agradecería si alguien tiene experiencia es este tema y me puede orientar.
Estoy utilizando Delphi 7 e InterBase:


Desde ya gracias por su atención.

cHackAll 01-12-2008 15:31:22

Si la necesidad de almacenar los archivos de sonido en una BD está relacionados con el tema de portabilidad me parece una idea aceptable siempre y cuando el usuario tenga la posibilidad de añadir sonidos a voluntad. Así y todo si el usuario escoje archivos mp3 y los agrega a la "biblioteca" ésto ya no sera muy portable por la dimension de la BD.

Si los sonidos los has coleccionado tu para el caso y son predeterminados para tu programa, te aconsejo los incluyas en el ejecutable usando "archivos de recursos".

Si persistes con la idea original busca "TBlobStream" y revisa éste hilo.

Saludos

JosepGA 02-12-2008 11:34:15

yo lo soluciono guardando la ruta de una carpeta compartida en la red.

rastafarey 03-12-2008 14:24:03

Resp
 
Si usan base de datos guarden los los datos en la base de datos. Traten de evitar eso de estas mapeando carpetas y unidades de red con la abse de datos las cosas le va a ir mejor.

Lo ideal sera que cada aplicacion reorduzca los sonidos desde donde se este llamando.

Supongamos que la base de datos este en un servidor remoto. Seria algo complicado accedr ala maquina que contiene el sonido. Habria qu ehcer una vpn o olgo por el estilo. Sin enbargo si lo tienes es la base de detos seria otra cosa.

Se podria hacer de dos maneras
1. Seleccionado desd el bd y ejecutarlo si guardarlo en disco pero es mala opcion ya que cada vez que se valla a ejecutar tiene que ir a la abse de datos.

2. verificar si ele archivo existe en el equipo con un archivo de configuracion. Si no existe traerlo de la bd y guarlo en disco actualizar el archivo de configuacion con el nombre del archivo si no e sun nombre fijo y luego ejecutarlo desde el disco. Con esto solo irias ala bd caundo el archivo no exista en disco.

otra manera seria si los archivos son fijos incuirlo en la aplicacion como un archivo de recurso. Y lla que esto haria el .exe mas grando. Se comprimiria con upx o algo por estilo.


La franja horaria es GMT +2. Ahora son las 02:42:11.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi