本帖最后由 秋声赋 于 2012-6-10 12:49 编辑
Bilibili小工具①
上次发的计算器是蛮久以前写的东西了,这次发一个这几天做的小东西,没太多实用价值,
主要是用来练习下网络编程和字符串处理以及实验下新增的Ribbon控件.界面如下:
如图中,这个工具的主要目的是通过解析Bilibili视频的地址或者av号,来获取视频的信息和弹幕以及下载地址.
另外还有播放和下载功能,但是很不完善.主要是我不会播放FLV的流媒体,只是简单的调用了WebBrowser连接到视频的播放地址.
下载也是,因为新浪会分段,我也懒得找合并FLV格式文件的方法,就没有完成合并功能.
另外说下,我以后就不会写太基础的帖子了,因为C#的很多基础东西,我都在前面的帖子里面说了,
但是像委托,泛型这种东西我认为我没有把握能说得好,想了解就去网上查资料吧,理解起来很容易.
我也算初学者,这个程序问题还是挺多的,很多地方都没用最好的方法解决,所以欢迎大家指正,我会在后面放上工程文件.
这次我一个帖子不会讲太多东西,分大概4,5个帖子完成这个程序的教程.我会尽快写完.
1. 程序的整体构成(本帖) 2. 下载地址的获取 3. 弹幕的获取和解析 4. 程序界面(Ribbon) 5. 下载及播放
首先看下本程序的结构.
由6个类构成,分别是2个实体类,2个辅助类,2个用来显示的类:
BilibiliVideo代表一个视频.里面记录了一个视频的所有信息,包括拥有的弹幕. BiliComment 代表一条弹幕.
AddressResolution 用于地址解析 VideoDown 用于视频下载
还有2个分别用来在控件中显示弹幕信息和视频信息.
//===========================大概的过程是这样=======================\\
当用户按下确定按钮后,
由AddressResolution解析出视频Aid号(就是av号后面那串数字,内部叫Aid号)和视频所在页数,顺便检测用户输入是否正确.
通过检测后,通过静态方法用Aid号和页数构造一个BilibiliVideo对象,此过程中就完成对视频信息的获取.
然后获取视频的下载地址(其实可以和前面放一起),并把信息显示在界面上.
再然后获取和解析弹幕文件,因为要花一点时间,所以放在另一个线程中进行,
当解析完成之后出发OnCommentReadComplete事件,主线程响应这个事件,把弹幕信息显示在界面之上.
当然还有播放的下载,我会在相应的帖子里面详细的说明.
\\==================================================================//
这就是程序的主要流程,很简单,不过在实现的过程中可以学习到很多东西例如
WebClient类的使用,WebAPI的意义,Xml文件解析,字符串处理, WebBrowser控件和HTMLDocument对象的使用,Ribbon控件的使用,数据绑定等等…
我反正在做这个程序的过程中学到了很多东西.相信初学者(有C#窗口编程基础的)从头到尾做一遍的话也能收获很多.
关于视频地址和弹幕文件的解析,参考了下面的文章(才发现B站原来是有论坛的…)
http://9ch.co/t13951,1-1.html http://9ch.co/t17836,1-1.html
工程文件在Windows8RP+VS2010(.net4.0)下编译通过.
|