发现56Youtube的视频都可以拖动,正好项目初步完成,本周工作任务很轻,于是偷了将近两天时间来玩这个FLV的拖动。

首先观察了一下这两个网站拖动功能:感觉56的拖动有问题,每次拖到那里以后就给一帧画面,然后就一直处于下载数据的状态,也不知道是下载的什么数据。最后好不容易下载完了,刚播几个画面就结束了……更正:56的新播放器没有问题,拖动很正常。Youtube的拖动做得不错,每次拖到新的地方,也会发出一个请求,但是在播放的进度条上可以清晰地看到当前下载的数据段属于哪一段,播放正常。

从观察结果可以推断:每次拖动都向服务器请求数据,并给上标识,然后服务器按照需求来给数据。数据怎么给?NetStream有一个seek()方法,搜索时是搜索到距seek的点最近的关键帧开始播放,因此相应地,服务器给数据时也应该是这样。剩下的就是分析FLV文件格式和服务器程序方面的事情了,FLV文件格式的分析网上很多,随便搜一下就找得到了。

我的服务器程序是用C#写的,可惜现在没有.NET虚拟主机,不能放个Demo出来……

最后,非常感谢在这个过程中师兄老王和同学Bluepiano给予的帮助!

9 Comments

  1. 我很想知道你这个技术怎么实现,你做好了后可以分享给我吗?QQ76065655

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.