PDA

Ver la Versión Completa : Reproducir videos seguidamente en TMediaPlayer


kolfito
16-10-2010, 19:29:25
Buenas, mi duda es la siguiente trato de hacer un reproductor de videos con un TMediaPlayer, los videos se cargan en una listbox pero necesito que al acabar un video reproduzca el siguiente en la listbox y al acabar el ultimo se pare. Lo estoy itentando con Mediaplayer.Wait = true delante del mediaplayer.play pero con esto me desactiva todos los botones y también el timer1 que llama a la progressbar, ademas de que se queda reproduciendo el ultimo video sin parar.
Pongo mejor el codigo(boton de play):

procedure TForm1.ToolButton1Click(Sender: TObject);
var
i: integer;
x: integer;
begin
i := listbox1.itemindex;
x := listbox1.Count;

if i = -1 then
begin
ListBox1.ItemIndex := 0;
end;

while listbox1.ItemIndex < x do
begin
mediaplayer1.filename := listbox1.Items[listbox1.itemindex];
mediaplayer1.Display := Panel_pantalla;
mediaplayer1.Open;
mediaplayer1.DisplayRect := Panel_pantalla.ClientRect; //rec es el rectangulo. Quiere decir que el rectangulo del display y el del panel 1 han de ser iguales.
progressbar1.Max := mediaplayer1.Length;
progressbar1.Position := 0;

mediaplayer1.Wait := true;

mediaplayer1.play;
timer1.Enabled := true;

mediaplayer1.wait := false;

mediaplayer1.Stop;
mediaplayer1.Close;

// incremento para pasar al siguiente item de la listbox
listbox1.ItemIndex := listbox1.ItemIndex + 1;
end;
end;

Alguien sabe como solucionar esto?

Gracias de antemano

urixiv
18-10-2010, 10:18:17
Hola,
solo te comentaré que donde haces el incremento del itemindex de la listbox, que cuando llegues al último elemento y lo incrementes en uno, no se incrementará el valor, nunca será superior al count de la listbox.

Igual por ahí te puede venir lo de que se repita el último todo el rato.

un saludo

kolfito
18-10-2010, 16:02:00
Hola,
Gracias por tu aportación urixiv, el caso es que ya he conseguido que me funcione quitando el mediaplayer1.wait y añadiendo otro ttimer.

Un Saludo

slatand10
01-06-2013, 01:40:22
ola buenas mira necesito hacer este mismo programa cargar los vidoes des de el listbox i reproducirlos me podrias mandar tu programa para ver lo que me falla plis t dejo mi correro spero k me lo puedas enviar gracias ;)

ecfisa
01-06-2013, 02:42:33
Hola slatand10, bienvenido a Club Delphi :)

Como a todos los que comienzan te invitamos a que leas nuestra guía de estilo (http://www.clubdelphi.com/foros/guiaestilo.php), en especial el punto (14 (http://www.clubdelphi.com/foros/guiaestilo.php#solicites)).

Saludos y gracias por tu colaboración. :)

diasaric
03-09-2013, 20:11:34
Hola,
Gracias por tu aportación urixiv, el caso es que ya he conseguido que me funcione quitando el mediaplayer1.wait y añadiendo otro ttimer.

Un Saludo

Amigo puedes pasarme el codigo para hacer que salte al siguiente video, gracias de antemano, saludos

Casimiro Notevi
03-09-2013, 21:23:28
// incremento para pasar al siguiente item de la listbox
listbox1.ItemIndex := listbox1.ItemIndex + 1;

Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo (http://www.clubdelphi.com/foros/guiaestilo.php)?, gracias por tu colaboración :)

mordaz
04-09-2013, 06:21:00
Amigo puedes pasarme el codigo para hacer que salte al siguiente video, gracias de antemano, saludos

Me sucedía lo mismo con TWindowsMediaPlayer y encontré que trabaja con sus propias listas de reproducción, al yo hacer mi lista y no introducirla directamente al componente cuando termina de reproducir un medio envía un stop y si cargas inmediatamente otra pista no lo reproduce, tuve que colocar un timer para que esperara un segundo y cargar la nueva pista.

Saludos.