读书人

flex NetStream动态加载视频利用Sound

发布时间: 2012-09-12 09:21:30 作者: rapoo

flex NetStream动态加载视频利用SoundTransform控制音量

<?xml version="1.0" encoding="utf-8"?><!-- http://blog.flexexamples.com/2008/03/01/displaying-a-video-in-flex-using-the-netconnection-netstream-and-video-classes/ --><mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"layout="vertical"verticalAlign="middle"backgroundColor="white"viewSourceURL="srcview/index.html" xmlns:local="*"initialize="init();"><mx:Script><![CDATA[import mx.controls.Alert;private var urlArr:Array=["http://221.122.36.143/oa/video/1.flv", "http://221.122.36.143/oa/video/2.flv", "http://221.122.36.143/oa/video/p2.mp4"];public function init():void{myVideo.urlArr = urlArr;myVideo.total = 100000;//Alert.show("1==>>"+myVideo.urlArr.length);}]]></mx:Script><local:mVideo id="myVideo"/></mx:Application>第二个文件<?xml version="1.0" encoding="utf-8"?><mx:Panel xmlns:mx="http://www.adobe.com/2006/mxml"  creationComplete="setTransformVolume();"><mx:Script><![CDATA[import mx.controls.Alert;import mx.events.SliderEvent;private var nc:NetConnection;private var ns:NetStream;private var nc2:NetConnection;private var ns2:NetStream;private var video:Video;[Bindable]public var urlArr:Array=null;[Bindable]public var total:Number=0;private var count:int=0;private var finished1:int=1; //1:播放正在进行;0:播放结束private var finished2:int=0; //1:播放正在进行;0:播放结束private var volumeTransform:SoundTransform;private function setTransformVolume():void{volumeTransform=new SoundTransform();slider.value = volumeTransform.volume;slider.tickInterval = slider.snapInterval;slider.liveDragging = true;slider.addEventListener(Event.CHANGE, volumeChangeHandler);init();}private function init():void{Alert.show("" + total);var nsClient:Object={};nc=new NetConnection();nc.connect(null);ns=new NetStream(nc);ns.play(urlArr[count]);ns.client=nsClient;ns.soundTransform=volumeTransform;ns.addEventListener(NetStatusEvent.NET_STATUS, myTest1);video=new Video();video.name="video1";video.width=uic.width;video.height=uic.height;video.attachNetStream(ns);if (uic.getChildByName("video1") != null){uic.removeChild(uic.getChildByName("video1"));}count++;}private function volumeChangeHandler(event:SliderEvent):void {volumeTransform.volume = slider.value;ns.soundTransform = volumeTransform;ns2.soundTransform = volumeTransform;}private function init2():void{var nsClient:Object={};nc2=new NetConnection();nc2.connect(null);ns2=new NetStream(nc2);ns2.play(urlArr[count]);ns2.client=nsClient;ns2.soundTransform=volumeTransform;ns2.addEventListener(NetStatusEvent.NET_STATUS, myTest2);video=new Video();video.name="video2";video.width=uic.width;video.height=uic.height;video.attachNetStream(ns2);if (uic.getChildByName("video2") != null){uic.removeChild(uic.getChildByName("video2"));}count++;}private function myTest1(event:NetStatusEvent):void{trace("count1==>>" + count);trace("count1 onStatus:" + event.info.code);if (event.info.code == "NetStream.Buffer.Full"){if (count == 1){uic.addChild(video);init2();}if (finished2 == 1){ns.seek(0);ns.pause();}}else if (event.info.code == "NetStream.Play.Stop"){finished1=0;finished2=1;uic.addChild(video);ns2.togglePause();if (count <= urlArr.length){init();}}}private function myTest2(event:NetStatusEvent):void{trace("count2==>>" + count);trace("count2 onStatus:" + event.info.code);if (event.info.code == "NetStream.Buffer.Full"){if (finished1 == 1){ns2.seek(0);ns2.pause();}}else if (event.info.code == "NetStream.Play.Stop"){finished2=0;finished1=1;uic.addChild(video);ns.togglePause();if (count <= urlArr.length){init2();}}}public function stopVideo():void{uic.stop();}]]></mx:Script><mx:VideoDisplay id="uic" width="550" height="450" volume="{slider.value}"/><mx:ControlBar><mx:HSlider id="slider"minimum="0.0"maximum="1.0"snapInterval="0.1"tickInterval="0.1"liveDragging="true"/><mx:Button label="Play/Pause"   click="uic.play();"/><mx:Button label="Rewind"   click="stopVideo();"/></mx:ControlBar></mx:Panel>

读书人网 >flex

热点推荐