获取.mp4文件的持续时间

问题描述 投票:0回答:2

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

.net vb.net
2个回答
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


0
投票

这是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

© www.soinside.com 2019 - 2024. All rights reserved.