`
madfroghe
  • 浏览: 125150 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Flash/Flex学习笔记(5):制作基于xml数据源的flv视频播放器

阅读更多

步骤:

1.Flash CS4 中 先拖一个"FLVPlayback"组件到舞台上

注:FLVPlayback本身已经具备了flv播放的基本功能,简单设置下属性就能播放视频了

2.加载xml数据源

xml数据源格式如下:

 
<?xml version="1.0" encoding="utf-8"?>

 
<data>

 
<item flv="flv地址1" photo="缩略图1" url="点击路径1" name="名称1"></item>

 
<item flv="flv地址2" photo="缩略图2" url="点击路径2" name="名称2"></item>        

 
...

 
</data>

 

ActionScript加载XML的核心代码:

var _xml:XML ;//声明一个XML类型的变量,用于后面接收数据

 
var _urlReq:URLRequest = new URLRequest();

 
_urlReq.url="xml文件地址";

 
var _loader:URLLoader=new URLLoader(_urlReq);//(异步)开始加载xml

 
_loader.addEventListener(Event.COMPLETE,loadCompleted);//配置加载完成后的回调函数

//加载完成后的处理函数

function loadCompleted(e:Event):void {

_xml=XML(_loader.data);

for each (var item in _xml.item) {

trace(item.@flv + "," + item.@photo + "," + item.@url + "," + item.@name});//AS中用@来访问xml节点元素的属性

}   

}

3.将TileList组件与xml数据绑定起来

TileList有点类似于Silverlight中的WrapPanel,在"Flash/Flex学习笔记(2):捕获摄像头"中最下面的截图列表就是TileList组件的应用,关于它的使用不重复贴代码了

至于tileList与xml的绑定,主要是通过DataProvider来完成

关键As3源代码:

import fl.events.ListEvent;

import fl.video.VideoEvent;

import fl.video.VideoProgressEvent;

 

lblDebug.visible = false; //关闭调试

flv1.play();//先默认播放第一个

var _xml:XML ;

var _urlReq:URLRequest = new URLRequest();  
_urlReq.url="xml文件地址";

var _loader:URLLoader=new URLLoader(_urlReq);

_loader.addEventListener(Event.COMPLETE,loadCompleted);

var _dp:DataProvider = new DataProvider();
var _currentIndex:uint=0;

function loadCompleted(e:Event):void {

_xml=XML(_loader.data);

for each (var item in _xml.item) {

_dp.addItem({flv:item.@flv,source:item.@photo,url:item.@url,name:item.@name});

}

if (_dp.length>0) {

playflv(_currentIndex);

flv1.addEventListener(VideoEvent.COMPLETE,playCompleted);

flv1.addEventListener(VideoEvent.BUFFERING_STATE_ENTERED,buffered);

flv1.addEventListener(VideoEvent.STOPPED_STATE_ENTERED,stopEntered);

flv1.addEventListener(VideoEvent.PAUSED_STATE_ENTERED,pauseEntered);

flv1.addEventListener(VideoEvent.PLAYING_STATE_ENTERED,playingEntered);

flv1.addEventListener(VideoProgressEvent.PROGRESS,progressHandler);

}

}

 

lst1.dataProvider=_dp;

lst1.addEventListener(ListEvent.ITEM_CLICK,clickBaby);

//点击宝贝时,播放对应的视频

function clickBaby(e:ListEvent) {

_currentIndex=e.index;

//trace(_currentIndex);

playflv(_currentIndex);

}

//播放完成后,插放下一个

function playCompleted(e:VideoEvent) {

 
trace("播放完成:" + e);

playflv(_currentIndex + 1);

}

function buffered(e:VideoEvent){

/*trace("缓冲中..." + e);

lblDebug.text = "缓冲中...";   */

flv1.playWhenEnoughDownloaded();

}

 
function stopEntered(e:VideoEvent){

//trace("已停止...");

//lblDebug.text = "已停止...";

}

function pauseEntered(e:VideoEvent){

//trace("已暂停...");

//  lblDebug.text = "已暂停...";

pause1.visible = true;

}

function playingEntered(e:VideoEvent){

//trace("播放中...");

//  lblDebug.text = "播放中...";

pause1.visible = false;

}

function progressHandler(e:VideoProgressEvent){

//trace(e);

//flv1.playWhenEnoughDownloaded();

//trace("缓冲时间:" + flv1.bufferTime);

//trace("flv1.buffering=" + flv1.buffering + ",flv1.paused=" + flv1.paused)

if (flv1.buffering || flv1.paused){//这个地方有点问题,会使用户的点击暂停失效(目前还没找到因“网速过慢导致进入缓冲的自动暂停” 与“用户自主点击暂停”如何用代码区分)

flv1.playWhenEnoughDownloaded();

}

}

//播放指定索引的视频

function playflv(flvIndex:uint) {

//trace("flvIndex=" + flvIndex + ",_currentIndex=" + _currentIndex);

if (flvIndex>=_dp.length) {

flvIndex=0;

}

var item:Object=_dp.getItemAt(flvIndex);

flv1.load(item.flv);    

flv1.play();

pause1.visible = false;

_currentIndex=flvIndex;

lst1.scrollToIndex(_currentIndex);

}

stop();

<script type="text/javascript"></script>

分享到:
评论

相关推荐

    XML视频播放器源码

    XML视频播放器源码是一种基于XML(可扩展标记语言)技术的媒体播放解决方案,它能够播放FLV(Flash Video)、MP3(音频格式)以及SWF(ShockWave Flash)文件。这种播放器的优势在于它的灵活性和自定义能力,因为XML...

    FDT-flash/flex devtoolkit for eclipse.

    FDT(Flash Development Tool)是一款专为Adobe Flash和Flex开发者设计的集成开发环境(IDE),它基于Eclipse平台,提供了高效、专业的开发工具和服务。FDT的出现极大地提升了Flash和Flex应用的开发效率,尤其是在...

    基于flex的flv简易播放器

    【基于Flex的FLV简易播放器】是一种使用Adobe Flex Builder开发的简单视频播放器应用程序,主要针对FLV格式的视频内容。Flex是基于ActionScript 3.0的开放源代码框架,用于构建富互联网应用程序(RIA)。在这个...

    flex/Flash开发系列书籍:WEB3D应用研究

    flex/Flash开发系列书籍:基于FLASH的WEB3D应用研究

    Flash/Flex 框架应用 Cairngorm、Mate、PureMVC以及Swiz 的典型例子

    附件是关于 Flash/Flex 几个重要框架 Cairngorm、Mate、PureMVC以及Swiz 的典型例子,由 Tony Hillerson 提供 Homepage: http://insideria.com

    RTMP直播例子--基于FLASH/FLEX(含源代码) 下载

    在这个“RTMP直播例子--基于FLASH/FLEX(含源代码) 下载”中,我们可以深入探讨RTMP直播的基本原理、FLEX编程以及如何在实际项目中应用这些技术。 首先,RTMP协议的工作原理是通过建立一个持久性的TCP连接,允许...

    flash播放器源码FLV视频播放器,可完全用脚本控制的flex flash播放器源码

    本文将深入解析标题“flash播放器源码FLV视频播放器,可完全用脚本控制的flex flash播放器源码”以及相关描述所涉及的知识点。 首先,FLV(Flash Video)是一种流媒体格式,它被设计用于在网络上传输和播放视频内容...

    flash/flex画曲线,绘图板

    在IT行业中,Flash/Flex是一种基于ActionScript编程语言和Adobe Flex框架的开发工具,用于创建交互式的、富媒体的Web应用程序。"Flash/Flex画曲线,绘图板"这个主题涉及的是如何使用这些技术来创建一个允许用户自由...

    Flex实现了一个FlV格式的视频播放功能

    Flex是Adobe公司开发的一种基于ActionScript 3.0的开源框架,主要用于构建富互联网应用程序(RIA)。在Flash Player或Adobe AIR环境下运行,Flex为开发者提供了强大的UI组件库和编程模型,使得创建交互式、高性能的...

    flex中tree的数据源是xml

    ### Flex中Tree的数据源是XML 在Flex应用开发过程中,我们常常需要用到树形结构(Tree)来展示分层数据。为了使数据呈现更加灵活且高效,通常会采用XML作为数据交换格式,这是因为XML具备良好的可读性和扩展性,...

    Flex Tree 通过Arraycollection转化为XML数据源,新增、删除、修改功能的整合

    本篇文章将聚焦于如何将ArrayCollection转换为XML数据源,并实现Flex Tree组件的新增、删除和修改功能。以下是详细的解释和步骤。 首先,ArrayCollection是Flex中常用的数据结构,它是一个动态数组,支持数据绑定和...

    基于flex3的flv播放器FXVideo源码

    FXVideo是基于Flex3开发的一个FLV视频播放器,提供了网页上的视频播放功能。这个源码是完全开源的,意味着开发者可以深入研究其内部机制,学习如何在Flex环境中实现视频播放,并根据需求进行定制。 1. **Flex3 基础...

    flash/flex 的aqua皮肤

    Flex是基于ActionScript和MXML的开放源代码框架,它允许开发者构建可自定义的用户界面,而Flash则是其背后的动画和多媒体支持平台。在本话题中,我们将深入探讨“Flash/Flex的Aqua皮肤”。 Aqua皮肤是一种视觉样式...

    FLEX安装方法 集成到eclipse中

    FLEX 是一种基于 Adobe Flash 平台的 Rich Internet Application(RIA)开发框架。它提供了一个强大且灵活的开发环境,允许开发者快速构建跨平台、跨浏览器的 Rich Internet 应用程序。在本节中,我们将介绍如何安装...

    flex版的flv播放器源码

    9. **源码学习价值**:对于想学习Flex开发或者视频播放器实现的开发者来说,这个源码是一个很好的学习资源,可以深入理解如何使用Flex构建功能丰富的媒体应用。 通过研究这个Flex FLV播放器源码,开发者可以了解到...

    flex视频监控播放器

    Flex视频监控播放器是一种基于Adobe Flex技术的Web应用程序,它允许用户通过网页浏览器实时观看视频监控画面。Flex是一个开源框架,主要用于构建富互联网应用程序(RIAs),尤其在多媒体内容展示方面表现出色。在这...

    flex的视频播放器

    在本话题中,我们重点关注的是基于AIR的Flex视频播放器,它能够通过XML动态加载视频文件,实现更加灵活和定制化的视频播放体验。 首先,让我们深入理解Adobe AIR。AIR允许开发者利用Flex和Flash技术创建桌面应用,...

    flex学习笔记 flex学习总结 flex学习教程

    Flex是Adobe公司推出的一种用于构建富互联网应用程序(RIA)的技术,它基于ActionScript编程语言和Flex框架,可以创建交互性强、用户体验优秀的Web应用。本教程是作者精心编写的Flex学习资料,适合初学者入门,通过...

    基于H5的PC端视频播放器源码

    【基于H5的PC端视频播放器源码】是一个利用HTML5、CSS3以及JavaScript技术构建的网页视频播放器。这个播放器具有基础但实用的功能,包括调整音量、控制播放进度以及全屏播放,同时也涉及到如何精确计算视频的播放...

    flex 视频播放器,应用videodisplay

    本教程将深入探讨如何使用Flex中的`VideoDisplay`组件创建一个自定义的视频播放器,并实现播放位置控制、工具栏样式定制以及与JavaScript的数据交互。 一、`VideoDisplay`组件 `VideoDisplay`是Flex提供的用于展示...

Global site tag (gtag.js) - Google Analytics