Autor Beitrag
Alex_ITA01
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 56

Win XP
D7 Prof
BeitragVerfasst: Mo 13.10.03 14:26 
hallo erstmal,
ich habe einen kleinen player geschrieben und will damit nun avi und mepg und all sowas wiedergeben.das geht ja auch nur wenn ich die länge des abgespielten tracks auslese (test := Form1.MediaPlayer1.length)
sthet angenommen 164264 in test. normal geht der Film 1h : 32min : 35sek

kann mir einer bei der umrechnung helfen

danke alex
Shark
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 87

98, XP
D3, D5, D7
BeitragVerfasst: Mo 13.10.03 14:47 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
procedure TForm1.Button1Click(Sender: TObject);

var
  TheLength: LongInt;
begin

  { Zeitformat festlegen, tfHMS wird von manchen Geräten nicht unterstützt }

  MediaPlayer1.TimeFormat := tfHMS;
  { Länge des geladenen Mediums speichern }
  TheLength := MediaPlayer1.Length;
  with HMSRec(TheLength) do { TheLength in HMSRec-Record umwandeln }
  begin
    Label1.Caption := IntToStr(Hours); { Stunden in Label1 anzeigen }
    Label2.Caption := IntToStr(Minutes); { Minuten in Label2 anzeigen }
    Label3.Caption := IntToStr(Seconds); { Sekunden in Label3 anzeigen }
  end;
end;

Direkt aus der Delphi-Hilfe 8)

Moderiert von user profile iconTino: Code- durch Delphi-Tags ersetzt.
Alex_ITA01 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 56

Win XP
D7 Prof
BeitragVerfasst: Di 14.10.03 12:05 
Titel: danke shark
danke aber leider ist das nur das beispiel aus der Hilfe von Delphi.
Das geht aber bei mir nicht den er geht gar nicht erst in die

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
with HMSRec(TheLength) do { TheLength in HMSRec-Record umwandeln } 
  begin 
    Label1.Caption := IntToStr(Hours); { Stunden in Label1 anzeigen } 
    Label2.Caption := IntToStr(Minutes); { Minuten in Label2 anzeigen } 
    Label3.Caption := IntToStr(Seconds); { Sekunden in Label3 anzeigen } 
end;

rein

voran könnte das liegen?

Moderiert von user profile iconTino: Delphi-Tags hinzugefügt.
Shark
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 87

98, XP
D3, D5, D7
BeitragVerfasst: Di 14.10.03 12:11 
{ Zeitformat festlegen, tfHMS wird von manchen Geräten nicht unterstützt }
Alex_ITA01 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 56

Win XP
D7 Prof
BeitragVerfasst: Di 14.10.03 12:14 
Titel: ja genau
ja genau das ist ja mein problem, das macht meiner auch nicht aber es muss doch trotzdem ne möglichkeit geben die zahl umzuwandeln
mimi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: Mi 15.10.03 18:59 
von hand umrechen. du hast ja die Position und aus der kann du jetzt die zeit einfach per hand umrechen und fertig *G*

_________________
MFG
Michael Springwald, "kann kein englisch...."
Alex_ITA01 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 56

Win XP
D7 Prof
BeitragVerfasst: Do 16.10.03 11:41 
Titel: danke
danke für den äußerst guten Tip "von hand umrechnen"
und wie denn ich habe meine source schon probiert und die gehen nicht
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8535
Erhaltene Danke: 473

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Do 16.10.03 12:20 
und wieder mal was Quellcode aus meinem mp3-progg für dich :roll: :
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
tmpdauer:=lieddauer_in_sekunden;
std:=trunc(tmpdauer/60/60);
tmpdauer:=tmpdauer-(60*60*std); 
min:=trunc(tmpdauer/60);
tmpdauer:=tmpdauer-(60*min);
sek:=tmpdauer;

Das ist nicht die allereleganteste Lösung, aber sie ist hoffentlich leicht verständlich.

Edit: Diese Umrechnung ist richtig, wenn ich mich nicht SEHR täusche. Die 164262 werden zwar nicht in 1:32:35 umgerechnet, aber vielleicht ist ja der Ausgangswert falsch...?
Bedenke: Es gibt viele AVIs, die auch der Windows-Mediaplayer falsch erkennt, und statt dem Film irgendeinen komischen Audioquatsch mit einer Fantasielänge wiedergibt (zumindest bei mir)...Und das wird die Mediaplayerkomponente dann nicht anders machen!

_________________
We are, we were and will not be.


Zuletzt bearbeitet von Gausi am Do 16.10.03 12:25, insgesamt 1-mal bearbeitet
Alex_ITA01 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 56

Win XP
D7 Prof
BeitragVerfasst: Do 16.10.03 12:23 
Titel: danke
danke
nur wenn ich die Length auslese dann bekomme ich ja millisekunden
und angenommen die datei geht nur 13sek dann bekomme ich bei length
279ms
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8535
Erhaltene Danke: 473

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Do 16.10.03 12:27 
naja, dann mach eben vorher
ausblenden Delphi-Quelltext
1:
lieddauer_in_sekunden:=trunc(lieddauer_in_ms / 1000);					


Zitat:
angenommen die datei geht nur 13sek dann bekomme ich bei length 279ms

Was sagt uns das? Entweder sind die Dateien kaputt oder die Funktion .length...

_________________
We are, we were and will not be.


Zuletzt bearbeitet von Gausi am Do 16.10.03 12:31, insgesamt 1-mal bearbeitet
Alex_ITA01 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 56

Win XP
D7 Prof
BeitragVerfasst: Do 16.10.03 12:31 
Titel: jup
source:

lieddauer_in_sekunden:=trunc(Form1.MediaPlayer1.Length / 1000);
tmpdauer:=lieddauer_in_sekunden;
std:=trunc(tmpdauer/60/60);
tmpdauer:=tmpdauer-(60*60*std);
min:=trunc(tmpdauer/60);
tmpdauer:=tmpdauer-(60*min);
sek:=tmpdauer;


alles integer
length is 99064 und dann kommt 0 stunden und sowas raus
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8535
Erhaltene Danke: 473

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Do 16.10.03 12:34 
hmm..chat hier jetzt...99064 ms = 99,064 sekunden sind ungefähr 1,5 Minuten. Wäre ziemlich blöd, wenn die Umrechnung da mehrere Stunden ergibt, oder nicht?

_________________
We are, we were and will not be.
Alex_ITA01 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 56

Win XP
D7 Prof
BeitragVerfasst: Do 16.10.03 12:34 
Titel: fehler
irgendwie tut der compiler auch die letzten beiden zeilen

tmpdauer := tmpdauer - (60 * min);
sek := tmpdauer;


gar nicht mitcompilieren
diese blauen punkte davor fehlen und er springt im debugger auch drüber
Alex_ITA01 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 56

Win XP
D7 Prof
BeitragVerfasst: Do 16.10.03 12:36 
Titel: fehler
dann leigt der fehler aber an dem length den der film geht über 1 stunde
Alex_ITA01 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 56

Win XP
D7 Prof
BeitragVerfasst: Do 16.10.03 12:47 
Titel: bitte
mir muss bitte einer helfen
die umrechnung bei mp3 haut ja hin:

zeit := (Form1.MediaPlayer1.Position) div 1000;
minuten := zeit div 60;
sekunden := zeit mod 60;

die umrechnung bei mpg,avi oder sonst was net:

sekunden:=trunc(Form1.MediaPlayer1.Length / 1000);
tmpdauer := sekunden;
std := trunc(tmpdauer / 60 / 60);
tmpdauer := tmpdauer - (60 * 60 * std);
min := trunc(tmpdauer / 60);
tmpdauer := tmpdauer - (60 * min);
sek := tmpdauer;


bitte kann mir einer helfen???
ich vermute length gibt mir mist zurück
z.B. eine Datei die 13sek geht zeigt length 279 an
oder eine Datei die über eine Stunde geht zeigt length 99064 an
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8535
Erhaltene Danke: 473

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Do 16.10.03 12:57 
du gibst dir die Antwort doch selbst: die Funktion length gibt wahrscheinlich Müll zurück. Werden denn die Dateien vernünftig abgespielt? D.h. siehst du den Film und hörst den passenden Sound dazu?

_________________
We are, we were and will not be.
Alex_ITA01 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 56

Win XP
D7 Prof
BeitragVerfasst: Do 16.10.03 12:58 
Titel: ja
sound und film passen alles einmandfrei
wie kann ich sonst noch die länge auslesen???