AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia TMediaPlayer - Length und Position
Thema durchsuchen
Ansicht
Themen-Optionen

TMediaPlayer - Length und Position

Ein Thema von Amateurprofi · begonnen am 29. Nov 2011 · letzter Beitrag vom 6. Dez 2011
Antwort Antwort
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.111 Beiträge
 
Delphi XE2 Professional
 
#1

AW: TMediaPlayer - Length und Position

  Alt 1. Dez 2011, 13:42
Sicher das du denn alles richtig machst??
Ja, ziemlich.
Ich hab das etwas verändert, weil ich keine Fehlermeldungen haben möchte.
Daß etwas nicht funktioniert, sehe ich ja daran, daß der Rückgabewert der Funktion gettimefromfile 0 ist.
Aber ich habe natürlich kontrolliert, ob ich einen Fehler eingebaut habe, indem ich die in deinem Upload enhaltene .exe aufgerufen habe, und die bringt den gleichen Rückgabewert, wie die von mir modifizierte Funktion. (siehe anhängende .jpg).
Im 2.jpg kannst du sehen, daß der Windows Explorer die korrekte Zeit angibt.


Delphi-Quellcode:
FUNCTION TMain.GetTimeFromFile(FileName:String):Double;
var Duration:Double; wFileName:PWideChar; hr:HRESULT; MediaDet:IMediaDet;
begin;
   MediaDet:=nil;
   Result:=0;
   wFileName:=StringToOleStr(FileName);
   try
      hr:=CoCreateInstance(CLSID_MediaDet,nil,CLSCTX_INPROC,IMediaDet,MediaDet);
      if hr<>S_OK then exit;
      hr := MediaDet.put_Filename(wFileName);
      if hr<>S_OK then exit;
      hr:=MediaDet.get_StreamLength(Duration);
      if hr<>S_OK then exit;
      result:=duration;
   finally
      SysFreeString(wFileName);
      MediaDet:=nil;
   end;
end;
Angehängte Grafiken
Dateityp: jpg 1.jpg (122,8 KB, 18x aufgerufen)
Dateityp: jpg 2.jpg (155,2 KB, 17x aufgerufen)
Dateityp: jpg 3.jpg (121,5 KB, 16x aufgerufen)
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#2

AW: TMediaPlayer - Length und Position

  Alt 1. Dez 2011, 17:27
kannst du mir die mp3 datei mal bitte zukommen lassen??
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.111 Beiträge
 
Delphi XE2 Professional
 
#3

AW: TMediaPlayer - Length und Position

  Alt 1. Dez 2011, 22:40
kannst du mir die mp3 datei mal bitte zukommen lassen??
Hängt an.
Und danke, daß du versuchst zu helfen.
Angehängte Dateien
Dateityp: zip Somalia.zip (3,04 MB, 8x aufgerufen)
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
915 Beiträge
 
Delphi 12 Athens
 
#4

AW: TMediaPlayer - Length und Position

  Alt 2. Dez 2011, 08:04
Ich würde wetten, dass hier die variable Bitrate das Problem ist. Muss es denn so eine Lösung sein, oder geht auch was selbstgemachtes, wie z.B. mit meinen MP3Fileutils? Da wird die Länge korrekt ausgelesen, ganz egal was für Codecs oder sonst was auf dem System installiert sind.
Being smart will count for nothing if you don't make the world better. You have to use your smarts to count for something, to serve life, not death.
  Mit Zitat antworten Zitat
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.111 Beiträge
 
Delphi XE2 Professional
 
#5

AW: TMediaPlayer - Length und Position

  Alt 6. Dez 2011, 16:43
Ich würde wetten, dass hier die variable Bitrate das Problem ist. Muss es denn so eine Lösung sein, oder geht auch was selbstgemachtes, wie z.B. mit meinen MP3Fileutils? Da wird die Länge korrekt ausgelesen, ganz egal was für Codecs oder sonst was auf dem System installiert sind.
Hallo Gausi,
ich habe mir deine MP3Fileutils vor ein paar Tagen heruntergeladen, im ersten Moment nur 'Bahnhof' verstanden und mich anderen Dingen gewidmet.
Gestern wollte ich dann doch den Dingen auf den Grund gehen und habe mit Freude gemerkt, daß sich mein Problem verblüffend einfach lösen ließ.
Herzlichen Dank
Delphi-Quellcode:
FUNCTION TMain.GetDuration(FileName:String):Integer;
var mpi:TMpegInfo;
begin;
   mpi:=TMpegInfo.Create;
   result:=-1;
   try
      if mpi.LoadFromFile(FileName)=MP3ERR_None then result:=mpi.Duration;
  finally
     mpi.Free;
  end;
end;
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  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 07:08 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz