AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi DSPack : Länge von Lied vor Abspielen herausbekommen
Thema durchsuchen
Ansicht
Themen-Optionen

DSPack : Länge von Lied vor Abspielen herausbekommen

Ein Thema von Nils_13 · begonnen am 1. Feb 2007 · letzter Beitrag vom 19. Feb 2007
Antwort Antwort
Seite 1 von 3  1 23      
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#1

DSPack : Länge von Lied vor Abspielen herausbekommen

  Alt 1. Feb 2007, 14:33
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.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#2

Re: DSPack : Länge von Lied vor Abspielen herausbekommen

  Alt 1. Feb 2007, 15:06
Zitat von Nils_13:
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.
KA
Aber ich weiss das es über MPEGInfo geht.

EDIT:
Und beliebig geht gar nicht.
Immer abhängig vom Dateityp

gruss
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#3

Re: DSPack : Länge von Lied vor Abspielen herausbekommen

  Alt 1. Feb 2007, 16:50
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 ?
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#4

Re: DSPack : Länge von Lied vor Abspielen herausbekommen

  Alt 1. Feb 2007, 18:14
Zitat von Nils_13:
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 ?
Bei
"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:
           
Set 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")
CDA mußt du binär auslesen

"MPE", "MPEG", "MPG", "MOV", "3GP", "MID"
Kannst du über mci in erfahrung bringen

gruß
  Mit Zitat antworten Zitat
Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.334 Beiträge
 
Delphi XE5 Professional
 
#5

Re: DSPack : Länge von Lied vor Abspielen herausbekommen

  Alt 17. Feb 2007, 09:52
Zitat von Nils_13:
DAT ist nichts anderes als MPEG.
Das ist falsch. Wenn man eine DAT von VCD auf die Festplatte kopiert, werden nicht nur Daten des MPEG-1-Videos sondern die kompletten CD-Sektoren sowie der RIFF-Header mitkopiert. Somit hast Du einen RIFF-Header und 28 Byte pro Sektor zu viel.
Gruss Garfield
Ubuntu 22.04: Laz2.2.2/FPC3.2.2 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#6

Re: DSPack : Länge von Lied vor Abspielen herausbekommen

  Alt 17. Feb 2007, 16:37
@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
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#7

Re: DSPack : Länge von Lied vor Abspielen herausbekommen

  Alt 17. Feb 2007, 17:06
Und wie mit MCI ? Die Msdn-Hilfe hat nicht mal eine Liste aller Parameter oder ich bin blind
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#8

Re: DSPack : Länge von Lied vor Abspielen herausbekommen

  Alt 17. Feb 2007, 17:09
Hallo,

wenn Du DirectShow verwenden willst, kannst Du folgende Funktion verwenden (Ergebnis in Millisekunden):
Delphi-Quellcode:
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;
Gruß
xaromz
I am a leaf on the wind - watch how I soar
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#9

Re: DSPack : Länge von Lied vor Abspielen herausbekommen

  Alt 17. Feb 2007, 17:11
MCI ist mit Vorsicht zu geniesen, weil nur 16 Bit und je nach Typ 1 oder 2 GB Dateibeschräkung.
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#10

Re: DSPack : Länge von Lied vor Abspielen herausbekommen

  Alt 17. Feb 2007, 17:36
Zitat von Sunlight7:
MCI ist mit Vorsicht zu geniesen, weil nur 16 Bit und je nach Typ 1 oder 2 GB Dateibeschräkung.
Es geht doch nur darum die zeiten der einzelnen streans in erfahrung zu bringen.
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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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