Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   TMediaPlayer: Tiempo de reproducción de un MP3. (https://www.clubdelphi.com/foros/showthread.php?t=14007)

Jose_Pérez 07-09-2004 11:57:34

TMediaPlayer: Tiempo de reproducción de un MP3.
 
Hola:

¿Cómo puedo saber el tiempo de reproducción de un MP3 (mm:ss) con un TMEdiaPlayer?.

Saludos y gracias.

Descendents 07-09-2004 17:08:27

creo recordar que hay una propiedad que te da los segundos
i luego haces este procedimiento i ya.

var t,h,m,s :integer;
begin
t := 3671;
m := t div 60;
h := m div 60;
m := m mod 60;
s := t mod 60;
showmessage(inttostr(t)+' segundos se transforman en '+inttostr(h)+' horas y +inttostr(m)+' minutos y '+inttostr(s)+' segundos');


Saludos

Delphius 07-09-2004 17:10:25

Facil... de esta manera:
 
Esto se puede hacer de esta manera:

Código Delphi [-]
procedure TFPral.Establecer_Tiempos;
var Hs, Min, Seg: integer;
    LHs, LMin, LSeg: string;
begin
// la barra de proceso trabaja en segundos
Proceso.Min := 0;
Proceso.Max := Reproductor.Length Div 1000;
Proceso.Position := 0;
// calcular tiempo
Seg := Reproductor.Length Div 1000;
Hs := Seg Div 3600;
Seg := Seg - (Hs * 3600);
Min := Seg Div 60;
Seg := Seg - (Min * 60);
if Hs >= 10
   then begin
        LHs := IntToStr(Hs);
        end
   else begin
        LHs := '0'+IntToStr(Hs);
        end;
if Min >= 10
   then begin
        LMin := IntToStr(Min);
        end
   else begin
        LMin := '0'+IntToStr(Min);
        end;
if Seg >= 10
   then begin
        LSeg := IntToStr(Seg);
        end
   else begin
        LSeg := '0'+IntToStr(Seg);
        end;
LTiempo.Caption := Lhs +':'+ LMin +':'+ LSeg;
Ltema.Caption := ExtractFileName(Reproductor.FileName);
Proceso.Enabled := True;
Play.Enabled := True;
end; { Fin Establecer_Tiempos }

Para que funcione correctamente asegúrate antes de hacer dichos cálculos que la proopiedad TimeFormat tenga el valor tfMilliseconds.

Jose_Pérez 09-09-2004 09:23:58

Gracias por vuestras respuestas. Me han servido para resolver el problema.

Saludos.

Delphius 10-09-2004 05:00:23

Cuidado con el TMediaPlayer
 
Ha.. se me olvido decirte Jose_Pérez que si estas usando Delphi 5 o inferior, el componente TMediaPlayer tiene unos "pequeños" fallos. Para ello debes buscar una versión nueva.. Pero si tienes Delphi 6 o superior no te hagas drama...

Jose_Pérez 15-09-2004 10:25:30

Hasta ahora no he tenido problemas. ¿Cuales son esos fallos?.

Saludos.

Delphius 18-09-2004 07:36:11

Error en el TMediaPlayer
 
No me acuerdo muy bien, la verdad es que lo leí en un libro para principiantes en Delphi... pero creo que el error se producía cuando se le pasaba un nuevo archivo a reproducir. Lo que sucedía es que el TMediaPlayer en vez de "actualizar" el valor de ciertas propiedades, las "sumaba". Otro error que me acuerdo se encontraba en el evento Stop().
Pero como te dije, si estas usando Delphi 6 o superior no tendrás problemas. En caso contrario si.
La verdad es que yo use el TMediaPlayer en Delphi 6 y por eso nunca tuve problemas... sino no estaría escuchando música con el reproductor que me hice!

Jose_Pérez 09-11-2004 13:10:23

Mira por donde yo acabo de detectar un error. Cuando el path+nombre_de_archivo es muy largo, da problemas.

Saludos.

Delphius 10-11-2004 04:46:43

Disculpa, que versión de Delphi usas?... que tan largo tiene que ser para que se produzca el error?

Jose_Pérez 10-11-2004 09:21:06

Estoy utilizando Delphi 5.

Saludos.

mauriciofox 21-11-2004 17:28:53

creo k pudes usar extract
 
usas extract ,o mejor buscalo bien en la ayuda que te explica mejor el commando es que hace muscho no trabajo con el.

CID 20-06-2006 09:42:17

Una simplificación de tu código:

Código Delphi [-]
procedure TFPral.Establecer_Tiempos;
var Hs, Min, Seg: integer;
begin
// la barra de proceso trabaja en segundos
Proceso.Min := 0;
Proceso.Max := Reproductor.Length Div 1000;
Proceso.Position := 0;
// calcular tiempo
Seg := Reproductor.Length Div 1000;
Hs := Seg Div 3600;
Seg := Seg - (Hs * 3600);
Min := Seg Div 60;
Seg := Seg - (Min * 60);
LTiempo.Caption := Format('%.2d:%.2d:%.2d',[hs,Min,Seg]);
Ltema.Caption := ExtractFileName(Reproductor.FileName);
Proceso.Enabled := True;
Play.Enabled := True;
end; { Fin Establecer_Tiempos }

Diegolito 17-07-2006 14:36:39

No me entero
 
Hola no me entero del codigo, lo pongo y no funciona, si alguien me lo puede explicar se lo agradezco.

Delphius 18-07-2006 04:48:01

¿Que error te produce?
 
Cita:

Empezado por Diegolito
Hola no me entero del codigo, lo pongo y no funciona, si alguien me lo puede explicar se lo agradezco.

Disculpa pero, ¿te arroja algún error? Se mas específico. Al decir no funciona no podríamos decir a ciencia cierta que es lo que te está fallando. Podría explicarte el código pero para ello dinos cual copiaste: el primero o el segundo (aunque esto sería irrelevante... son prácticamente iguales).

Saludos,

Diegolito 19-07-2006 19:32:44

a funciona
 
Ya no hace falta. Esque soy nuevo en esto de la programacin en Pascal, y me faltaban poner algunas cosas, pero ya consigo que funcione.


La franja horaria es GMT +2. Ahora son las 01:17:14.

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