PDA

Ver la Versión Completa : Como abrir un video almacenado en un campo blob con tmediaplayer


thebignico
15-02-2009, 18:57:41
Hola Amigos, estoy realizando una aplicacion en la cual necesito reproducir un video q se encuentra en un campo blob de una tabla, lo q he podido ver es q se puede hacer con imagenes, pero no he visto nada para video.
Tome un codigo para jpeg y empece a modificarlo, seria algo asi

var Stream : TMemoryStream;
begin
Stream := TMemoryStream.Create;
TvideosArchivo_Video.SaveToStream(Stream);
...
end;

Ahora quisiera saber como asigno ese stream al tmediaplayer, ya q para las fotos utilizan el objeto tjpeg para pasarle el stream y despues lo abren con un Timage a ese tjpeg. Saludos.

dec
15-02-2009, 19:29:58
Hola,

Echando un vistazo rápido pareciera que no es posible hacer lo que quieres, sino que habría que guardar el archivo en disco, primero, y luego proporcionarle al "Media Player" la ruta correspondiente. Al menos no se ve ninguna propiedad que pudiera aprovecharse... la única que se ve es "FileName", que, evidentemente, se refiere a un archivo...

thebignico
15-02-2009, 22:29:12
hola david, gracias por responder. mira te cuento mas o menos q es lo q necesito para ver si se te ocurre alguna otra manera. Necesito generar una aplicacion para darle a una persona. Es un reproductor q tendra solo un archivo de video q yo elijo, para q el pueda verlo, pero no quiero q el pueda manipular el archivo, es decir q la unica manera q tenga de verlo sea con mi aplicacion. Q no tenga disponibilidad sobre el archivo de video en si. Por eso la idea era tenerlo en la base de datos. Sino otra opcion seria q quede embebido dentro del ejecutable, pero no tengo idea como hacer eso.

CrazySoft
16-02-2009, 15:26:34
Aqui tienes una descripción de la forma más fácil de incluir tus WAVs en el ejecutable de tu aplicación que de igual forma lo puedes hacer con los Videos:

-Primero, nos construiremos un fichero de recursos en donde meteremos los ficheros WAV

Para hacerlo sigue los pasos que aqui te pongo:

Creando nuestro fichero .RC
-Abre un editor de texto (Notepad, por ejemplo) y escribe algo así:



SONIDO1 WAVE TADA.WAV
SONIDO2 WAVE OTRO.WAV



-Grábalo con extensión .RC, por ejemplo, Sonidos.RC

Compilando el fichero .RC
Ahora debemos compilarlo, para crear un fichero de recursos (.RES), para lo cual, lo mejor es que pongas en el mismo directorio tanto los sonidos
como el fichero .RC que has creado.
Para compilar el fichero, usaremos el compilador que trae el propio Delphi: el BRC32 (Borland resource Compiler), que lo tendrás en el
subdirectorio /BIN dentro del directorio donde hayas instalado el Delphi.
Usaremos:



BRC32.EXE -r -v Sonidos.RC



Si todo ha ido bien, habremos generado el fichero Sonidos.RES

Incluyendo el fichero .RES en tu aplicacion
Ahora, debes incluir en tu aplicación, el fichero .RES que has creado, para lo cual, basta con que incluyas esta linea en el implementation de tu
form:



implementation

{$R *.DFM}
{$R Sonidos.RES}



Haciendo sonar esos WAVs
Llegó la hora de hacer sonar los sonidos. Nada más fácil que utilizar la función del API PlaySound.
Por ejemplo, para hacer sonar nuestro primer Wav, al que le hemos llamado 'SONIDO1' en el fichero de recursos:

Esperando a que termine el sonido:


try
PlaySound(Pchar('SONIDO1'),hinstance,SND_RESOURCE or SND_SYNC);
except
end;



Sin esperar a que termine el sonido:


try
PlaySound(Pchar('SONIDO1'),hinstance,SND_RESOURCE or SND_ASYNC);
except
end;