AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Mediaplayer: Tracklänge und Zeit HH:MM:SS
Thema durchsuchen
Ansicht
Themen-Optionen

Mediaplayer: Tracklänge und Zeit HH:MM:SS

Ein Thema von Mazel · begonnen am 10. Mai 2006 · letzter Beitrag vom 10. Mai 2006
Antwort Antwort
Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#1

Mediaplayer: Tracklänge und Zeit HH:MM:SS

  Alt 10. Mai 2006, 13:11
Hi,

ich habe ein Problem mit dem Anzeigen der Zeit eines Tracks. Ich möchte die Zeit in Stunden, Minuten und Sekunden anzeigen. Dabei habe ich schon folgendes ausprobiert, doch ich bekomme keine richtige Zeit:
Delphi-Quellcode:
  type
    HMSRec = record
     Hours: byte;
     Minutes: byte;
     Seconds: byte;
     NotUsed: byte;
   end;
 
  MP.TimeFormat:=tfMilliseconds;
  with HMSRec(MilliSeconds) do //MilliSeconds bekommt die Länge des Tracks über MP.Length
  begin
   Label1.Caption:=Format('%2.2d:%2.2d:%2.2d', [Hours, Minutes, Seconds]);
  end;
Ich habe es mit einer Midi Datei ausprobiert, die 9 Sekunden lang ist. Als Länge wird mir aber ein Integerwert von 126 angegeben. Nun ist 126 weder die Angabe der Länge in Millisekunden noch was anderes. Was mache ich falsch?

Gruß
Mazel
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Mediaplayer: Tracklänge und Zeit HH:MM:SS

  Alt 10. Mai 2006, 13:31
Hi,

das ist nur schnell hingepfuscht, müsste aber gehen:

Delphi-Quellcode:
function ms_to_time(ms: Integer): string;
var
  hour, min, sec: Integer;
begin
  hour := ms div (1000 * 60 * 60);
  if hour > 0 then
    ms := ms - (1000 * 60 * 60);
  min := ms div (1000 * 60);
  if min > 0 then
    ms := ms - (1000 * 60);
  sec := ms div 1000;

  result := format('%2.2d:%2.2d:%2.2d',[hour, min, sec]);
end;
  Mit Zitat antworten Zitat
DevilsCamp
(Gast)

n/a Beiträge
 
#3

Re: Mediaplayer: Tracklänge und Zeit HH:MM:SS

  Alt 10. Mai 2006, 14:30
ich würde sie so unsetzen:

Delphi-Quellcode:
function ms_to_String(ms Integer): String;
var
  Std, Min, Sek : Integer;
  Seks : Integer;
begin
  Seks := ms div 1000;

  Sek := Seks mod 60;
  Min := Seks div 60;
  Std := Min div 60;
  Min := Min mod 60;

  Result := Format('%.2:%.2:%.2', [Std, Min, Sek]);
end;
  Mit Zitat antworten Zitat
Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#4

Re: Mediaplayer: Tracklänge und Zeit HH:MM:SS

  Alt 10. Mai 2006, 14:34
Hi,

leider funktionieren beide Codes nicht. Nochmal zu der 9 Sekunden *.midi. Wenn sie 9 Sekunden lang ist (so sagen das die anderen Player wie MediaPlayer oder Winamp), dann müssten das doch 9000 Millisekunden sein, aber in MP.Length steht nur ein Wert von "126". Dieser Wert stimmt nicht. Ich habe aber den MediaPlayer im OnCreate Ereignis folgendes zugewiesen:
MP.TimeFormat:=tfMilliseconds; aber es geht nicht für 9 Sekunden kommt immer wieder eine Länge in Millisekunden von "126".

Gruß
Mazel
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat
DevilsCamp
(Gast)

n/a Beiträge
 
#5

Re: Mediaplayer: Tracklänge und Zeit HH:MM:SS

  Alt 10. Mai 2006, 14:39
Ich kenne mich zwar nicht direkt mit MIDIs aus, aber kann es sein, dass es in der MIDI-Datei Wiederholungen gibt, die der TMediaPlayer nicht auswertet? Und dass das Stück inkl. der Wiederholungen 9sek lang ist, ohne diese aber nur 126ms?
Ist nur 'ne Vermutung.
  Mit Zitat antworten Zitat
Benutzerbild von Aenogym
Aenogym

Registriert seit: 7. Mär 2004
Ort: Schwerin
1.089 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Mediaplayer: Tracklänge und Zeit HH:MM:SS

  Alt 10. Mai 2006, 14:40
ich glaube, dass sind die anzahl der samples (oder wie das da heißt) der MIDI datei...
Steffen Rieke
Was nicht buzzt, wird buzzend gemacht!
http://blog.base-records.de
http://www.base-records.de
  Mit Zitat antworten Zitat
Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#7

Re: Mediaplayer: Tracklänge und Zeit HH:MM:SS

  Alt 10. Mai 2006, 15:00
Hi,

ok, dann muss es aber doch eine andere Möglichkeit geben mit Hilfe des MediaPlayers die Länge eines Tracks (in dem Fall einer midi) heraus zubekommen.

Gruß
Mazel
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#8

Re: Mediaplayer: Tracklänge und Zeit HH:MM:SS

  Alt 10. Mai 2006, 18:19
Hallo Mazel,

wenn du bei TMediaPlayer "Millisekunden" als Zeitformat einstellst, erhältst du auch Millisekunden und keinen HMS-Record.
Die Umwandlung der Zeit in ein lesbares Format könntest du mit der Funktion Delphi-Referenz durchsuchenFormatDateTime durchführen:

Delphi-Quellcode:
sLength := FormatDateTime('hh:nn:ss', MediaPlayer.Length / 1000 / 86400);
sPosition := FormatDateTime('hh:nn:ss', MediaPlayer.Position / 1000 / 86400);
Gruß Hawkeye
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz