Flex 连接 red5

最近公司要做视频研究了一下

Flex 入门看这个好了  http://www.ibm.com/developerworks/cn/web/wa-lo-flexdev/

现在我用FLEX 连接red5 应用

red5 是官方下载的,下载好后解压 启动red5.bat 就可以了


Flex 代码如下

<?xml version="1.0" encoding="utf-8"?> 
 
 
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
			   xmlns:s="library://ns.adobe.com/flex/spark" 
			   xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" applicationComplete="setTransformVolume()" >
	<fx:Declarations>
		  <!--将非可视元素(例如服务、值对象)放在此处  -->
		
		
		
	</fx:Declarations>
	
	<fx:Script>
		<![CDATA[
			
			import flash.display.*;  
			import flash.utils.*;  
			import flash.events.*;  
			import flash.net.*;  
			import flash.media.Video;  
			import flash.media.Camera;  
			
			
			import mx.events.SliderEvent;
			
			private var nc:NetConnection;  
			
			private var volumeTransform:SoundTransform;
			
			
		 
			private var ns:NetStream;
			private var nc2:NetConnection;
			private var ns2:NetStream;
			private var video:Video;
			
			private var videoURL:String = "1403169253407.flv"; 
			
			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 volumeChangeHandler(event:SliderEvent):void {
				volumeTransform.volume = slider.value;
				ns.soundTransform = volumeTransform;
				ns2.soundTransform = volumeTransform;
			}
			
			
			
			private function init():void{  
				nc = new NetConnection();  
				 
				nc.connect("rtmp://23,23,23,23/oflaDemo");
				//nc.client = this;
				nc.addEventListener(NetStatusEvent.NET_STATUS,connectHandler); 
				nc.addEventListener(SecurityErrorEvent.SECURITY_ERROR,securityErrorHandler)
			
			}  
			
			
			//public function onBWDone():void{
			
			//}
			
			private function securityErrorHandler(event:SecurityErrorEvent):void {   
				trace("securityErrorHandler: " + event);   
			}  
			
			private function connectHandler(evt:NetStatusEvent):void{  
				
				switch (evt.info.code) {   
					case "NetConnection.Connect.Success":   
						//connectStream();   
						
						var ns:NetStream = new NetStream(nc);  
						
						ns.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler2);   
						//ns.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler2);
						
						var video:Video=new Video() ;  
						video.width = 313;  
						video.height = 194;  
						video.attachNetStream(ns);  
						ns.play("1403169253407.flv");  //注意路径要对,我用的是默认例子,不要加streams
						videoDisplay.addChild(video);  
						
						break;   
					case "NetStream.Play.StreamNotFound":   
						trace("Unable to locate video: " + videoURL);   
						break;   
				}   
				
			
				
			}  
			
			
			private function netStatusHandler2(evt:NetStatusEvent):void{  
				
				switch (evt.info.code) {   
					case "NetConnection.Connect.Success":   
						//connectStream();   
					 
						trace("Unable to locate video: " + videoURL);
						break;   
					case "NetStream.Play.StreamNotFound":   
						trace("Unable to locate video: " + videoURL);   
						break;   
				}   
				
				
				
			}
		]]>
	</fx:Script>
 
 
	
	
	<mx:Panel x="132" y="78" width="356" height="266" layout="absolute" title="现场直播1" fontSize="14">  
		<mx:VideoDisplay x="10" y="10" width="320" height="193" id="videoDisplay"/>  
		<mx:HSlider id="slider"
					minimum="0.0"
					maximum="1.0"
					snapInterval="0.1"
					tickInterval="0.1"
					liveDragging="true" x="14" y="175" width="121" height="24"/>
		
	</mx:Panel>  
	<mx:Button y="357" label="点击我连接Red5" fontSize="11" fontWeight="normal" horizontalCenter="-297" click="setTransformVolume()"/>
</s:Application>  


播放的时候汇报


Error #2044: 未处理的 AsyncErrorEvent:。 text=Error #2095: flash.net.NetConnection

无法调用回调 onBWCheck。 error=ReferenceError: Error #1069: 在 flash.net.NetConnection 上找不到属性 onBWCheck,且没有默认值。

,暂时不知道怎么解决,点击全部取消

 



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
package chat; import org.red5.server.adapter.ApplicationAdapter; import org.red5.server.api.IConnection; import org.red5.server.api.IClient; import org.red5.server.api.IScope; import org.red5.server.api.Red5; import org.red5.server.api.service.IServiceCapableConnection; import org.red5.server.api.so.ISharedObject; import org.red5.server.api.ScopeUtils; import org.red5.server.api.so.ISharedObjectService; import org.red5.server.api.*; import org.red5.server.api.scheduling.*; import org.red5.samples.components.ClientManager; import org.red5.server.api.service.ServiceUtils; import org.red5.server.api.service.*; import org.red5.server.api.service.IPendingServiceCallback; // import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import java.util.*; // // public class Application extends ApplicationAdapter{ public Map<String, CClient> clients = new HashMap<String, CClient>(); public class CClient{ String id = null; String pseudo = null; String role = null; String sexe = null; String status = null; String room=null; String world=null; public String getRole(){ return role; } public String getName(){ return pseudo; } public String getId(){ return id; } public String getSexe(){ return sexe; } public String getStatus(){ return status; } public String getRoom(){ return room; } public String getWorld(){ return world; } public void setRole(String _role){ role = _role; } public void setPseudo(String _pseudo){ pseudo = _pseudo; } public void setSexe(String _sexe){ sexe = _sexe; } public void setId(String _id){ id = _id; } public void setStatus(String _status){ status = _status; } public void setRoom(String _room){ room = _room; } public void setWorld(String _world){ world = _world; } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值