Delphi

Querría saber como conseguir que el componente media player de delphi se quede sonando continuamente que cuando termine se revovine automáticamente,
para darle un sonido constante a mi
Aplicación

1 respuesta

Respuesta
1
Existen varias vías para hacerlo, como por ejemplo heredar el TMediaPlayer y crear un objeto modificado, pero existe una vía fácil que es la que te voy a explicar a continuación...
Abre el Delphi y crea un nuevo proyecto...
En el Form1 pon un TMediaPlayer, un TTimer y un TButton...
Pincha en el MediaPlayer1 y en las propiedades (cuadro de la izquierda) pones lo siguiente...
AutoEnable... True
AutoOpen..... True
AutoRewind... True
FileName... (pon aquí el fichero de audio que quieres reproducir. Yo te recomiendo que pongas un fichero pequeño, como por ejemplo el sonido de inicio de Windows, o un MIDI pequeño o algo que dure pocos segundos para que de momento puedas probar su funcionamiento)...
Pincha ahora en cualquier parte del Form1 y en la pestaña Events del Object Inspector, y haz click 2 veces en OnActivate para que se abra el editor de código...
Pones el siguiente código:
tiempo:=MediaPlayer1.Length;
timer1.Enabled:=true;
MediaPlayer1.Play;
Ahora ve hacia arriba hasta donde pone:
var
Form1: TForm1;
y aquí agregamos una línea, tal que quede así...
var
Form1: TForm1;
tiempo: integer;
Ahora volvemos al Form1 y pinchamos una vez en el Button1, y pinchamos 2 veces en OnClick para que se nos vuelva a abrir la ventana de código y editar esta acción...
Aquí ponemos sólo esta línea:
timer1.Enabled:=false;
Volvemos al Form1 y pinchamos una vez en el Timer1, pinchamos en la pestaña Properties y modificamos los parámetros siguientes:
Enabled... False
Interval.. 500
Ahora pinchamos en la pestaña Events y hacemos doble click en OnTimer para que se abra la ventana de código y ponemos el siguiente código:
if tiempo=MediaPlayer1.Position then
begin
MediaPlayer1.Stop;
MediaPlayer1.Rewind;
MediaPlayer1.Play;
end;
Y ya está, puedes ejecutar el programa para que veas que cuando el sonido acaba, vuelve a empezar automáticamente.
Si durante la reproducción pulsas el Botón que hemos creado, internamente esto hará que se pare el Timer1, y por lo tanto cuando el audio acabe, ya no volverá a empezar de nuevo, o sea, que pulsando este botón desactivamos el "Auto-Play" que hemos creado.
Te explico un poco como funciona el proceso (te garantizo que funciona porque lo he hecho para ti y lo he comprobado)...
Creamos una variable global tipo integer (tiempo)...
Cuando el programa se inicia, al crearse y activarse el formulario, le dice a la variable "tiempo" el tiempo de duración del fichero de audio, activa el contador (timer) y le dice al MediaPlayer que comience a reproducir el audio...
El contador (timer) lo que hace es comprobar cada 1/2 segundo si el audio ha llegado a su final o no, si ha llegado, rebobina el audio y lo vuelve a poner en play, si no ha llegado no hace nada, lo deja que siga reproduciendo.
El botón lo que hace es desactivar el contador, de tal modo que ya no se puede detectar si el audio ha llegado a su final o no, por lo que si pulsamos el botón, el audio no vuelve a reproducirse y termina como lo haría normalmente.
Bueno danielix, esto soluciona tu problema con toda seguridad. Ya es cuestión de que te hayas enterado bien del ejemplo que te he puesto y ya con esto haces tú las corecciones necesarias para adaptarlas a tu programa, pero yo creo que ya con el ejemplo y con la explicación lo habrás comprendido bien.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas