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 Sekunden) 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 / AviInfo.dwRate * AviInfo.dwScale 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 Sek. nLength = AVI_GetLength(sFile) Bei längeren AVI-Videos ist es sinnvoll die ermittelte Spielzeit nicht in Sekunden, sondern in Minuten und Sekunden anzugeben. Hierfür können Sie nachfolgende "Hilfsfunktion" verwenden, die Sekunden in das Format mm:ss umwandel. ' Sekunden nach mm:ss umrechnen Private Function AVI_FormatTime( _ ByVal iSec As Long) As String Dim iMin As Long iMin = Int(iSec / 60) iSec = iSec - (iMin * 60) AVI_FormatTime = Format$(iMin, "00") & ":" & _ Format$(iSec, "00") End Function Dieser Tipp wurde bereits 21.601 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
vb@rchiv CD Vol.6 Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! Online-Update-Funktion Entwickler-Vollversionen u.v.m. Tipp des Monats März 2024 Dieter Otter UTF-8 Konvertierung von Dateien und Strings VB6 selbst verfügt über keine Funktionen zur UTF-8 Konvertierung von Daten. Mit Hilfe des ADODB.Stream-Objekts lassen sich diese fehlenden Funktionen aber schnell nachrüsten. sevWizard für VB5/6 Professionelle Assistenten im Handumdrehen Erstellen Sie eigene Assistenten (Wizards) im Look & Feel von Windows 2000/XP - mit allem Komfort und zwar in Windeseile :-) |
||||||||||||||||
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. |