我正在.Net(VB)中创建一个显示视频文件列表(.mp4)的应用程序。我想要显示每个文件的持续时间。但是我找不到如何获得mp4文件持续时间的方法。请提供并提示或指导。谢谢
您可以提取文件属性并获取特定文件的持续时间。此功能将有助于:
Function GetDuration(ByVal MovieFullPath As String) As String
If File.Exists(MovieFullPath) Then
Dim objShell As Object = CreateObject("Shell.Application")
Dim objFolder As Object = _
objShell.Namespace(Path.GetDirectoryName(MovieFullPath))
For Each strFileName In objFolder.Items
If strFileName.Name = Path.GetFileName(MovieFullPath) Then
Return objFolder.GetDetailsOf(strFileName, 21).ToString
Exit For
Exit Function
End If
Next
Return ""
Else
Return ""
End If
End Function
和调用函数一样
Dim MyDuration As String = GetDuration("C:\SomePath\SomeVideoOrAudioFile.avi")
希望这可以帮助!!
更新:
如果使用不同于XP的操作系统,则应对aboce代码进行少量更改。
如果您使用的是Windows 7,请进行更改
Dim MyDuration As String = GetDuration("C:\SomePath\SomeVideoOrAudioFile.avi")
至
Return objFolder.GetDetailsOf(strFileName, 36).ToString
。
对于Windows Vista使用Return objFolder.GetDetailsOf(strFileName, 27).ToString
这是akhil kumar Code我只是更新了一些
您可以提取文件属性并获取特定文件的持续时间。此功能将有助于:
Function GetDuration(ByVal MovieFullPath As String) As String
If File.Exists(MovieFullPath) Then
Dim objShell As Object = CreateObject("Shell.Application")
Dim objFolder As Object = _
objShell.Namespace(Path.GetDirectoryName(MovieFullPath))
For Each strFileName In objFolder.Items
If strFileName.Name = Path.GetFileName(MovieFullPath) Then
Return objFolder.GetDetailsOf(strFileName, 21).ToString
Exit For
Exit Function
End If
Next
Return ""
Else
Return ""
End If
End Function
和调用函数一样
Dim MyDuration As String = GetDuration("C:\SomePath\SomeVideoOrAudioFile.avi")
希望这可以帮助!!
更新
如果使用与XP不同的操作系统,则应对上述代码进行少量更改。
如果您使用的是Windows 7,请进行更改
Dim MyDuration As String = GetDuration("C:\SomePath\SomeVideoOrAudioFile.avi")
至
Return objFolder.GetDetailsOf(strFileName, 36).ToString
。
对于Windows Vista使用Return objFolder.GetDetailsOf(strFileName, 27).ToString
对于Windows 8使用Return objFolder.GetDetailsOf(strFileName, 28).ToString
对于Windows 10使用Return objFolder.GetDetailsOf(strFileName, 27).ToString