Vor kurzem haben wir Ihnen gezeigt, wie sich ein AVI-Video per API abspielen lässt: Heute möchten wir Ihnen zeigen, wie sich die Größe des Videos ermitteln lässt, so dass Sie die PictureBox zum Abspielen des Videos auch entsprechend groß anzeigen können. Außerdem zeigt unser Tipp noch, wie sich die Gesamt-Spielzeit des Files auslesen lässt. ' zunächst die benötigten API-Deklarationen Private Declare Function AVIFileOpen Lib "avifil32" _ Alias "AVIFileOpenA" ( _ ppfile As Long, _ ByVal szFile As String, _ ByVal mode As Long, _ pclsidHandler As Any) As Long Private Declare Function AVIFileRelease Lib "avifil32" ( _ ByVal pfile As Long) As Long Private Declare Function AVIFileInfo Lib "avifil32" _ Alias "AVIFileInfoA" ( _ ByVal pfile As Long, _ pfi As AVIFileInfo, _ ByVal lSize As Long) As Long Private Declare Sub AVIFileInit Lib "avifil32" () Private Declare Sub AVIFileExit Lib "avifil32" () ' AVI Info-Struktur Private Type AVIFileInfo dwMaxBytesPerSec As Long dwFlags As Long dwCaps As Long dwStreams As Long dwSuggestedBufferSize As Long dwWidth As Long dwHeight As Long dwScale As Long dwRate As Long dwLength As Long dwEditCount As Long szFileType As String * 64 End Type ' Breite und Höhe der animierten Bildsequenz ermitteln ' (Rückgabewert erfolgt in Pixel!!!) Public Sub AVI_GetSize(ByVal sFile As String, _ nWidth As Long, nHeight As Long) Dim hFile As Long Dim AviInfo As AVIFileInfo ' Fehlerbehandlung aktivieren On Error Resume Next ' Initialisieren AVIFileInit ' AVI öffnen (Handle erstellen) If AVIFileOpen(hFile, sFile, &H20, ByVal 0&) = 0 Then ' Infos lesen If AVIFileInfo(hFile, AviInfo, Len(AviInfo)) = 0 Then nWidth = AviInfo.dwWidth nHeight = AviInfo.dwHeight End If AVIFileRelease hFile End If ' Beenden AVIFileExit On Error Goto 0 End Sub ' Länge (Spieldauer) ermitteln ' (Rückgabewert erfolgt in Millisekunden) Public Function AVI_GetLength(ByVal sFile As String) As Long Dim hFile As Long Dim AviInfo As AVIFileInfo Dim nLength As Long ' Fehlerbehandlung aktivieren On Error Resume Next ' Initialisieren AVIFileInit ' AVI öffnen (Handle erstellen) If AVIFileOpen(hFile, sFile, &H20, ByVal 0&) = 0 Then ' Infos lesen If AVIFileInfo(hFile, AviInfo, Len(AviInfo)) = 0 Then nLength = AviInfo.dwLength End If AVIFileRelease hFile End If ' Beenden AVIFileExit On Error Goto 0 ' Rückgabewert AVI_GetLength = nLength End Function Beispiel: ' AVI-Infos ermitteln Dim sFile As String Dim nWidth As Long Dim nHeight As Long Dim nLength As Long ' AVI-Datei sFile = "c:\winnt\clock.avi" ' Bildgröße AVI_GetSize sFile, nWidth, nHeight ' Spielzeit in MSek. nLength = AVI_GetLength(sFile) Bei längeren AVI-Videos ist es sinnvoll die ermittelte Spielzeit nicht in Millisekunden, sondern in Minuten und Sekunden anzugeben. Hierfür können Sie nachfolgende "Hilfsfunktion" verwenden, die Millisekunden in das Format mm:ss umwandel. ' Millisekunden nach mm:ss umrechnen Private Function AVI_FormatTime( _ ByVal lMSec As Long) As String Dim iMin As Integer Dim iSec As Integer iSec = Int(lMSec / 1000) iMin = Int(iSec / 60) iSec = iSec - (iMin * 60) AVI_FormatTime = Format$(iMin, "00") & ":" & _ Format$(iSec, "00") End Function Dieser Tipp wurde bereits 8.845 mal aufgerufen.
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv (einschl. Beispielprojekt!) Ein absolutes Muss - Mehr als 650 MByte geballtes Wissen! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - Online-Update-Funktion u.v.m. |
sevZIP30 Pro DLL ![]() Zippen und Unzippen wie die Profis! Mit nur wenigen Zeilen Code statten Sie Ihre Anwendungen ab sofort mit schnellen Zip- und Unzip-Funktionen aus. Hierbei lassen sich entweder einzelnen Dateien oder auch gesamte Ordner zippen bzw. entpacken. Buchempfehlung Tipp des Monats Dieter Otter Doppelte Werte bei Ausgabe eines Arrays unterdrücken Hier stellen wir 3 Möglichkeiten vor, wie man doppelte Werte bei der Ausgabe eines Arrays unterdrücken kann. Neu! sevISDN 1.0 ![]() Überwachung aller eingehender Anrufe! Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. |
||||||||||||||||
|
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |
|||||||||||||||||


Größe und Spieldauer eines AVI-Videos ermitteln



