![]() |
DSPack : Länge von Lied vor Abspielen herausbekommen
Hi,
wie kann man mit dem DSPack die Länge eines beliebigen Liedes, bevor man es abspielt, herausfinden bzw. auf eine Variable zuweisen ? Ich habe keine Befehle gefunden, welche dies "im Vorraus" erledigen könnten. |
Re: DSPack : Länge von Lied vor Abspielen herausbekommen
Zitat:
Aber ich weiss das es über MPEGInfo geht. EDIT: Und beliebig geht gar nicht. Immer abhängig vom Dateityp gruss |
Re: DSPack : Länge von Lied vor Abspielen herausbekommen
Ich brauche die Länge von .mpeg, .wmv, .avi, .dat. MPEG hast du eben schon genannt, werde mich gleich drumkümmern. DAT ist nichts anderes als MPEG. Wie steht es allerdings mit WMV und AVI ?
|
Re: DSPack : Länge von Lied vor Abspielen herausbekommen
Zitat:
"WMV", "WMA", "RMI", "AVI", "ASF", "DAT", "WAV", "RM" Kannst du die länge über FilgraphManager erfahren. FilgraphManager befindet sich in der Typelib QuartzTypeLib Quartz.dll. von meinen Projekt!
Code:
CDA mußt du binär auslesenSet MediaControl = New FilgraphManager If MediaControl Is Nothing Then MsgBox "Kann die Ojektlib Mediacontrol nicht erstellen" Exit Sub End If Set MediaPosition = MediaControl MediaControl.RenderFile (strFullSongName) SongTime = MediaPosition.Duration strMin = SongTime \ 60 strSec = Int(SongTime - strMin * 60) strX = format(strMin, "00") & ":" & format(strSec, "00") "MPE", "MPEG", "MPG", "MOV", "3GP", "MID" Kannst du über mci in erfahrung bringen gruß |
Re: DSPack : Länge von Lied vor Abspielen herausbekommen
Zitat:
|
Re: DSPack : Länge von Lied vor Abspielen herausbekommen
@Nils
Nimm dir mal die mmsystem unit wenn die noch nicht in dein projekt eingebunden ist Damit kannst du die länge der songs / Videos einfach in erfahrung bringen. MCI ist das schlagwort. gruss |
Re: DSPack : Länge von Lied vor Abspielen herausbekommen
Und wie mit MCI ? Die Msdn-Hilfe hat nicht mal eine Liste aller Parameter oder ich bin blind :roll:
|
Re: DSPack : Länge von Lied vor Abspielen herausbekommen
Hallo,
wenn Du DirectShow verwenden willst, kannst Du folgende Funktion verwenden (Ergebnis in Millisekunden):
Delphi-Quellcode:
Gruß
uses
ActiveX, DirectShow9; ... function GetDuration(const FileName: WideString): Cardinal; var GB: IGraphBuilder; MediaSeeking: IMediaSeeking; RefTime: Int64; begin Result := 0; if Succeeded(CoCreateInstance(CLSID_FilterGraph, nil, CLSCTX_INPROC_SERVER, IID_IGraphBuilder, GB)) and Succeeded(GB.RenderFile(PWideChar(FileName), nil)) and Succeeded(GB.QueryInterface(IMediaSeeking, MediaSeeking)) then begin MediaSeeking.GetDuration(RefTime); Result := Cardinal(RefTime div 10000); end; end; xaromz |
Re: DSPack : Länge von Lied vor Abspielen herausbekommen
MCI ist mit Vorsicht zu geniesen, weil nur 16 Bit und je nach Typ 1 oder 2 GB Dateibeschräkung.
|
Re: DSPack : Länge von Lied vor Abspielen herausbekommen
Zitat:
Er will ja nichts damit abspielen. Dabei spielt es keine rolle ob 16Bit oder 32. Oder? @Nils .. Wie das geht habe ich dir doch anhand eines Beispiel geschildert. gruss |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:51 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 by Thomas Breitkreuz