运行文件夹中所有媒体文件的时间/长度信息

时间:2017-12-21 05:40:54

标签: c# media

如果文件夹中有多个媒体文件,请执行以下操作:

MediaFiles(folder)

-> file1.mp4
-> file2.mp4
...

当我们选择所有文件和

Right Click -> Properties

在“详细信息”选项卡上的“属性”窗口中,有一个“长度”字段,它一起显示媒体文件的总运行时间,如下所示:

Properties windows

是否可以使用C#获取此信息?

2 个答案:

答案 0 :(得分:2)

如此link所示,在Microsoft.WindowsAPICodePack-Shell nuget包的帮助下,您可以获得如下总长度;

static void Main(string[] args)
{
    DirectoryInfo dir = new DirectoryInfo(@"C:\to\your\path");
    FileInfo[] files = dir.GetFiles("*.mp4");

    var totalDuration = files.Sum(v => GetVideoDuration(v.FullName));
}

public static double GetVideoDuration(string filePath)
{
    using (var shell = ShellObject.FromParsingName(filePath))
    {
        IShellProperty prop = shell.Properties.System.Media.Duration;
        var t = (ulong)prop.ValueAsObject;
        return TimeSpan.FromTicks((long)t).TotalMilliseconds;
    }
}

答案 1 :(得分:-1)

您可以使用Windows媒体对象并加载该文件,然后获取其属性。 阅读文件夹文件并循环浏览每个文件并加载它们并读取您想要的属性并存储在数据库中。

请参阅Microsoft网站go here to check the more detail