[ActionScript 3.0] 结合FMS实现简单视频录制
首先在本机上安装Flash Media Server,简称FMS,在测试过程中window防火墙开启可能有影响,可先关闭防火墙,FMS安装好后检查相关服务有没有启动,若没有,可启动任务管理器,点击服务,将Flash Media Server(FMS) Flash Media
Administration Server FMSHttpd 手动启动,一切就绪后,把以下as类作为文档类,就可测试了。
package
{
import flash.display.Sprite;
import flash.events.NetStatusEvent;
import flash.events.StatusEvent;
import flash.media.Camera;
import flash.media.Microphone;
import flash.media.Video;
import flash.net.NetConnection;
import flash.net.NetStream; /**
* ...
* @author FrostYen
*/
public class Main extends Sprite
{
private var netConn:NetConnection;
private var netStream:NetStream;
private var camera:Camera;
private var video:Video;
private var rtmp:String;
private var microphpne:Microphone;
public function Main()
{
init();
} private function init():void
{
//初始化一个网络连接
netConn = new NetConnection ;
//为这个连接添加事件,这个事件有返回连接状态
netConn.addEventListener(NetStatusEvent.NET_STATUS,onNetStatus);
//这是连接的地址,其实就是在你FMS的安装目录里,Applications下新建一个yan的文件夹,录制的视频会保存在这个yan文件夹下自动生成的streams/_definst_文件夹下,
rtmp = "rtmp://127.0.0.1/yan/";
//开始连接
netConn.connect(rtmp);
//获取系统的microphone ;
microphpne = Microphone.getMicrophone();
microphpne.setLoopBack(true);
//获取系统的摄像头;
camera = Camera.getCamera();
if ((camera == null))
{
trace("未检测到摄像头");
}
else
{ //设定宽,高,以及帧频
camera.setMode(240,180,24);
//设定画面质量
//cam.setQuality(0,90);
video = new Video ;
video.attachCamera(camera);
this.addChild(video);
camera.addEventListener(StatusEvent.STATUS,onCameraStatus);
}
}
//重要说明: 当引用或者创建Camera和Microphone对象时,Flash Player 将显示“隐私”对话框,用户可从中选择是允许还是拒绝访问摄像头和麦克风。 请确保应用程序窗口大小至少为 215 x 138 像素,这是显示对话框所需的最小尺寸。
private function onCameraStatus(e:StatusEvent):void
{ //status:StatusEvent — 在摄像头报告其状态时调度。 如果 code 属性的值为“Camera.Muted”,则表示用户拒绝 SWF 文件访问其摄像头。 如果 code 属性的值为“Camera.Unmuted”,则表示用户允许 SWF 文件访问其摄像头。
switch (e.code)
{
case "Camera.Unmuted" ://Camera access was allowed break;
case "Camera.Muted" ://Camera access was denied break;
}
} private function onNetStatus(e:NetStatusEvent):void
{
//trace(e.info.code);
switch (e.info.code)
{
case "NetConnection.Connect.Success" :
trace("链接成功");
if ((netStream != null))
{
netStream.close();
}
//建立一个流,为以后的录制传输数据
netStream = new NetStream(netConn);
camera.setQuality(163854,100);
//设置视频质量;
netStream.attachCamera(camera);
//录制视频 ;
netStream.attachAudio(microphpne);
//录制声音 ;
//netStream.publish("videoName","live");//直播
//netStream.publish("videoName","append");//追加性录制
netStream.publish("videoName","record");
//覆盖性录制;
break;
case "NetConnection.Connect.Rejected" :
trace("没有权限");
break;
default :
trace("连接服务器失败");
}
} } }
[ActionScript 3.0] 结合FMS实现简单视频录制的更多相关文章
- iOS开发系列--音频播放、录音、视频播放、拍照、视频录制
--iOS多媒体 概览 随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制, ...
- iOS开发----音频播放、录音、视频播放、拍照、视频录制
随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制,还是对麦克风.摄像头的操 ...
- 音频播放、录音、视频播放、拍照、视频录制-b
随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制,还是对麦克风.摄像头的操 ...
- iOS音频播放、录音、视频播放、拍照、视频录制
随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制,还是对麦克风.摄像头的操 ...
- Flash+fms视频录制在项目中的实际应用
Flash+fms视频录制在项目中的实际应用 前言:以下只是记录本人在项目中的应用,而flash+fms视频录制有多种实现方式,具体可根据实际情况而定! 1:古人云:工欲善其事,必先利其器,首先安装f ...
- ActionScript 3.0 API 中的 Video 类
注:这个类在Flash流媒体开发中使用的很频繁,在此记录一下它的使用方法. 包 flash.media 类 public class Video 继承 Video DisplayObject Ev ...
- ActionScript 3.0入门:Hello World、文件读写、数据存储(SharedObject)、与JS互调
近期项目中可能要用到Flash存取数据,并与JS互调,所以就看了一下ActionScript 3.0,现把学习结果分享一下,希望对新手有帮助. 目录 ActionScript 3.0简介 Hello ...
- [转]ActionScript 3.0入门:Hello World、文件读写、数据存储(SharedObject)、与JS互调
本文转自:http://www.cnblogs.com/artwl/p/3396330.html 近期项目中可能要用到Flash存取数据,并与JS互调,所以就看了一下ActionScript 3.0, ...
- 嵌入式Linux下MP4视频录制库MP4V2移植和简单介绍
**************************************************************************************************** ...
随机推荐
- Perl 变量:数组变量
Perl 数组Perl 数组一个是存储标量值的列表变量,变量可以是不同类型.数组变量以 @ 开头.访问数组元素使用 $ + 变量名称 + [索引值] 格式来读取. 1.创建列表.数组1.数组变量以 @ ...
- VSS/RSS/PSS/USS
[VSS/RSS/PSS/USS] Android has a tool called procrank (/system/xbin/procrank), which lists out the me ...
- VUE,使用物理引擎Box2D设计类愤怒小鸟的击球游戏--基本架构设置
- 【bzoj2480】Spoj3105 Mod
2480: Spoj3105 Mod Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 557 Solved: 210[Submit][Status][ ...
- Action的三种编写方式
-------------------siwuxie095 Action 的三种编写方式 在 Struts2 的应用开发中,Action 作为框架的核心类,实现 对用户请求的处理,Action 类被称 ...
- APP安全之代码混淆防止反编译查看真实的头文件函数声明
现在有的公司对自己的爱屁屁(APP)安全上有重视,所以本篇讲一下代码混淆,即使别人反编译出来,也看不出来头文件的信息. 上菜: 1.首先安装class-dump,下载地址:http://steveny ...
- [C++] struct memory allocation
MAX-byte alignment (最大单位对齐) typedef struct user USER; typedef struct employee E; struct user{ ]; //t ...
- java 获取 获取某年某月 所有日期(yyyy-mm-dd格式字符串)
总结一些日期常用的代码,方便以后直接拿 <code> /** * java 获取 获取某年某月 所有日期(yyyy-mm-dd格式字符串) * @param year * @param m ...
- 设计模式(java的23种设计模式)
转自:leshui http://blog.csdn.net/leshui/article/details/11951 在java版看见了这篇文章,作者以轻松的语言比喻了java的32种模式,有很好的 ...
- RenderPage()加载局部页和传递数据
System.Web.WebPages.WebPageBase类的方法public override HelperResult RenderPage(string path, params objec ...