最近公司要做视频研究了一下
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,且没有默认值。
,暂时不知道怎么解决,点击全部取消