获取.mp4文件的持续时间

时间:2015-03-21 07:31:44

标签: .net vb.net

我正在.Net(VB)中创建一个显示视频文件列表(.mp4)的应用程序。我想要显示每个文件的持续时间。但是我找不到如何获得mp4文件持续时间的方法。请提供并提示或指导。谢谢

2 个答案:

答案 0 :(得分:0)

您可以提取文件属性并获取特定文件的持续时间。此功能将有所帮助:

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

答案 1 :(得分:0)

这是akhil kumar代码,我刚刚更新了其中的一些

您可以提取文件属性并获取特定文件的持续时间。此功能将有所帮助:

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