C# 获得MP4时长
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.IO;
using System.Windows.Forms;
进入shell32.dll 在windows\system32下
public static string GetMediaTimeLen(string path)
        {
            try
            {
                Shell32.Shell shell = new Shell32.Shell();
                //文件路径               
                Shell32.Folder folder = shell.NameSpace(Path.GetDirectoryName(path));
                //文件名称             
                Shell32.FolderItem folderitem = folder.ParseName(Path.GetFileName(path));
                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(shell.NameSpace(Path.GetDirectoryName(path)));
                //文件名称             
                Shell32.FolderItem folderitem = folder.ParseName(Path.GetFileName(path));
                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; }
        }
        private void button5_Click(object sender, EventArgs e)
        {
            string FileName = @"C:\Users\Administrator\Documents\Tencent Files\853740877\FileRecv\1.2ArcGIS体系.mp4";
            MessageBox.Show(GetMediaTimeLen(FileName) + ",秒数:" + GetMediaTimeLenSecond(FileName));
        }
    
 
                     
                    
                 
                    
                 
         
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号