`

flex两个netstream实现视频分段加载播放

    博客分类:
  • flex
 
阅读更多
<?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[
			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;
			}
			
		]]>
	</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="init();">
	<mx:Script>
		<![CDATA[
			
			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;

			private var count:int=0;
			private var finished1:int=1; //1:播放正在进行;0:播放结束
			private var finished2:int=0; //1:播放正在进行;0:播放结束

			private function init():void
			{

				var nsClient:Object={};

				nc=new NetConnection();
				nc.connect(null);

				ns=new NetStream(nc);
				ns.play(urlArr[count]);
				ns.client=nsClient;
				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 init2():void
			{

				var nsClient:Object={};

				nc2=new NetConnection();
				nc2.connect(null);
				ns2=new NetStream(nc2);
				ns2.play(urlArr[count]);
				ns2.client=nsClient;
				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();
					}
				}

			}
		]]>
	</mx:Script>
	<mx:VideoDisplay id="uic"
					 width="550"
					 height="450"/>

	<mx:ControlBar>
		<mx:Button label="Play/Pause"
				   click="ns.togglePause();"/>
		<mx:Button label="Rewind"
				   click="ns.seek(0); ns.pause();"/>
	</mx:ControlBar>
</mx:Panel>


分享到:
评论

相关推荐

    flex 视频播放

    Flex视频播放技术主要基于Adobe Flex框架,这是一种用于创建富互联网应用程序(RIA)的开源SDK,尤其在处理多媒体内容,如视频播放方面表现出色。Flash Builder 4是Adobe提供的集成开发环境(IDE),专为Flex和...

    flex 视频聊天 基于red5

    在"flex video.txt"文件中,可能包含了关于如何设置Flex项目、配置Red5服务器、建立RTMP连接、实现视频捕捉和播放、处理音频同步等相关步骤和代码示例。学习这些内容可以帮助开发者了解如何利用Flex和Red5构建一个...

    flex播放视频video调用示例

    1. **播放/暂停按钮**:可以添加按钮并监听`NetStream`的`playStatus`事件来实现播放和暂停功能。 2. **音量控制**:`NetStream.setVolume()`方法可以改变音量。 3. **全屏模式**:`Video`组件的`fullScreen`属性...

    Flex视频聊天室源码

    双向视频交流则意味着两个或多个用户可以同时看到彼此的视频。这需要更复杂的网络同步和资源管理。Flex中的NetStream类提供了多路复用的能力,允许同时处理多个视频流。此外,Flex还支持MediaStreamEvent类,用于...

    flex视频添加背景图片

    同时,利用其提供的加载事件和方法,我们可以实现更精细化的视频播放控制。这不仅增强了用户体验,也为开发者提供了更多定制和扩展的可能性。在实际项目中,根据具体需求,可以灵活运用这些知识来创建功能强大的视频...

    FM.rar_FluorineFx_flex_flex 视频_视频聊天

    在Flex应用中,我们可以使用Flash Player的NetStream类来处理视频流,它提供了播放、录制和广播视频的能力。而在服务器端,FluorineFx可以接收这些视频流,并根据需要进行转发或者存储。 此外,为了实现多用户视频...

    flex的视频播放器

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

    netStream视频结束判断

    netStream视频结束判断

    flex+fms实现视频直播源码

    Flex+FMS实现视频直播源码是一种基于Adobe Flex和Flash Media Server (FMS)技术的视频直播解决方案。这个项目提供了一个简单示例,演示了如何利用Flex进行摄像头和音频的捕获与录制,以及如何将这些内容实时推送到...

    flv打包下载 提供一个flv格式的视频和一个flex测试代码

    压缩包中的"flv打包下载-Flex学习用例"很可能是这样的一个示例项目,包含了一个演示如何在Flex应用程序中加载和播放FLV视频的源代码。通过查看和运行这个代码,学习者可以直观地了解上述过程,并学习如何在实际项目...

    视频播放器

    这个组件可以加载FLV、F4V格式的视频内容,并且可以与其他Flex组件进行集成,实现播放控制、全屏切换等功能。开发者可以通过ActionScript来控制播放、暂停、停止、快进、快退等操作。 【视频源】 在Flex视频播放器...

    Flex+Red5+Tomcat视频语音录制、播放

    Flex+Red5+Tomcat是一个常见的技术组合,用于构建实时的、交互式的视频和音频应用。这个组合将Adobe Flex作为前端开发工具,Red5作为流媒体服务器,而Tomcat则作为应用服务器。以下是对这个技术栈各个部分的详细解释...

    Flex FMS 发送和接收视频

    在这个“Flex FMS 发送和接收视频”的实例中,我们将深入探讨如何利用Flex技术和FMS进行视频的发送与接收。 1. **Flex框架介绍** Flex是一种基于ActionScript和MXML的开源框架,用于构建富互联网应用程序(RIA)。...

    flex_video_帮助

    Flex Video 通过 `flash.net.NetStream` 对象来处理网络流,实现视频数据的实时传输和播放。这使得 Flex Video 能够在不同的网络环境下提供稳定的服务。 ##### 6. 视频平滑度 为了提高视频播放的平滑度,Flash ...

    flash视频录制播放代码

    本项目涉及的核心知识点是“Flash视频录制播放代码”,这是使用Adobe Flex框架实现的一个功能,涵盖了Flash、Flex、视频录制以及FLV视频播放等多个领域。 1. **Flash**:Flash是一种创建交互式动画、多媒体内容和富...

    FLEX视频摄像头录制上传到服务器及FMS服务器的安装与配置

    在本文中,我们将深入探讨如何使用FLEX技术实现视频摄像头录制,并将录制的视频上传到FMS(Flash Media Server)服务器。首先,我们先来理解一下FLEX是什么以及它的核心功能。 FLEX全称为Flex Framework,是Adobe...

    flex视频播放器

    开发者通常会利用Flex提供的事件监听器来实现这些功能,例如`netStatus`事件可以用来检测视频的加载状态,`playheadUpdate`事件则用于跟踪播放进度。 在`player`文件夹下,可能包含了播放器的源代码,包括自定义的...

    配置blazdes整合flex视频

    4. **视频处理**: 了解如何在Flex中处理视频数据,包括使用`VideoDisplay`组件显示视频,以及`NetConnection`和`NetStream`对象来加载和播放视频。可能还会涉及视频编码格式(如FLV或MP4)和流媒体概念。 5. **集成...

    as3.0 flash 视频播放器

    5. **事件处理**:AS3.0的Event类和 IOErrorEvent类提供了丰富的事件,如视频加载完成(netstream.dataEOF)、播放结束(netstream.play.complete)等,通过添加事件监听器可以实现对这些事件的响应。 6. **用户...

Global site tag (gtag.js) - Google Analytics