AS3制作全功能的FLV网络视频播放器

 

 

 

  从本节开始,我将带领大家制作一个全功能的FLV网络播放器。我们为了方便就以优酷网的播放器为例子,来制作一个仿优酷的视频播放器。好了!我们来看一下优酷网的播放器到时是怎样运行的呢?

       首先,当我们打开一个带视频的网页的时候,播放器显示该视频的一个截图:

       像这样!当我们开始播放视频的时候,播放器会呈现下面界面:

       我们来看!这个播放器有以下几个功能:

1、视频的播放与停止

2、视频的当前播放时间

3、视频的总时间

4、视频的加载进度

5、视频的播放进度

6、音量控制

7、全屏控制

8、视频的亮度调节

9、视频的快进

10、视频的快退

11、视频选择功能(当视频播放完毕后)

       视频播放完毕之后会出现下面这个界面:

 

      

       在这个界面当中,我们又可以看到几个功能,我们来总结一下:

1、4个热门视频(这4个热门视频每个一定的时间就会自动的替换)

2、热门视频的翻页功能

3、视频的重播

4、复制FLASH地址功能

5、复制HTML代码功能(这个功能我们可以不要,因为每个网站的代码都有所不同。)

6、视频搜索功能

       好了!我们已经把这个视频播放器所有所需要的功能都总结了起来!接下来我们就要一步一步去实现这个播放器!

(二)

       大家好!我们本节来讲解AS3制作FLV视频播放器的原理。在做播放器之前,我们先来设计一下程序的运行流程,并把这个流程制作成流程图。这样做起来,就显得方便快捷。我们可以尽量详细的描写我们程序的运行流程,不过要从宏观上去考虑。具体遇到的编程问题再慢慢去解决!

        我们来看一下这个流程图(这个是偶自己取的名字)!首先是主文件接受外部的参数,包括视频地址,选项等等。然后在主文件中我们来定义一些事件,比如说按钮事件,有关视频的事件等等。透过这些事件我们又对视频流和界面元素进行了调用。最后是视频流中的一些数据进行数据处理,然后将这些数据在传递给主文件。好了!这样就完成了一个播放器的全部工作流程。

       很多人都有一个不好的习惯,就是说到一个效果,拿来就做,没有一个计划。这样反而事倍功半。不仅写起来很费劲,而且返工的机率很大。所有我们在做一些FLASH交互式程序的时候一定要先构思,再动手去做。

       好了!我们现在来仔细考虑,这个程序的一些细节。我们用顺序号来表示。

1、当网页被打开的时候,我们要FLASH接受几个参数。这些参数决定着播放器的一些选项。

2、网页被打开的时候,FLASH要读取自身的宽高。这个要用来对视频的宽高进行限制。

3、播放器检测视频连接是否正常,检查跨域访问权限。

4、开始播放视频。

5、视频的各个调节功能(包括进度,声音,全屏,亮度等)。

6、视频播放结束后的工作。

7、断开所有数据流!

       这样,我们的程序功能就清楚可见了!根据这个来制作程序效率是非常高的。

(三)

时间很仓促,为了完成这套教程,特意抽出了3天的业余时间来制作这个FLV播放器。其中难免有BUG,如果大家发现了BUG欢迎留言给我。再不断的完善!

       那么首先提一个问题,制作一个中型的FLASH交互式程序是先写文档类还是先写别的自定义类呢?我个人觉得应该先写自定义类,将我们所需要的功能都封装好后再写文档类。这样写起来比较方便。好了!废话不多说,我们本节先来写第一个类吧!

       我们平常播放FLV视频要三个类,笔者感觉这样写比较麻烦。所以我的第一步就是从新封装Video类。让这个类和另外2个类封装到一起。好了这个封装的类放到了一个名为playermedia的文件夹内,代码如下:

 

.这就是我封装的类!其中用到另外一个回调函数的类!我们将来编写回调函数的类,这个类放到一个名为playermedia的文件夹内,代码如下

 好了!这个类中我们又引出了两个工具类!分别是用来计算视频宽高和视频时间的类!我们将在后面两节中编写这两个工具类!

下面我们来编写这个负责计算视频时间的工具类!这个类放到一个名为mathpool的文件夹内,代码如下:

 

这个类是比较简单的!下节中我们将编写视频宽高的工具类!其中涉及到一个算法!大家要去自己琢磨了!

下面我们就来看看这个算法究竟是什么样子的!依然是放到mathpool文件夹下,代码如下:

 

脚本不算多,但是其中的算法很重要!好了!关于视频类我们都写完了!后面我们要编写有关界面的类了!最多的还是涉及到位置的变换!

 

       上一节中我们将视频类所需要的函数都写完了!本节开始我们来编写界面类!首先,我们要绘制我们所需要的一些界面元素,包括按钮等。我们就用截图的方式来向大家展示如何制作!

       这就是笔者做的界面元素,分别为他们设置连接,具体连接的名称是什么大家可以在下面的脚本中查到!这个界面类是放到一个名为playerinterface文件夹内的,代码如下:

 

好了!这里我们又引出一个工具类!用来计算界面元素位置的!我们下节中编写该类。

     这节我们来编写工具类!这个类放在名称为faceplace的文件夹内,代码如下:

 

好了!我们所有的自定义类都写完了!后面我们就来编写文档类!

      终于到最后了!激动人心的时刻到来了!我们已经准备好了我们所需要的类,现在要做的就是写一个文档类,将这些零散的类综合起来!好了!看文档类的代码如下:

      在FLA文件中将文档类改为Main,测试发布影片!~咦!怎么没有效果呢?别着急!我们这个FLV播放器是通过JS传递视频路径的,所以我们还需要一个HTML文件!下一节中我们再说!

前面我们已经完成了这个FLV播放器的代码编写阶段。接下来就是测试阶段了!我们写一个HTML文档!代码如下:

 

 

 

 

 

       为了测试方便,我们可以自己找一段网络上的视频地址写到这个HTML文档中,也可以在同目录文件夹下放置一个FLV视频!运行网页,我们就可以看到效果了!这里笔者将播放器的运行画面截图。

        这是播放器运行时候的画面!

 

       我们的FLV播放器做完了!不知道大家有什么感想?其实做这样的一个播放器并非非常困难!只要我们用心去做。就一定能做好!

       我这个播放器并不是非常的完美,其中可能还含有BUG!只是想起到一个抛砖引玉的作用!并不是让大家全班照抄来制作这样的播放器!

       由于时间比较仓促,感觉这个程序的耦合度还是比较高。以后我会继续完善,陆续发出更新版本的!希望大家留意我的博客!我会在第一时间将最新版本的源码奉献给大家!

最后让大家看一下这个工程文件夹(主要是了解一下文件的结构)

       很多人觉得这样将脚本复制一边有时候会出现错误!确实,为了方便大家学习,特意将这个源代码放到网上供大家下载!

点击下载

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值