FLEX利用FLASH MEDIA SERVER进行视频的在线录制和回放
2009-03-21 14:03
671 查看
安装好fms后,在Flash Media Server 2\applications目录下建立test文件夹,重新启动fms。
编写录制和回放的代码:
录制程序和界面:
xml 代码
xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
import mx.controls.Spacer;
import flash.net.*;
import flash.events.*;
import flash.utils.*;
import flash.media.Camera;
import flash.media.Microphone;
import mx.controls.*;
//import mx.core.UIComponent;
//由于fms使用的是amf0而flex2中的as3默认使用的是amf3.所以要让flex使用AFM0
NetConnection.defaultObjectEncoding = flash.net.ObjectEncoding.AMF0;
//定义一个连接
public var netConnection:NetConnection;
//定义一个本地视频
public var localVideo:Video;
//定义一个输出流
public var outStream:NetStream = null;
//定义一个摄像头
public var camera:Camera;
//定义一个麦克风
public var microphone:Microphone;
//应用程序初始化
public function initCamera():void
{
//初始化连接
netConnection = new NetConnection();
//为连接添加状态监听器
netConnection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
//为连接添加安全错误监听器
netConnection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
//定义一个视频持有人
//var videoHolder:UIComponent = new UIComponent();
//初始化本地视频
localVideo = new Video();
//将本地视频添加到持有人
//videoHolder.addChild(localVideo);
//设置本地视频的位置
myVideo.addChild(localVideo);
localVideo.x = 0;
localVideo.y = 0;
localVideo.width = 640;
localVideo.height = 480;
//连接到服务器
netConnection.connect("rtmp://localhost/test");
}
private function netStatusHandler(event:NetStatusEvent):void
{
outStream = new NetStream(netConnection);
camera = Camera.getCamera();
camera.setMode(640,480,30);
microphone = Microphone.getMicrophone();
localVideo.attachCamera(camera);
outStream.attachCamera(camera);
outStream.attachAudio(microphone);
outStream.publish("testVideo","record");
Alert.show(event.info.code);
}
private function securityErrorHandler(event:SecurityErrorEvent):void
{
Alert.show("securityErrorHandler: " + event);
}
]]>
mx:Script>
<mx:VideoDisplay id="myVideo" x="0" y="0" height="240" width="320" creationComplete="initCamera();"/>
mx:Application>
回放程序和界面:
xml 代码
xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
import mx.controls.Spacer;
import flash.net.*;
import flash.events.*;
import flash.utils.*;
import flash.media.Camera;
import mx.controls.*;
//由于fms使用的是amf0而flex2中的as3默认使用的是amf3.所以要让flex使用AFM0
NetConnection.defaultObjectEncoding = flash.net.ObjectEncoding.AMF0;
//定义一个连接
public var netConnection:NetConnection;
//定义一个本地视频
public var localVideo:Video;
//定义一个输入流
public var inStream:NetStream = null;
//应用程序初始化
public function initCamera():void
{
//初始化连接
netConnection = new NetConnection();
//为连接添加状态监听器
netConnection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
//为连接添加安全错误监听器
netConnection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
//连接到服务器
netConnection.connect("rtmp://localhost/test");
}
private function netStatusHandler(event:NetStatusEvent):void
{
//Alert.show(event.info.code);
switch (event.info.code)
{
case "NetConnection.Connect.Failed":
//Alert.show("连接失败!!");
case "NetConnection.Connect.Success":
connectStream();
break;
case "NetStream.Play.StreamNotFound":
//Alert.show("Stream not found: " + "rtmp://localhost/myapp");
break;
}
}
private function securityErrorHandler(event:SecurityErrorEvent):void
{
//Alert.show("securityErrorHandler: " + event);
}
private function connectStream():void
{
inStream = new NetStream(netConnection);
inStream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
inStream.addEventListener(AsyncErrorEvent.ASYNC_ERROR,streamErrorHandler);
//初始化本地视频
localVideo = new Video();
//设置本地视频的位置
localVideo.x = 0;
localVideo.y = 0;
localVideo.width = 640;
localVideo.height = 480;
localVideo.attachNetStream(inStream);
inStream.play("testVideo");
myVideo.addChild(localVideo);
}
private function streamErrorHandler(event:AsyncErrorEvent):void
{
//Alert.show(event.error.message);
}
]]>
mx:Script>
<mx:VideoDisplay id="myVideo" x="0" y="0" height="640" width="480" creationComplete="initCamera();"/>
mx:Application>
--------------------------
新闻:
微软网页开发调试利器SuperPreview(附下载)
导航:
博客园首页
知识库
新闻
招聘
社区
小组
博问
网摘
找找看
编写录制和回放的代码:
录制程序和界面:
xml 代码
xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
import mx.controls.Spacer;
import flash.net.*;
import flash.events.*;
import flash.utils.*;
import flash.media.Camera;
import flash.media.Microphone;
import mx.controls.*;
//import mx.core.UIComponent;
//由于fms使用的是amf0而flex2中的as3默认使用的是amf3.所以要让flex使用AFM0
NetConnection.defaultObjectEncoding = flash.net.ObjectEncoding.AMF0;
//定义一个连接
public var netConnection:NetConnection;
//定义一个本地视频
public var localVideo:Video;
//定义一个输出流
public var outStream:NetStream = null;
//定义一个摄像头
public var camera:Camera;
//定义一个麦克风
public var microphone:Microphone;
//应用程序初始化
public function initCamera():void
{
//初始化连接
netConnection = new NetConnection();
//为连接添加状态监听器
netConnection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
//为连接添加安全错误监听器
netConnection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
//定义一个视频持有人
//var videoHolder:UIComponent = new UIComponent();
//初始化本地视频
localVideo = new Video();
//将本地视频添加到持有人
//videoHolder.addChild(localVideo);
//设置本地视频的位置
myVideo.addChild(localVideo);
localVideo.x = 0;
localVideo.y = 0;
localVideo.width = 640;
localVideo.height = 480;
//连接到服务器
netConnection.connect("rtmp://localhost/test");
}
private function netStatusHandler(event:NetStatusEvent):void
{
outStream = new NetStream(netConnection);
camera = Camera.getCamera();
camera.setMode(640,480,30);
microphone = Microphone.getMicrophone();
localVideo.attachCamera(camera);
outStream.attachCamera(camera);
outStream.attachAudio(microphone);
outStream.publish("testVideo","record");
Alert.show(event.info.code);
}
private function securityErrorHandler(event:SecurityErrorEvent):void
{
Alert.show("securityErrorHandler: " + event);
}
]]>
mx:Script>
<mx:VideoDisplay id="myVideo" x="0" y="0" height="240" width="320" creationComplete="initCamera();"/>
mx:Application>
回放程序和界面:
xml 代码
xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
import mx.controls.Spacer;
import flash.net.*;
import flash.events.*;
import flash.utils.*;
import flash.media.Camera;
import mx.controls.*;
//由于fms使用的是amf0而flex2中的as3默认使用的是amf3.所以要让flex使用AFM0
NetConnection.defaultObjectEncoding = flash.net.ObjectEncoding.AMF0;
//定义一个连接
public var netConnection:NetConnection;
//定义一个本地视频
public var localVideo:Video;
//定义一个输入流
public var inStream:NetStream = null;
//应用程序初始化
public function initCamera():void
{
//初始化连接
netConnection = new NetConnection();
//为连接添加状态监听器
netConnection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
//为连接添加安全错误监听器
netConnection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
//连接到服务器
netConnection.connect("rtmp://localhost/test");
}
private function netStatusHandler(event:NetStatusEvent):void
{
//Alert.show(event.info.code);
switch (event.info.code)
{
case "NetConnection.Connect.Failed":
//Alert.show("连接失败!!");
case "NetConnection.Connect.Success":
connectStream();
break;
case "NetStream.Play.StreamNotFound":
//Alert.show("Stream not found: " + "rtmp://localhost/myapp");
break;
}
}
private function securityErrorHandler(event:SecurityErrorEvent):void
{
//Alert.show("securityErrorHandler: " + event);
}
private function connectStream():void
{
inStream = new NetStream(netConnection);
inStream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
inStream.addEventListener(AsyncErrorEvent.ASYNC_ERROR,streamErrorHandler);
//初始化本地视频
localVideo = new Video();
//设置本地视频的位置
localVideo.x = 0;
localVideo.y = 0;
localVideo.width = 640;
localVideo.height = 480;
localVideo.attachNetStream(inStream);
inStream.play("testVideo");
myVideo.addChild(localVideo);
}
private function streamErrorHandler(event:AsyncErrorEvent):void
{
//Alert.show(event.error.message);
}
]]>
mx:Script>
<mx:VideoDisplay id="myVideo" x="0" y="0" height="640" width="480" creationComplete="initCamera();"/>
mx:Application>
--------------------------
新闻:
微软网页开发调试利器SuperPreview(附下载)
导航:
博客园首页
知识库
新闻
招聘
社区
小组
博问
网摘
找找看
相关文章推荐
- 二、采用Flash Media Server3.5对视频进行流式处理
- Flex在线录制视频并回放(源码)
- 使用Flash Media Server(FMS)录制mp4格式的视频
- Flex在线录制视频并回放(源码)
- 使用Flash Media Server(FMS)录制mp4格式的视频
- Flex在线录制视频并回放(源码)
- Flex与.NET互操作(十三):FluorineFx.Net实现视频录制与视频回放
- 使用FMS 4.5(Flash Media Server 4.5) 搭建视频直播(HLS)
- flash media server播放实时视频流
- Flex与.NET互操作(十三):FluorineFx.Net实现视频录制与视频回放
- FMS4.5 (Flash media server)视频服务器安装和配置以及pomelo聊天室的调用
- Flash Video DRM 视频版权保护技术 – Flash Access & Flash Media Server
- Flex与.NET互操作(十三):FluorineFx.Net实现视频录制与视频回放
- 利用Flash获取摄像头视频进行动态捕捉
- Flex与.NET互操作(十三):FluorineFx.Net实现视频录制与视频回放
- Flash Media Server 起步(4)视频,流。。。
- FME(flash media encoder)发布音视频使用fms录制
- 在线转flv+flash在线录制视频
- FLEX入门实例——结合FMS3在线录制FLV视频
- 利用Flash获取摄像头视频进行动态捕捉