这还不简单,遍历文件夹,然后用Shell32函数取得视频文件的时间,那就得了。
当然,前提是视频文件要有相应解码器,也就是说文件类型本身已经在系统里注册而且是可以打开的。
思路我知道,关键是Shell32函数 怎么获取视频播放时长,我电脑上装的迅雷看看播放器,统计mp4视频播放时间没有显示呢
@恋人星空:
右键看一个文件属性,如果那里有时间,就肯定能取出来,如果那里没有(不排除一些文件有损坏),那肯定也没有了。
@XiaoFaye: 右键视频文件属性能看到播放时间?
@恋人星空:
在摘要那里呀!!!
@XiaoFaye: 里面是空的
@恋人星
空:
我这里都会有显示的。。。你不会装的GHOST系统吧???
@XiaoFaye: 最终目的是:我看到视频目录下的视频有的能显示出时间,也就是window操作系统他能读出视频的播放时间,但是有的却不能,我是想把那些没有显示出的视频播放时间显示出来
@恋人星空:
不显示的话有可能是解码器或文件本身的问题,这个就麻烦了,要自己去读文件了。
每种视频文件都有自己格式,某个位置保存的是长度信息,可以试试二进制读出来。比如以下是MP4文件的:http://perso.telecom-paristech.fr/~concolat/MPEGFileFormats.pdf
@XiaoFaye: 无奈了,全英文啊,看不懂
楼上正解,附上网上找到的一段代码
使用Windows系统组件Shell32.Shell 程序集路径:C:\WINDOWS\system32\shell32.dll
代码如下:
string path="******";
Shell32.Shell shell = new Shell32.ShellClass();
Shell32.Folder folder = shell.NameSpace(path.Substring(0, path.LastIndexOf("\\")));
Shell32.FolderItem folderitem = folder.ParseName(path.Substring(path.LastIndexOf("\\") + 1));
//时间长度格式:00:00:00
string duration folder.GetDetailsOf(folderitem, 21);
优缺点:
优点是Windows自己的系统组件,比较方便,获取到的文件属性就是你右键看到的文件属性,不要加载其它工
具,没有兼容性等问题,缺点是对于很多格式的文件获取不到文件属性,也就是只能获取支持的文件格式。
以前就是这样用的这段代码,没有显示出时间,什么都没显示为啥?
搜一下吧,示例有很多的。