AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi ms in sekunden und minuten stunden umrechen ?
Thema durchsuchen
Ansicht
Themen-Optionen

ms in sekunden und minuten stunden umrechen ?

Ein Thema von mimi · begonnen am 16. Apr 2005 · letzter Beitrag vom 16. Apr 2005
Antwort Antwort
Seite 1 von 2  1 2      
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#1

ms in sekunden und minuten stunden umrechen ?

  Alt 16. Apr 2005, 14:58
Hallo,
ich habe unter DelphiForum und DelphiPraxis schon gesucht und einiges gefunden, was aber immer die gleichen fehler hatten:
die sekunden waren sprungehaft obwohl der timer auf interval 1 eingestellt ist.

ich möchte gerne die, MS umrechnen in Stunden:Minuten:Sekunden habe mir dafür eine funktion geschrieben(die soll noch mehr können, aber ich habe schon den paramter mo hinzugefügt, der jetzt noch nicht verwendet wird)

Delphi-Quellcode:
function TFmod.GetPositionStr(mo:Integer = 0):String;
var
  m,s,ms:Integer;
begin
  ms:=(FSOUND_Stream_GetTime(Music.Stream) div 1000);
  s:=ms;
  m:=s div 60;

  if s >= 60 then begin
    s:=ms+(s div 60);
    s:=s-60*(s div 60);
  end;

  result:=Format('%.2d : %.2d ',[m,s]);
  m:=0; s:=0;
end;
das mit if s > 60 habe ich gemacht weil die s größer sein können als 60 aber irgenwie stimmt die zeit nicht mit Winamp überein: habe ein zeit vergleich gemacht habe bei bis zu einer bestimmten stelle vorgeschplut und dann bei WinAmp das gleiche und es waren unterschiedliche sachen zu höhren bei und dem selben Lied(mp3)).

ich nutze FMod
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#2

Re: ms in sekunden und minuten stunden umrechen ?

  Alt 16. Apr 2005, 16:12
habs hinbekommen, hier der neue code(mit einer zusatzt funktion)
Delphi-Quellcode:
function GetMSToMinSek(ms:Integer; mo:boolean = True;ms2:Integer = 0):String;
var
  m,s:Integer;
begin
  if mo = True then begin
    ms:=ms div 1000;
    s:=ms;
    m:=s div 60;

    if s >= 60 then
      s:=s-60*(s div 60)+1;

    result:=Format('%.2d:%.2d ',[m,s]);
  end
  else begin
    ms:=(ms2-ms) div 1000;
    s:=ms;
    m:=s div 60;

    if s >= 60 then
      s:=s-60*(s div 60)+1;

    result:=Format('%.2d:%.2d ',[m,s]);
  end;

end;
wenn einer verbessungsvorschläge hatt, währe dies nicht schlecht
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
Benutzerbild von Gina
Gina

Registriert seit: 23. Dez 2004
Ort: Berlin
161 Beiträge
 
Delphi 6 Professional
 
#3

Re: ms in sekunden und minuten stunden umrechen ?

  Alt 16. Apr 2005, 16:45
Hallo,

s sind doch die Sekunden, oder? Hast du schonmal

s := ms mod 60; probiert?

Oder hab ich das jetzt falsch verstanden?

Liebe Grüße, Gina.
Mein Lieblings-Spiele-Laden in Berlin: www.cometgames-store.de

{KDT}
.
  Mit Zitat antworten Zitat
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#4

Re: ms in sekunden und minuten stunden umrechen ?

  Alt 16. Apr 2005, 18:01
ja am anfang, ging aber nicht weil er mit den zaheln gesprungen ist damitmeine ich folgendes:
normalerweise gehen die sekunden ja so:
1
2
3
4
und er hat gemacht:
3
6
20
59
99
1 sek
ich vermute mal es waren ms die er da ausgeben hatte
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: ms in sekunden und minuten stunden umrechen ?

  Alt 16. Apr 2005, 18:12
Vielleicht hast du das falsch verstanden, der Interval beim Timer wird in ms angegeben, nicht in s.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von Gina
Gina

Registriert seit: 23. Dez 2004
Ort: Berlin
161 Beiträge
 
Delphi 6 Professional
 
#6

Re: ms in sekunden und minuten stunden umrechen ?

  Alt 16. Apr 2005, 18:43
