Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   Parar reproducción de un video al cerrar el form (https://www.clubdelphi.com/foros/showthread.php?t=7058)

nesetru 01-02-2004 20:17:35

Parar reproducción de un video al cerrar el form
 
Hola amigos.

He creado un formulario y en su evento 'onActivate' hago que mediante un componente TMediaPlayer se reproduzca un video.

Lo que pasa es que si cierro el formulario me da un error porque aún se está reproducciendo el video. Deduzco que lo que necesito es poner en el evento 'onClose' del formulario algo para que se pare la reproducción del video y así no salga mensaje de error al cerrar el formulario.

¿Alquien me podría ayudar?

roman 01-02-2004 21:46:46

No tengo un video a la mano pero puse un mp3 y no pasó nada al cerrar el formulario estando el mp3 todavía reproduciéndose.

Sin embargo, viendo la documentación quizá te sirva poner en el evento OnClose del formulario:

MediaPlayer1.Wait := true;
MediaPlayer1.Stop;

Se supone que la primera línea hace que el método Stop no regrese hasta haberse completado de manera que en principio garantizas que el evento OnClose no terminará antes de que pare por completo el video.

// Saludos

Amilius 02-02-2004 00:58:10

Basta un ".close"

MediaPlayer1.close;

Mejor si implementas una función "detener música" para llamarlo desde un "onclose"

Pero el problema con el media player es que se traba si ocurre un error que detiene el programa mientras el media player estaba reproduciendo.

nesetru 02-02-2004 18:11:44

Al cerrar el Form da un error
 
Efectivamente, si reproducimos un *.mp3 y cerramos el form antes de que éste finalice no pasa nada, es decir, no sale un mensaje de error.

Pero si estamos reproduciendo un *.avi y cerramos el Form antes de que éste finalice la aplicación saca un mensaje de error por pantalla.

¿Sabéis a qué se debe?, ¿Cómo puedo evitarlo?


Muchas gracias.,

Descendents 02-02-2004 18:15:24

No se por que sucede, ¿pero no puedes controlarlo en el onclose del form?

nesetru 02-02-2004 18:52:45

Ya me dirás como....
 
Pues no sé cómo puedo controlarlo en el evento 'onClose', así que ya me dirás.

Descendents 02-02-2004 19:07:55

¿No existe ningun evento/propiedad para saber que el tmediapayer se esta reproduciendo?

Aunque te tengo que decir que a mi no me da el error que tu dices.Yo estoy ejecutando ahora mismo el clock.avi de windows y cierro el form a mitad del video y no me da error.

Uso delphi 7, quiza sea que tiene un bug.No se.

pero puedes poner el onclose del form

mediaplayer1.close; o
mediapalyer.wait := true,

No se la verdad que no dandome a mi el error dificil que te pueda ayudar.Porque lo que te digo al igual ya lo has intentado y tambien te da error.Aunque a mi no

Suerte Saludos

nesetru 03-02-2004 13:56:40

Sigue dándome ERROR
 
Hola....

Uso Delphi 6.

Mientras reproduzco un *.avi cierro el form y me da el siguiente error:

Project 'Reproductor.exe' faculted with message:
'Application defined exception (code 0xcoooo8)

A ver si os sirve de ayuda.....

Amilius 05-02-2004 01:22:53

Vaya vaya...

Eso empeora la mala imagen que tengo de los ".AVI" de la bugosoft(tm)(r) y todos sus mugres formatos de musica y video. Sólo ellos podrían convertir a un inocente archivo de video o música en un caballo de troya.

Siempre me bastó el:

MediaPlayer1.close;

En el "onclose" del formulario principal de la aplicación.

Bueno si no da, en el "OncloseQuery" , es decir antes de cerrar el form, preguntas si .avi sigue reproduciendose y en ese caso evitas que se cierre el form "canclose:=false"

Saludos!!

Taribus 05-02-2004 13:45:45

Hola,

yo uso delphi5 y he probado con el clock.avi de W2k y no me ha dado ningun error al cerrar el formulario cuando se estaba ejecutando.

Un saludo, :D

Amilius 12-02-2004 17:57:01

Cita:

Empezado por Taribus
Hola,

yo uso delphi5 y he probado con el clock.avi de W2k y no me ha dado ningun error al cerrar el formulario cuando se estaba ejecutando.

Un saludo, :D

Que tal si pruebas con otros videos, de más de 1Mb y que sean .avi de verdad porque algunas veces cambian de nombre a los .mpg a .avi. Un .mpg de verdad puede ser dividido en dos archivos y todavía puedes ver (reproducir) las mitades de los archivos, igual que los .mp3. Esa es la ventaja de los videos .mpg y los formatos estándar mpeg, no son como la porquería de formatos micro$oft que sólo dan dolores de cabeza y no sirven para nada.

Taribus 13-02-2004 12:21:57

Cita:

Empezado por Amilius
Que tal si pruebas con otros videos, de más de 1Mb y que sean .avi de verdad

pues bien, he cogido un fichero que viene en la demo de Delphi, es decir , speedis.avi que tien un tamaño 4.807 Kb, ( no se si sera suficiente), pero me sigue sin dar ningun error al cerrar el formulario, una vez ejecutado el fichero en el evento onactivate del formulario.

xok 06-04-2004 18:26:23

Well ... i have the same problem .. but with some harder way to solve it!

If you use Div-x 5.1 that problem with disappear, *** but *** you will have another huge one !
Anytime you open a new file (.avi) there will be a memory leak !
4 KB > or so ...
I have on programm running 24x7, so it gives a huge memory loss .. 2GB per week!

Using codecs DIV-X 3.1 alpha, it will not give memory leak but that problem appears and the program does not run properly on the MediaPlayer.Close !
or something like that ...

I can use 3.1 alpha Visual Basic flawlessly using MCI commands but in my application Visual Basic will be very hard to program (is connected to mysql dll's .. TShockwaveFlash .. components etc etc)


Ideas around the bug will be appreaciated :)

casimaxi 10-11-2004 06:50:48

mp3 en delphi
 
Como hago para reproducir mp3 en delphi 7?. necesito algun algoritmo de descompresion.Como hago para al selecionar un archivo desde un filelistbox me lo ejecute donde yo quiero (ej. un panel)?.Hay que asignarlo a la propiedad filename(a mi no me funciona)?


La franja horaria es GMT +2. Ahora son las 06:31:29.

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