免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 977 | 回复: 0
打印 上一主题 下一主题

基于Cairngorm框架的FLV播放器 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-22 08:54 |只看该作者 |倒序浏览
FLV播放器是一种专用于播放FLV格式视频的播放器,FLV是时下最流行的播放格式,其特点是压缩比高、文件容量小、支持渐进式缓冲播放等。Flex4.0中的VideoDisplay组件专用于播放Flv格式视频。
一、前期准备
1.组织文件结构:
    图1(FLV播放器文件的组织结构)
 
2.导入Cairngorm框架
 
二、使用FlvModel类存储数据、状态及资源
FlvModel类继承与Cairngorm框架的ModelLocator,用以存储数据状态和资源,例如,当前播放的视频地址、是否为全频状态、图片资源等都存储于FlvModel类中。以下代码定义了FlvModel类。
  1. package com.xi.flvPlayer.model
  2. {
  3.     import com.adobe.cairngorm.model.ModelLocator;
  4.     import mx.controls.ToolTip;
  5.     
  6.     public class FlvModel implements ModelLocator
  7.     {
  8.         private static var flvModel:FlvModel=new FlvModel(); //定义FlvModel类实例flvModel
  9.         
  10.         public static function getInstance():FlvModel{ //获得FlvModel类的实例
  11.             return flvModel;
  12.         }
  13.         
  14.         public static var currVideo:String=""; //当前视频播放地址
  15.         public static var videoSource:String=""; //将要加载的视频地址
  16.         public static var isFullScreen:Boolean=false; //是否全屏状态
  17.         
  18.         /*---------------------------------图标资源----------------------------------*/
  19.         [Bindable]
  20.         [Embed(source="/assets/images/btn_moveover_break.png")]
  21.         public var btn_moveover_break:Class;
  22.         
  23.         [Bindable]
  24.         [Embed(source="/assets/images/btn_moveover_fullscreen.png")]
  25.         public var btn_moveover_fullscreen:Class;
  26.         
  27.         [Bindable]
  28.         [Embed(source="/assets/images/btn_moveover_play.png")]
  29.         public var btn_moveover_play:Class;
  30.         
  31.         [Bindable]
  32.         [Embed(source="/assets/images/btn_moveover_stop.png")]
  33.         public var btn_moveover_stop:Class;
  34.         
  35.         [Bindable]
  36.         [Embed(source="/assets/images/btn_normal_break.png")]
  37.         public var btn_normal_break:Class;
  38.         
  39.         [Bindable]
  40.         [Embed(source="/assets/images/btn_normal_fullscreen.png")]
  41.         public var btn_normal_fullscreen:Class;
  42.         
  43.         [Bindable]
  44.         [Embed(source="/assets/images/btn_normal_play.png")]
  45.         public var btn_normal_play:Class;
  46.         
  47.         [Bindable]
  48.         [Embed(source="/assets/images/btn_normal_stop.png")]
  49.         public var btn_normal_stop:Class;
  50.         
  51.         [Bindable]
  52.         [Embed(source="/assets/images/ico_break.png")]
  53.         public var ico_break:Class;
  54.     }
  55. }
static关键字表示静态变量。静态变量可直接存取,其他变量需要实例化后才能存取。以下代码存取FlvModel
类中的变量currVideo和btn_normal_play.
import com.xi.flvPlayer.model.*;
FlvModel.currVideo="34324";
t=FlvModel.getInstance().btn_normal_play;
 
三、使用FlvControl类监听事件
FlvControl类继承与Cairngorm框架的FrontControl类,用于监听CairngormEvent事件。习惯上,CairngormEvent事件的标识符字符串也都存储于前台控制器中。
以下代码定义了FlvControl类:
  1. package com.xi.flvPlayer.control
  2. {
  3.     import com.adobe.cairngorm.control.FrontController;
  4.     import com.xi.flvPlayer.commands.*;
  5.     public class FlvControl extends com.adobe.cairngorm.control.FrontController
  6.     {
  7.         public function FlvControl():void //构造函数
  8.         {
  9.             initialiseCommands();
  10.         }
  11.         
  12.         public function initialiseCommands():void{
  13.             addCommand(FlvControl.EVENT_OPEN_VIDEO,OpenVideoCommand);
  14.         }
  15.         
  16.         public static var EVENT_OPEN_VIDEO:String="openVideo"; //定义openVideo标识
  17.     }
  18. }
未完待续。。。
项目源码:
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP