zoukankan      html  css  js  c++  java
  • C#获取视频文件播放长度

    添加引用SHELL32.DLL

    根据网上代码改编

        public static class GetVideoLength
        {
            public static string GetMediaTimeLen(string path)
            {
                try
                {
                    Shell32.Shell shell = new Shell32.Shell();
                    //文件路径               
                    Shell32.Folder folder = shell.NameSpace(path.Substring(0, path.LastIndexOf("\\")));
                    //文件名称             
                    Shell32.FolderItem folderitem = folder.ParseName(path.Substring(path.LastIndexOf("\\") + 2));
                    if (Environment.OSVersion.Version.Major >= 6)
                    { 
                        return folder.GetDetailsOf(folderitem, 27);
                    }
                    else 
                    { 
                        return folder.GetDetailsOf(folderitem, 21);
                    }
                }
                catch (Exception ex) { return null; }
            }
    
            public static int GetMediaTimeLenSecond(string path)
            {
                try
                {
                    Shell32.Shell shell = new Shell32.Shell();
                    //文件路径               
                    Shell32.Folder folder = shell.NameSpace(path.Substring(0, path.LastIndexOf("\\")));
                    //文件名称             
                    Shell32.FolderItem folderitem = folder.ParseName(path.Substring(path.LastIndexOf("\\") + 2));
                    string len;
                    if (Environment.OSVersion.Version.Major >= 6)
                    {
                        len =  folder.GetDetailsOf(folderitem, 27);
                    }
                    else
                    {
                        len = folder.GetDetailsOf(folderitem, 21);                    
                    }
    
                    string[] str = len.Split(new char[] { ':' });
                    int sum = 0;
                    sum = int.Parse(str[0]) * 60 * 60 + int.Parse(str[1]) * 60 + int.Parse(str[2]);
    
                    return sum;
                }
                catch (Exception ex) { return 0; }
            }
        }
  • 相关阅读:
    Service Mesh vs SideCar
    云原生应用
    js 中继承的几种方式
    js 中call,apply,bind的区别
    js中的原型
    ES6 中的let 声明变量
    react native 中的redux
    css 中的伪类选择器before 与after
    js中数组遍历的几种方法及其区别
    js中一些常见写法的含义
  • 原文地址:https://www.cnblogs.com/futao/p/2528724.html
Copyright © 2011-2022 走看看