统计《ASP.Net特供视频教程》总长度

原创 2013年12月03日 19:16:10

         虽然传智播客的.net课程体系已经是国内最好的,但是我总感觉还有很大的改进空间,应该能让同学们学的更轻松、更透彻。我借鉴JavaPHP的课程体系,并且和企业中的软件工程师、传智播客的任课老师交流探讨,经过半年多时间我研究出一套新的“HttpHandler+模板引擎”课程体系,录制了这套新的《传智播客ASP.net特供视频教程2014版》(下载地址:http://net.itcast.cn/subject/tegongnet/index.html

         这套视频教程是专门为自学的同学录制的,自学的同学时间都不像在传智播客脱产学习的同学那样有大块的时间,碎片的时间比较多,所以这次的视频一般都是10-20分钟一段的“短视频”,一段视频讲一个知识点。看着网上同学们对这套视频的赞美我心里很高兴,忽然想统计一下这套视频一共多长时间,由于视频文件很多,一共72个,挨个打开进行累加不是程序员应该想起的办法。所以就打算写一个程序来完成这件事,最核心的问题就是“获得一个视频文件的时长”。 ffmpeg是一个专业的音频视频处理开源技术,借助于它可以完成视频转码、视频截图、视频提取等工作,ffmepg也提供了获取视频长度的方法,不过想想只是获取视频长度这么一件事就要动用ffmpeg有点“杀鸡用牛刀”的感觉,所以就上网搜寻是否有其他获得视频文件长度的方法,很快就找到了这样一篇文章《C#获取视频文件播放时长》,使用下面的代码就可以获得视频文件的长度:

public string GetMediaTimeLen(string path)

{

    try

    {

        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));

        if (Environment.OSVersion.Version.Major >= 6)

        {

            return folder.GetDetailsOf(folderitem, 27);

        }

        else

        {

            return folder.GetDetailsOf(folderitem, 21);

        }

 

    }

    catch (Exception ex)

    {

        return null;

    }

}


 

         把这段代码放到VS中编译,发现找不到Shell32.Shell等类,原来还需要手动引入Shell32这个Com组件,太麻烦。我想到借助于C#中的dynamic新特性可以简化Com组件调用,就把代码改写成如下:

public static string GetMediaTimeLen(string path)

{

    System.Type objType = System.Type.GetTypeFromProgID("Shell.Application");

    dynamic shell = System.Activator.CreateInstance(objType);

    //文件路径

    dynamic folder = shell.NameSpace(path.Substring(0, path.LastIndexOf("\\")));

    //文件名称

    dynamic folderitem = folder.ParseName(path.Substring(path.LastIndexOf("\\") + 1));

    if (Environment.OSVersion.Version.Major >= 6)

    {

        return folder.GetDetailsOf(folderitem, 27);

    }

    else

    {

        return folder.GetDetailsOf(folderitem, 21);

    }

}


 

         接下来的程序就很简单了,遍历文件夹下所有的.wmv文件,然后把每个文件的时长累加即可:

string[] files = System.IO.Directory.GetFiles(@"F:\视频教程\2013年底asp.net公开课\剪辑后", "*.wmv", System.IO.SearchOption.AllDirectories);

TimeSpan tsTotal = TimeSpan.Zero;

foreach (string file in files)

{

    string len = GetMediaTimeLen(file);

    TimeSpan tsLen = TimeSpan.Parse(len);

    tsTotal += tsLen;

}

 

Console.WriteLine(tsTotal);


 

         程序运行了一会就得到了结果“16:27:35”!

         ASP.Net零基础到学生熟悉ASP.Net的本质、会使用ASP.Net实现增删改查程序、掌握Cookie/Session的原理、掌握AJAX到最后使用ASP.Net开发一个企业网站系统,只用了16个小时,这种自豪感瞬间爆棚!

如鹏网.Net培训班正在报名,有网络的地方就可以参加如鹏网的学习,学完就能高薪就业,点击此处了解

 

三年前只要懂“三层架构”就可以说“精通分层架构”;现在则需要懂IOC(AutoFac等)、CodeFirst、lambda、DTO等才值钱;

三年前只要会SQLServer就可以说自己“精通数据库开发”;现在则需还需要掌握MySQL等开源数据库才能说是“.Net开源”时代的程序员;

三年前只要会进行用户上传内容的安全性处理即可;现在则需要熟悉云存储、CDN等才能在云计算时代游刃有余;

三年前只要掌握Lucene.Net就会说自己“熟悉站内搜索引擎开发”;现在大家都用ElasticSearch了,你还用Lucene.Net就太老土了;

三年前发邮件还是用SmtpClient;现在做大型网站发邮件必须用云邮件引擎;

三年前缓存就是Context.Cache;现在则是Redis、Memcached的天下;

如鹏网再次引领.Net社区技术潮流!点击此处了解如鹏网.Net最新课程



Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

(HTML部分)特供.Net基础全套视频教程2014版(第十八天)(更新于2015年10月24日02:23:36)

html 不区分大小写     空格标签   如:莫使金樽     空对月。 代表诗句间有五个空格     标题标签 :#=1~6 我是标题 ...

ASP.NET微信开发视频教程

ASP.NET MVC5&微信公众平台整合开发实战(响应式布局、JQuery Mobile,Windows Azure、微信核心开发) 课程分类:ASP.NET MVC 适合人群:中级 课时数量...

ASP.NET中实现动态曲线图的视频教程

点击下面的入口可以在线观看视频  最近在项目中有个需求,把从数据库中读到的数据输出折线图并且是随着时间的推移动态的显示不同位置的数据这就要用到了动态折线图。刚开始项目中大部分的折线图都是用的MS...

asp.net大文件分块上传视频教程

我们平时做业务系统的时候,一般都会使用表单提交数据,提交数据的时候常常又伴随着附件的上传,如果附件小,用传统的办法就能解决,如果附件比较大,比如板给你安排一个上传视频的任务,视频文件一般都比较大,动不...

ASP.NET AJAX服务器端控件官方视频教程 下载

====================================================== 注:本文源代码点此下载 =============================...

Asp.Net MVC 实用视频教程

[北盟学习BaMn.Cn] Asp.Net MVC 第01课--创建第一个项目.avi [北盟学习BaMn.Cn] Asp.Net MVC 第02课--自己建一个controller view.av...

C# ASP.NET等大量视频教程下载地址

请使用网际快车或迅雷下载.不然下载不了的 视频: Microsoft.net 框架概述 http://download.chinaitlab.com/soft/3346.htm ...

ASP.NET项目实战视频教程

基于.NET WPF+ASP.NET MVC4技术构建夜猫商务会所运营管理平台一体化解决方案 课程讲师:闲筝 课程分类:.Net 适合人群:中级 课时数量:80课时 用到技术:WPF、MVC...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:统计《ASP.Net特供视频教程》总长度
举报原因:
原因补充:

(最多只允许输入30个字)