`
nianshi
  • 浏览: 422094 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Flex3播放器(版本2)

    博客分类:
  • Flex
阅读更多

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

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml " layout="absolute" creationComplete="playinit()" width="500" height="400">


    <mx:Script>
    <![CDATA[
       import mx.events.SliderEvent;
       import mx.events.VideoEvent;
       import mx.collections.ArrayCollection;
       import mx.rpc.events.ResultEvent;
       import flash.display.Stage;
     
       private var _video:ArrayCollection;  
       private var isplaying:Boolean=false;     
       //private var video_url:String = "C:/video.flv";     
       private var playPosition:Number;     
       private var soundPosition:Number;
     
       private function readXml(event:ResultEvent):void{
       _video = event.result.videos.video;
             }  

       private function playinit():void{
        hs.enabled=false;
       }
     
       private function flvplay(event:Event):void{
            var query:String = ExternalInterface.call("window.location.search.substring", 1);
            if(query) {     
                    var pos:int = query.indexOf("=");
                    //Alert.show(String(pos));
                    if(pos != -1) {
                        var value:String = query.substr(pos+1);
                         }
                }
           
      flv_video.source="tef.flv";
       //flv_video.source="c:/vedio.flv";
        hs.enabled=true;
        if(isplaying){
         flv_video.pause();
         play_btn.label="播放"
        }else {
         flv_video.play();
         play_btn.label="暂停"
        }
        isplaying = !isplaying;
        flv_video.addEventListener(VideoEvent.PLAYHEAD_UPDATE, progressHandler);       
       }     
       private function progressHandler(event:VideoEvent):void{
        hs.value=flv_video.playheadTime;
       }
         
       private function thumbPress(event:SliderEvent):void{
        flv_video.pause();
       }
       private function thumbChanges(event:SliderEvent):void{
        if(flv_video.playheadTime == -1){
      hs.value = 0;
      return;
     }
        playPosition = hs.value;
       }     
       private function thumbRelease(event:SliderEvent):void{
        flv_video.playheadTime = playPosition;
        if(isplaying){
         flv_video.play();
        }else{
         flv_video.pause();
        }
       }
     
       private function sound_thumbChanges(event:SliderEvent):void{
        soundPosition = hs_sound.value;
       }        
       private function sound_thumbRelease(event:SliderEvent):void{
        flv_video.volume = soundPosition;
       }
     
       private function formatTimes(value:int):String{
        var result:String = (value % 60).toString();
      
          if (result.length == 1){
              result = Math.floor(value / 60).toString() + ":0" + result;
          } else {
              result = Math.floor(value / 60).toString() + ":" + result;
          }
          return result;
       }
     
            private function display():void
            {  
                if(fs.selected)  
                {  
                 stage.fullScreenSourceRect =new Rectangle(flv_video.x,flv_video.y,flv_video.width,flv_video.height);            
                   //stage.displayState="fullScreen";
                   stage.displayState =StageDisplayState.FULL_SCREEN;
                    application.width="100%";
                    application.height="100%"
                }
                else
                {  
                    //stage.displayState="normal";  
                    stage.displayState = StageDisplayState.NORMAL;
                }  
            }
           
    ]]>
    </mx:Script>
<mx:VideoDisplay   id="flv_video" x="0" width="100%" height="332" y="0" source="{Application.application.parameters.movie}" autoPlay="false" autoRewind="true" bufferTime="0.5" maintainAspectRatio="true" />
<mx:ApplicationControlBar height="20" width="100%" bottom="53" x="0" horizontalAlign="center">
   <mx:HSlider id="hs" fillColors="#000099,, #0000ff, #ffffff, #eeeeee" showTrackHighlight="true" minimum="0" maximum="{flv_video.totalTime}" thumbPress="thumbPress(event)" thumbRelease="thumbRelease(event)" change="thumbChanges(event)" width="90%" horizontalCenter="0"/>
</mx:ApplicationControlBar>
<mx:ApplicationControlBar width="100%" height="38" horizontalAlign="center" x="0" bottom="10">
   <mx:ApplicationControlBar width="123" cornerRadius="15">
    <mx:Button id="play_btn" click="flvplay(event)" label="播放" cornerRadius="13"/>
    <mx:Button id="stop_btn" label="停止" cornerRadius="13" click="flv_video.stop();play_btn.label='播放';hs.enabled=false;" />
   </mx:ApplicationControlBar>
   <mx:ApplicationControlBar width="94" cornerRadius="15">
    <mx:Label id="playtime" text="{formatTimes(flv_video.playheadTime)} : {formatTimes(flv_video.totalTime)}" color="#ffffff" width="77"/>
   </mx:ApplicationControlBar>
   <mx:ApplicationControlBar cornerRadius="15" width="100">
    <mx:HSlider id="hs_sound" width="82" minimum="0" maximum="1" thumbRelease="sound_thumbRelease(event)" change="sound_thumbChanges(event)" value="{flv_video.volume}" />
   </mx:ApplicationControlBar>
   <mx:ApplicationControlBar color="#EC968F">
    <mx:CheckBox label="全屏" id="fs" change="display();"/>
   </mx:ApplicationControlBar>
</mx:ApplicationControlBar>
</mx:Application>

 

<!--

其中播放器播放源文件的路径是默认安装FMS3.0之后在

C:\Program Files\Adobe\Flash Media Server 3\applications\vod\media 之中。调用方式是flv_video.source="rtmp://localhost/vod/vedio.flv";可以通过修改配置文件改变视频 存放目录


播放器的代码大多来自网上 只是有几点修改

第一 取得路径 由于安全机制 播放器只能通过服务器地址取值

第二 全屏问题
<param name="allowFullScreen" value="true" />
全屏时播放器大小不变
<mx:VideoDisplay   id="flv_video" x="0" width="100%" height="90%" y="0" source="{Application.application.parameters.movie}" autoPlay="false" autoRewind="true" bufferTime="0.5" maintainAspectRatio="false" />
width="100%" height="90%"十分重要 这将会与
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml " layout="absolute" creationComplete="playinit()" width="500" height="400">密切相关


最终解决方法
stage.fullScreenSourceRect =new Rectangle(flv_video.x,flv_video.y,flv_video.width,flv_video.height);
第三 播放flv视频时不留下缓存
http://etoaoo.iteye.com/blog/341345

这个版本中的基本功能都可以实现 但是最后发现一个巨大的问题

可以被嗅探 Replay Media Catcher

这个软件通过记录网络包 并且以相同网络包给FMS服务器发包 骗取服务器的数据 然后自己一段一段组装成流媒体视频 这个漏洞几乎宣布了项目的死刑

不过解决方案很快就出来了

分享到:
评论

相关推荐

    Flex MP3播放器

    3. **Flex SDK**:Flex开发工具包,包含了编译Flex应用所需的所有工具和库,包括Flex编译器和Flex框架库。 4. **MP3解码**:播放MP3文件需要对音频数据进行解码。Flex可能使用了第三方库或者内置的解码器来处理MP3...

    flex播放器

    12. **跨平台兼容性**:Flex播放器基于Flash技术,虽然随着HTML5的普及,Flash的使用逐渐减少,但仍然在某些场合下被使用,特别是对于老版本的浏览器或特定的嵌入式设备。 通过研究提供的“FlexPaly”压缩包,...

    一个flex的播放器

    在Flex中,组件通常作为AS3类来实现,具有构造函数、属性、方法等成员。这样的设计使得组件可以像其他对象一样被实例化、继承和扩展。 在"flex制作播放器有浅到深"的文件名列表中,我们可以推测这是一系列教程或者...

    flex 播放器 源码

    2. Flex组件模型:研究如何自定义和使用Flex提供的UI组件,如播放按钮、进度条等。 3. 媒体处理:学习如何加载、播放和控制多媒体文件,可能涉及到FLV、MP4等格式。 4. 事件驱动编程:掌握如何响应用户操作和播放...

    自己做的flex AIR MP3 播放器

    2. **ActionScript**:ActionScript是Adobe Flash和Flex平台的脚本语言,用于控制动画、视频和交互性。在Flex项目中,ActionScript用于编写业务逻辑和与用户的交互。 3. **MP3编码与解码**:播放MP3文件需要对音频...

    flex4做的MP3播放器

    3. **MX和Spark组件**: Flex4引入了Spark和MX两套组件集,Spark组件更加现代且可自定义,而MX组件则兼容早期版本。在播放器界面设计时,可能会使用Spark组件如Button、Slider等来实现播放、暂停、音量控制等功能。 ...

    flex音乐播放器

    2. **ActionScript 3**:ActionScript是Flash平台的核心编程语言,版本3是一个重大升级,支持面向对象编程,性能显著提升,语法更接近现代编程语言,使得开发更复杂的应用成为可能。 3. **MXML**:MXML是一种声明式...

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

    2. `.flexProperties`:这是Flex项目特有的配置文件,包含有关项目编译、源代码路径等信息。 3. `.project`:这是Eclipse项目的基本配置文件,定义了项目的构建路径和属性。 4. `.settings`:这是一个目录,包含项目...

    使用FLEX3创建一个简单的FLV播放器.rar

    在本文中,我们将深入探讨如何使用Adobe Flex 3框架创建...通过学习和实践这个“使用FLEX3创建一个简单的FLV播放器”的教程,开发者将对Flex 3的视频处理能力有更深入的理解,也能掌握构建自定义多媒体应用的基本技能。

    flex 播放器 源码 项目

    Flex播放器源码项目是一个基于Adobe Flex技术的多媒体播放器应用程序。Flex是ActionScript 3.0的一个开发框架,主要用于构建富互联网应用(RIA),它提供了丰富的用户界面组件和强大的数据服务支持。在这个项目中,...

    Flex Air音乐播放器源码

    Flex Air音乐播放器源码是基于Adobe Flex Builder 3开发的一款应用程序,主要使用ActionScript编程语言,这使得它能够在Adobe AIR(Adobe Integrated Runtime)平台上运行。Adobe Flex是用于构建富互联网应用程序...

    Flex3与flex4的区别

    首先,由于Flex4需要Flash Player 10的支持,确保应用程序针对此版本的播放器进行编译是至关重要的。其次,Flex4中的CSS字体选择器现在需要命名空间,这与Flex3不同。为了适应这一变化,开发者需要在CSS中添加命名...

    Flex 3开发指南

    - **视频和音频播放**:Flex 3增强了对多媒体的支持,可以直接在应用程序中嵌入视频和音频播放器,并且支持多种格式。 - **动画效果**:利用ActionScript 3.0,开发者可以轻松创建复杂的动画效果,提高应用程序的...

    Adobe Flex Builder 3 写的播放器

    这个播放器项目是使用Flex Builder 3 创建的,它利用了Adobe Flex框架和ActionScript编程语言来实现多媒体播放功能。让我们深入探讨一下这个项目的相关知识点。 1. **Adobe Flex**:Flex 是一个开源的、基于MXML和...

    简单的flex、flash播放器

    标题中的“简单的flex、flash播放器”指的是使用Adobe Flex技术和Flash技术开发的轻量级视频播放器。Flex是基于ActionScript 3.0的开放源码框架,用于构建富互联网应用程序(RIA),而Flash则是广泛用于创建动画和...

    Flex版Mp3播放器----大部分功能版二,后台

    Flex版的MP3播放器是一种基于Adobe Flex技术开发的多媒体应用程序,主要用来播放MP3音频文件。Flex是一种用于构建富互联网应用(RIA)的开放源代码框架,它使用ActionScript编程语言,允许开发者创建交互性强、用户...

    flex版的flv播放器源码

    1. **ActionScript 3.0**:这是AS2的升级版本,拥有更强大的面向对象特性、更高效的性能和更严格的类型检查。在Flex中,ActionScript 3.0用于编写业务逻辑和与用户界面交互的代码。 2. **Flex组件库**:Flex SDK...

    這是全flex寫的播放器

    标题中的“這是全flex寫的播放器”表明这个项目是一个完全使用Adobe Flex技术开发的视频播放器应用。Flex是基于ActionScript 3.0的开放源代码框架,用于构建富互联网应用程序(RIA)。它允许开发者使用MXML和...

    flex仿google播放器TOP100(改进版)

    【标题】"flex仿google播放器TOP100(改进版)"是一个基于Adobe Flex技术构建的项目,旨在模仿Google的音乐播放器界面,并且针对原版本进行了优化和升级。Flex是Adobe公司开发的一种用于创建富互联网应用程序(RIA)...

    Mp3播放器-源代码-java-flex

    《Mp3播放器-源代码-java-flex》是一个基于Adobe AIR技术的项目,旨在实现一个功能齐全的MP3播放器。这个项目使用了Java语言和Flex框架进行开发,展现了Adobe AIR平台的强大功能和跨平台特性。在Adobe Flash Builder...

Global site tag (gtag.js) - Google Analytics