zoukankan      html  css  js  c++  java
  • Flex2款简单FLV播放器很经典

     网上找到2款比较简单的VideoDisplay实例应用,很精简但很经典。

     第一款:普通播放器,包括Play,Stop,Pause,进程拖拽显示,声音调整,全屏等功能

    主要是playheadTime,VideoEvent.PLAYHEAD_UPDATE,volume的应用

    1. <?xml version="1.0" encoding="utf-8"?>  
    2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="playinit()" width="500" height="400">  
    3.   
    4.     <mx:Script>  
    5.     <!--[CDATA[  
    6.        import mx.events.SliderEvent;  
    7.        import mx.events.VideoEvent;  
    8.        import flash.display.Stage;  
    9.         
    10.        private var isplaying:Boolean=false;        
    11.        private var video_url:String = "video/happy.flv";        
    12.        private var playPosition:Number;        
    13.        private var soundPosition:Number;  
    14.         
    15.        private function playinit():void{  
    16.         hs.enabled=false;  
    17.        }  
    18.         
    19.        private function flvplay(event:Event):void{  
    20.         flv_video.source=video_url;  
    21.         hs.enabled=true;  
    22.         if(isplaying){  
    23.          flv_video.pause();  
    24.          play_btn.label="播放"  
    25.         }else {  
    26.          flv_video.play();  
    27.          play_btn.label="暂停"  
    28.         }  
    29.         isplaying = !isplaying;   
    30.         flv_video.addEventListener(VideoEvent.PLAYHEAD_UPDATE, progressHandler);          
    31.        }        
    32.        private function progressHandler(event:VideoEvent):void{  
    33.         hs.value=flv_video.playheadTime;  
    34.        }   
    35.             
    36.        private function thumbPress(event:SliderEvent):void{  
    37.         flv_video.pause();  
    38.        }  
    39.        private function thumbChanges(event:SliderEvent):void{  
    40.         if(flv_video.playheadTime == -1){  
    41.       hs.value = 0;  
    42.       return;  
    43.      }  
    44.         playPosition = hs.value;  
    45.        }        
    46.        private function thumbRelease(event:SliderEvent):void{  
    47.         flv_video.playheadTime = playPosition;  
    48.         if(isplaying){  
    49.          flv_video.play();  
    50.         }else{  
    51.          flv_video.pause();  
    52.         }  
    53.        }  
    54.         
    55.        private function sound_thumbChanges(event:SliderEvent):void{  
    56.         soundPosition = hs_sound.value;  
    57.        }           
    58.        private function sound_thumbRelease(event:SliderEvent):void{  
    59.         flv_video.volume = soundPosition;  
    60.        }  
    61.         
    62.        private function formatTimes(value:int):String{  
    63.         var result:String = (value % 60).toString();  
    64.          
    65.           if (result.length == 1){  
    66.               result = Math.floor(value / 60).toString() + ":0" + result;  
    67.           } else {  
    68.               result = Math.floor(value / 60).toString() + ":" + result;  
    69.           }  
    70.           return result;  
    71.        }  
    72.         
    73.             private function display():void   
    74.             {     
    75.                 if(fs.selected)     
    76.                 {     
    77.                     stage.displayState="fullScreen";  
    78.                     application.width="100%";  
    79.                     application.height="100%";  
    80.                 }  
    81.                 else{     
    82.                     stage.displayState="normal";     
    83.                 }     
    84.             }   
    85.               
    86.     ]]-->  
    87.     </mx:Script>  
    88. <mx:VideoDisplay   id="flv_video" x="0" width="100%" height="100%" y="0" autoPlay="true" autoRewind="true"/>  
    89. <mx:ApplicationControlBar height="20" width="100%" bottom="67" x="0" horizontalAlign="center">  
    90.    <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"/>  
    91. </mx:ApplicationControlBar>  
    92. <mx:ApplicationControlBar width="100%" height="49" horizontalAlign="center" x="0" bottom="10">  
    93.    <mx:ApplicationControlBar width="123" cornerRadius="15">  
    94.     <mx:Button id="play_btn" click="flvplay(event)" label="播放" cornerRadius="13"/>  
    95.     <mx:Button id="stop_btn" label="停止" cornerRadius="13" click="flv_video.stop();play_btn.label='播放'; hs.enabled=false;" />  
    96.    </mx:ApplicationControlBar>  
    97.    <mx:ApplicationControlBar width="94" cornerRadius="15">  
    98.     <mx:Label id="playtime" text="{formatTimes(flv_video.playheadTime)} : {formatTimes(flv_video.totalTime)}" color="#ffffff" width="77"/>  
    99.    </mx:ApplicationControlBar>  
    100.    <mx:ApplicationControlBar cornerRadius="15" width="100">  
    101.     <mx:HSlider id="hs_sound" width="82" minimum="0" maximum="1" thumbRelease="sound_thumbRelease(event)" change="sound_thumbChanges(event)" value="{flv_video.volume}" />  
    102.    </mx:ApplicationControlBar>  
    103.    <mx:ApplicationControlBar color="#EC968F">  
    104.     <mx:CheckBox label="全屏" id="fs" change="display();"/>  
    105.    </mx:ApplicationControlBar>  
    106. </mx:ApplicationControlBar>   
    107. </mx:Application>  
     

    第二款:外加提示点播放器

    主要是cuePointManagerClass的应用。

    1. <?xml version="1.0" encoding="utf-8"?>  
    2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" backgroundColor="#FFFFFF"  
    3.         creationComplete="srv.send()"  
    4.         currentState="{vd.playing?'videoPlaying':''}">  
    5.         <mx:states>  
    6.                 <mx:State name="videoPlaying">  
    7.                         <mx:SetProperty target="{panel}" name="width" value="652"/>  
    8.                 </mx:State>  
    9.         </mx:states>  
    10.         <mx:Script>  
    11.                 <!--[CDATA[  
    12.                         import mx.collections.ArrayCollection;  
    13.                         import mx.events.CuePointEvent;  
    14.                           
    15.                         private function cuePointHandler(event:CuePointEvent):void  
    16.                         {  
    17.                                 caption.text = event.cuePointName;  
    18.                         }  
    19.                           
    20.                         private function changeHandler():void  
    21.                         {  
    22.                                 vd.cuePointManager.removeAllCuePoints()  
    23.                                 vd.cuePoints = ArrayCollection(list.selectedItem.cuePoint).source;  
    24.                         }  
    25.                           
    26.                 ]]-->  
    27.         </mx:Script>  
    28.           
    29.         <mx:HTTPService id="srv" url="question.xml"/>  
    30.           
    31.         <mx:Panel title="Frequently Asked Questions" layout="absolute" x="20" y="20" width="320" height="282" id="panel" horizontalScrollPolicy="off"  
    32.                 resizeEffect="Resize">  
    33.                   
    34.                 <mx:List id="list" dataProvider="{srv.lastResult.questions.question}" labelField="text"  
    35.                         change="changeHandler()" left="0" top="0" bottom="0" width="310"/>  
    36.                 <mx:VideoDisplay id="vd" source="{list.selectedItem.video}" height="240" autoPlay="true"   
    37.                         cuePointManagerClass="mx.controls.videoClasses.CuePointManager" cuePoint="cuePointHandler(event)"   
    38.                         top="1" left="311" width="320"/>  
    39.                 <mx:Button label="Stop" click="vd.stop()" x="566" y="8"/>  
    40.           
    41.                 <mx:Text id="caption" x="320" y="200" color="#FFFFFF" fontWeight="bold" height="40" width="320"/>  
    42.         </mx:Panel>  
    43.           
    44. </mx:Application>  
     

    question.xml

    1. <?xml version="1.0" encoding="utf-8"?>  
    2. <questions>  
    3.         <question>  
    4.                 <text>Who can apply?</text>  
    5.                 <video>video/happy.flv</video>  
    6.                 <cuePoint time="1" name="We accept students from a variety of programs"/>  
    7.                 <cuePoint time="6" name="If your institution is not accredited"/>  
    8.                 <cuePoint time="8.5" name="Contact department before applying"/>  
    9.         </question>  
    10.         <question>  
    11.                 <text>How are applications evaluated?</text>  
    12.                 <video>video/happy1.flv</video>  
    13.                 <cuePoint time="1" name="We take a number of factors into account"/>  
    14.                 <cuePoint time="6" name="GPA below 3.0?"/>  
    15.                 <cuePoint time="8.5" name="Contact department before applying"/>  
    16.         </question>  
    17.         <question>  
    18.                 <text>When should I provide financial information?</text>  
    19.                 <video>video/happy2.flv</video>  
    20.                 <cuePoint time="1" name="Financial information is not required until you have been accepted"/>  
    21.                 <cuePoint time="6" name="Graduate school will send list of required documents"/>  
    22.                 <cuePoint time="11" name="No need to send financial information until you have been accepted "/>  
    23.         </question>  
    24. </questions>  
     


  • 相关阅读:
    [tip]build x86+x64 parrelly for your VS solution
    float double的内存表示及比较大小的方法
    [Problem 13]欧拉
    Interface Project
    [复习]内存对齐
    [tip]VS online Gallery in Extention Manager
    [Problem 14]欧拉
    “火柴棍式”程序员面试题打破惯性思维
    [复习]时间复杂度及计算
    ModuleCatalog配置文件
  • 原文地址:https://www.cnblogs.com/nianshi/p/1734609.html
Copyright © 2011-2022 走看看