Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   como hacer que un tmediaplayer se reproduzca sin parar (https://www.clubdelphi.com/foros/showthread.php?t=10307)

Jan_polero 15-05-2004 10:37:26

como hacer que un tmediaplayer se reproduzca sin parar
 
Hola, me gustaria saber cómo hacer que un tmediaplayer reproduzca la misma cancion una y otra vez.He buscado en las propiedades pero no he encontrado nada.

santana 15-05-2004 13:08:26

Algunas propiedades de Tmediaplayer

AutoEnabled por defecto en True, todos los botones están habilitados, si queremos deshabilitar alguno esta propiedad ha de pasarse a False y con la Propiedad/EnabledButtons, seleccionar que botón queremos deshabilitar.

AutoOpen: en True abre automáticamente el archivo indicado, en False tendríamos que hacerlo por medio de un evento. Por ej: MediaPlayer1.AutoOpen := True;

AutoRewind: Ya está claro, en True se autorebobina cuando acaba la reproducción.

ColoredButtons: si abres esta ventana verás que están todos en True, si lo pasas a False quedan coloreados en escala de grises.

DeviceType (Tipo de dispositivo): por defecto en dtAutoSelect, pero podemos asignarle un solo tipo de dispositivo a controlar.

EnabledButtons: habilita y deshabilita botones (con AutoEnabled en False), deshabilitar (Disabled)quiere decir que estos son visibles en color grisáceo y no responden a ningún clic de ratón.

VisibleButtons: True botón visible, False botón invisible.

Espero que te sirva.
Saludos.

pnsd_89 09-10-2007 22:38:33

Cita:

Empezado por santana (Mensaje 44383)
Algunas propiedades de Tmediaplayer

AutoEnabled por defecto en True, todos los botones están habilitados, si queremos deshabilitar alguno esta propiedad ha de pasarse a False y con la Propiedad/EnabledButtons, seleccionar que botón queremos deshabilitar.

AutoOpen: en True abre automáticamente el archivo indicado, en False tendríamos que hacerlo por medio de un evento. Por ej: MediaPlayer1.AutoOpen := True;

AutoRewind: Ya está claro, en True se autorebobina cuando acaba la reproducción.

ColoredButtons: si abres esta ventana verás que están todos en True, si lo pasas a False quedan coloreados en escala de grises.

DeviceType (Tipo de dispositivo): por defecto en dtAutoSelect, pero podemos asignarle un solo tipo de dispositivo a controlar.

EnabledButtons: habilita y deshabilita botones (con AutoEnabled en False), deshabilitar (Disabled)quiere decir que estos son visibles en color grisáceo y no responden a ningún clic de ratón.

VisibleButtons: True botón visible, False botón invisible.

Espero que te sirva.
Saludos.


HOLA COMO ESTAS YO NESECITO REALIZAR ESO MISMO, OSEA REPRODUCIR EN ESTE CASO UN MPG SIN QUE ESTE PARE NUNCA DE REPRODUCIR.
DESDE UN PRINCIPIO MI AutoRewind: ESTUVO EN TRUE HACI QUE YA NO SE COMO PUDO HACER ESTO.
AYUDAA!!!

jhonny 09-10-2007 23:26:17

Bueno, primero que todo lee la guia de estilo, el hecho de que escribas en mayusculas significa que nos estas gritando y ademas es muy molesto de leer, por otro lado una posible solución a tu problema:

Colocale al media player la propiedad Notify en True, asi por ejemplo:

Código Delphi [-]
   MediaPlayer1.Notify := True;

Y en el evento OnNotify del TMediaPlayer le colocas lo siguiente:

Código Delphi [-]
procedure TForm1.MediaPlayer2Notify(Sender: TObject);
begin
  TMediaPlayer(Sender).Play;
end;

Espero te sirva y que leas la guia de estilo http://www.clubdelphi.com/foros/guiaestilo.php :)

Nota: De todas formas eso no es muy eficiente y en la misma ayuda recomiendan no activar ese evento, pero no encuentro otra forma de hacerlo.

pnsd_89 09-10-2007 23:30:28

perdon jhonny por mi falta de respeto y gracias por tu respuesta :o estaba escribiendo rapido y no me importo que el blocmayus estaba activo no lo vuelvo hacer

jhonny 09-10-2007 23:33:04

Cita:

Empezado por pnsd_89 (Mensaje 237289)
perdon jhonny por mi falta de respeto y gracias por tu respuesta :o estaba escribiendo rapido y no me importo que el blocmayus estaba activo no lo vuelvo hacer

Que bien :), ¿Te sirvio lo que te dije?

pnsd_89 09-10-2007 23:36:29

Cita:

Empezado por jhonny (Mensaje 237290)
Que bien :), ¿Te sirvio lo que te dije?

lo estoy provando pero no me gusta la idea de usar 2 TMediaPlayer, no hay una forma de hacer esto solo con el componente MediaPlayer que tengo ?
por que esto me llego a resultar con un TTimer pero luego me causo problemas

jhonny 09-10-2007 23:40:31

Cita:

Empezado por pnsd_89 (Mensaje 237292)
lo estoy provando pero no me gusta la idea de usar 2 TMediaPlayer, no hay una forma de hacer esto solo con el componente MediaPlayer que tengo ?
por que esto me llego a resultar con un TTimer pero luego me causo problemas

Solo es un media player, es que tal vez te he confundido porque en el codigo del evento coloque MediaPlayer2 por error cuando enrealidad era MediaPlayer1, asi:

Código Delphi [-]
procedure TForm1.MediaPlayer1Notify(Sender: TObject);
begin
  TMediaPlayer(Sender).Play;
end;

