AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi DirectShow IMediaSeeking MP3
Thema durchsuchen
Ansicht
Themen-Optionen

DirectShow IMediaSeeking MP3

Ein Thema von Linor · begonnen am 9. Dez 2010 · letzter Beitrag vom 15. Dez 2010
 
Benutzerbild von lbccaleb
lbccaleb

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

AW: DirectShow IMediaSeeking MP3

  Alt 10. Dez 2010, 14:40
Hy,
kontrollierst du vor dem auslesen der Länge mit dem Befehl:

Delphi-Quellcode:
HRESULT GetCapabilities(
  [out] DWORD *pCapabilities
);
ob das überhaupt möglich ist?

Möglich währen da folgende Werte:

Delphi-Quellcode:
AM_SEEKING_CanGetCurrentPos

    The stream can report its current position. See Remarks.
AM_SEEKING_CanGetStopPos

    The stream can report its stop position.
AM_SEEKING_CanGetDuration

    The stream can report its duration.
Delphi-Quellcode:
var
  dwCaps: DWORD;
  MediaSeeking.GetCapabilities(dwCaps);

  if (dwCaps and AM_SEEKING_CanGetDuration) then
    begin;
      //The stream can report its duration.
    end;
Und wenn das dort schon Fehl schlägt...
...Mhhh dann müsste ich mir auch erstmal was einfallen lassen oO

Edit:

...Eine vergleichbare Technik müsste es bei DirectShow doch auch geben, oder nicht?
Also mir ist im Moment keine "vergleichbare Technik" bekannt! Damüsste ich auch erstmal Nachforschen...

Edit2:
Also zur not gibt es noch eine andere Möglichkeit, an die Länge der MP3 zu kommen, mit dem Umweg über das Interface "IMediaDet" (MediaDetails)
Delphi-Quellcode:
function GetMultimediaFileDuration(const Filename: AnsiString): Double;
var
  MediaDet: IMediaDet;
begin
  Result := 0;
  if CoCreateInstance(CLSID_MediaDet, nil, CLSCTX_INPROC_SERVER,
    IID_IMediaDet, MediaDet) = S_OK then
    if MediaDet.put_Filename(Filename) = S_OK then
      if MediaDet.put_CurrentStream(0) = S_OK then
        if MediaDet.get_StreamLength(Result) <> S_OK then
          Result := 0;
  MediaDet := nil;
end;
Gibt dir die Länge der MP3 in Sekunden an!
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)

Geändert von lbccaleb (10. Dez 2010 um 16:20 Uhr)
  Mit Zitat antworten Zitat
 


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 20:45 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