Autor |
Beitrag |
Alex_ITA01
      
Beiträge: 56
Win XP
D7 Prof
|
Verfasst: 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
      
Beiträge: 87
98, XP
D3, D5, D7
|
Verfasst: Mo 13.10.03 14:47
|
|
Alex_ITA01 
      
Beiträge: 56
Win XP
D7 Prof
|
Verfasst: 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
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| with HMSRec(TheLength) do begin Label1.Caption := IntToStr(Hours); Label2.Caption := IntToStr(Minutes); Label3.Caption := IntToStr(Seconds); end; |
rein
voran könnte das liegen?
Moderiert von Tino: Delphi-Tags hinzugefügt.
|
|
Shark
      
Beiträge: 87
98, XP
D3, D5, D7
|
Verfasst: Di 14.10.03 12:11
{ Zeitformat festlegen, tfHMS wird von manchen Geräten nicht unterstützt }
|
|
Alex_ITA01 
      
Beiträge: 56
Win XP
D7 Prof
|
Verfasst: 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
      
Beiträge: 3458
Ubuntu, Win XP
Lazarus
|
Verfasst: 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 
      
Beiträge: 56
Win XP
D7 Prof
|
Verfasst: 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
      
Beiträge: 8548
Erhaltene Danke: 477
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Do 16.10.03 12:20
und wieder mal was Quellcode aus meinem mp3-progg für dich  :
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 
      
Beiträge: 56
Win XP
D7 Prof
|
Verfasst: 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
      
Beiträge: 8548
Erhaltene Danke: 477
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Do 16.10.03 12:27
naja, dann mach eben vorher
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 
      
Beiträge: 56
Win XP
D7 Prof
|
Verfasst: 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
      
Beiträge: 8548
Erhaltene Danke: 477
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: 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 
      
Beiträge: 56
Win XP
D7 Prof
|
Verfasst: 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 
      
Beiträge: 56
Win XP
D7 Prof
|
Verfasst: 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 
      
Beiträge: 56
Win XP
D7 Prof
|
Verfasst: 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
      
Beiträge: 8548
Erhaltene Danke: 477
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: 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 
      
Beiträge: 56
Win XP
D7 Prof
|
Verfasst: Do 16.10.03 12:58
Titel: ja
sound und film passen alles einmandfrei
wie kann ich sonst noch die länge auslesen???
|
|