Woher bekommst du denn die Zeit? Vom Timer?
Mein Lieblings-Spiele-Laden in Berlin: www.cometgames-store.de

{KDT}
.
  Mit Zitat antworten Zitat
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#7

Re: ms in sekunden und minuten stunden umrechen ?

  Alt 16. Apr 2005, 18:51
letzendlich ja, der war auf 1 gestellt jetzt ist er auf 3 gestellt.
Das hat was mit Fmod zu tuen. Wenn ich ihn auf 1 stelle läuft das Programm zu langsamm, bei 3 geht es.
Ich habe deshalb mal im FMod.de forum gefragt, dort wurde mir gesagt, es hat was mit midi dateien zu tuen.... naja, jetzt geht ja alles.... *freu*
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: ms in sekunden und minuten stunden umrechen ?

  Alt 16. Apr 2005, 18:54
Der Standard Delphi Timer ist äußerst ungenau, ich würde einen anderen verwenden.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#9

Re: ms in sekunden und minuten stunden umrechen ?

  Alt 16. Apr 2005, 19:25
ein timerinterval von 3 macht keinen sinn, dein programm bekommt nur ca alle 20 ms von windows rechenzeit zugeteilt und dementsprechend reicht es auch wenn ein timer 20 als interval hat.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#10

Re: ms in sekunden und minuten stunden umrechen ?

  Alt 16. Apr 2005, 21:25
ich habe mich verschrieben oben ich meinte 3000 das hat was mit fmod zu tuen:
Die FMusic funktion spical midi sind zu langsam:

Zitat:
Hab das jetzt mal getestet, und das gleiche Problem mit den Buttons taucht hier auch auf, allerdings ausschließlich mit MIDI-files.

Hab dann mal weiter rumgetestet, und kam auf folgendes:
Wenn man in einer Schleife sowas laufen läßt wie
Code:

WHILE FSOUND_IsPlaying()
count += 1
WEND

erhöht sich count bei mir ca. um 500000 pro Sekunde bei wav, mp3, etc.
Wenn man ähnlich dies hier nutzt:
Code:

WHILE FMUSIC_IsPlaying()
count += 1
WEND

oder auch
Code:

REPEAT
count += 1
UNTIL FMUSIC_IsPlaying()

mit irgendwelchen mod, dann erhöht sich count ebenfalls um ca. 500000 pro Sekunde.
Nutzt man eine der beiden letzten Möglichkeiten jedoch für MIDI-files, dann erhöht sich count nur um etwa 10 (!) pro Sekunde.
Der Aufruf FMUSIC_IsPlaying() bzw. FMUSIC_IsFinished() auf eine MIDI-file dauert einfach extrem lange, so dass es nicht ratsam ist, diesen in die Event-Hauptschleife zu legen, da dann die ganzen Fenster-Events extrem lange zum Abarbeiten brauchen, bzw. es zu einem Totalstau kommt, da mehr Events eingehen, als abgearbeitet werden können.

Ich habe das dann mal hier gepostet:
http://www.fmod.org/forum/viewtopic.php?t=2490
aber da gabs noch keine Antwort (allerdings steht sie eigentlich auch schon davor).
FMOD nutzt in Version 3.* DirectMusic für MIDI-files und ist von deren Antwortzeiten abhängig.
Lösung derzeit ist also, diese Schleife in einen seperaten Thread zu packen, der einfach eine globale Variable 'isplaying' setzt, welche in der echten Hauptschleife dann ausgewertet werden kann.

Mit FMOD EX, welches ja seinen eigenen MIDI-Player mitbrint, läuft das übrigens, da wird auch FMUSIC_*** mit MIDI-files 500000 mal pro Sekunde aufgerufen.
aus dem www.fmod.de forum
(es gibt dort leider keinen link bei der deutschen version...)

@3_of_8
das der Timer ungeanu ist weiß ich, aber ich dachte, es reicht aus wenn ich den von delphi nehme, weil ich wollte ja nur eine zeit anzeige schreiben(die jetzt so funktioniert wie ich sie haben wollte)
(der richtig code ist mein zweiter beitrag)

@SirThornberry
soll das heißen es mach keinen sin einen wert von <= ca 20 zu machen ?
das wuste ich noch nicht. ich dachte 1 ms heißt das windows den timer jede ms aufruft....
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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:33 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