pnsd_89 09-10-2007 23:50:07

Cita:

Empezado por jhonny (Mensaje 237294)
Solo es un media player, es que tal vez te he confundido porque en el codigo del evento coloque MediaPlayer2 por error cuando enrealidad era MediaPlayer1, asi:

Código Delphi [-]procedure TForm1.MediaPlayer1Notify(Sender: TObject);
begin TMediaPlayer(Sender).Play; end;

gracias jhonny sos un genio por pero tengo un problema se vuelve mucho mas lento en su reproduccion el video.
esto puede ser porque puse el MediaPlayer.Notyfy := true en el onCreate
aahh. me olvide de mencionar tengo un timer en el formulario con un intervalo de 5000

jhonny 09-10-2007 23:52:28

Si, la verdad es que se pone un poco lento, pero quizá el timer que dices tiene algo de culpa en ello, ¿Para que colocaste ese timer?

pnsd_89 10-10-2007 00:00:09

Cita:

Empezado por jhonny (Mensaje 237299)
Si, la verdad es que se pone un poco lento, pero quizá el timer que dices tiene algo de culpa en ello, ¿Para que colocaste ese timer?

Coloco el timer para que realice cada 5 segundos consultas a la bd y traigan los datos que se imprimen en pantalla. El video solo estaria en la pantalla como un spot publicitario.

jhonny 10-10-2007 00:04:28

Cita:

Empezado por pnsd_89 (Mensaje 237301)
COlo que el timer para que realice cada 5 segundos consultas a la bd y traigan los datos que se imprimen en pantalla. El video solo estaria en la pantalla como un spot publicitario.

Ok, entonces prueba con lo siguiente...

Acabo de descubrir algo mas, para que el "play" no se "dispare" a cada momento y no se bloquee la aplicación en algunas ocaciones (A lo mejor esto tambien arregle el problema), puedes verificar el tipo de notificiación, mejorando el codigo del evento OnNotify asi:

Código Delphi [-]
  if MediaPlayer1.NotifyValue = nvSuccessful then
  begin
    TMediaPlayer(Sender).Play;
  end;

De lo contrario, quiza el problema es porque la consulta se demora un poco e interfiere con el funcionamiento normal del TMediaPlayer, podrias plantearte la idea de usar TThereads.

pnsd_89 10-10-2007 00:14:16

Jhonny EL GRAN GURU !!!(esto si fue un girto jaja)
 
Cita:

Empezado por jhonny (Mensaje 237302)
Ok, entonces prueba con lo siguiente...

Acabo de descubrir algo mas, para que el "play" no se "dispare" a cada momento y no se bloquee la aplicación en algunas ocaciones (A lo mejor esto tambien arregle el problema), puedes verificar el tipo de notificiación, mejorando el codigo del evento OnNotify asi:

Código Delphi [-] if MediaPlayer1.NotifyValue = nvSuccessful then begin TMediaPlayer(Sender).Play; end;


De lo contrario, quiza el problema es porque la consulta se demora un poco e interfiere con el funcionamiento normal del TMediaPlayer, podrias plantearte la idea de usar TThereads.

no hace falta lo demas, funciono de lujo como dice el titulo jhonny el gran guru.
una ultima pregunta que es lo que condiciono el poner el if este:if

Código Delphi [-]
if MediaPlayer1.NotifyValue = nvSuccessful then

jhonny 10-10-2007 00:20:41

Cita:

Empezado por pnsd_89 (Mensaje 237305)
no hace falta lo demas, funciono de lujo como dice el titulo jhonny el gran guru.
una ultima pregunta que es lo que condiciono el poner el if este:if

Código Delphi [-]
if MediaPlayer1.NotifyValue = nvSuccessful then

Que bueno que a funcionado :).

Pero no entiendo la pregunta :( :D.

pnsd_89 10-10-2007 00:26:34

Cita:

Empezado por jhonny (Mensaje 237307)
Que bueno que a funcionado :).

Pero no entiendo la pregunta :( :D.

ok la preguntas son ?
puesto que por primera vez utilizo el onNotefy,
Para que sirve este evento o cuando ocurre este evento?
y cuando condicionas con el
Código Delphi [-]
if MediaPlayer1.NotifyValue = nvSuccessful then
que es lo que condiciona, no entiendo para que sirve el nvSuccessful
y el NOtifyValue.
gracias por todo gran guru Jhonny!!!:)

jhonny 10-10-2007 00:40:56

Bueno, creo que el mejor para responder esas dudas es la misma ayuda de Delphi, busca el topico llamado TMediaPlayer.Notify, sin embargo te explicare a grandes razgos... cuando le decimos a la propiedad Notify del TMediaPlayer que sea True, quiere decir que queremos que se dispare el evento OnNotify siempre que el componente TMediaPlayer sufra un Back, Close, Eject, Next, Open, Pause, PauseOnly, Play, Previous, StartRecording, Resume, Rewind, Step, o un Stop, como solo queremos evaluar el momento en que termina de reproducir la pelicula, pues entonces evaluamos la propiedad de solo lectura llamada NotifyValue que tiene uno de los siguientes 4 valores:

nvSuccessful : Cuando ejecuta satisfactoriamente un comando, en este caso el play.

nvSuperseded : Cuando el comando es reemplazado por otro.

nvAborted : Cuando el comando es cancelado.

nvFailure : Cuando el comando a fallado.

La explicación que te he dado, practicamente es la traduccion de la ayuda misma :), allí encontraras información mucho mas detallada.

Es que eso de Guru me quedo grande y me he visto en la casi obligación de traducir lo que leí :D.


La franja horaria es GMT +2. Ahora son las 07:33:51.

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