[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移植和简单介绍
**************************************************************************************************** ...
随机推荐
- SpringBoot整合ActiveMQ快速入门
Spring Boot 具有如下特性: 为基于 Spring 的开发提供更快的入门体验 开箱即用,没有代码生成,也无需 XML 配置.同时也可以修改默认值来满足特定的需求. 提供了一些大型项目中常见的 ...
- 高性能Web服务器Nginx的配置与部署研究(12)应用模块之Memcached做文件缓存时压缩引起的问题
在上一篇文章中,提到的Nginx的Memcached模块应用场景,主要是作为文件缓存.然后就发现了一个问题,当以字节数组方式缓存较大的文件时,缓存数据会被压缩,从而在读取的时候出现问题. (本文欢迎转 ...
- 小程序动态生成二维码,生成image图片
前端: <image src="{{img_usrl}}" style="width:100%;height:104px;" bindlongtap=&q ...
- android用户登录验证
转自https://www.cnblogs.com/android-blogs/p/5912585.html
- int类型与char类型的转换
---------siwuxie095 Java对char类型的数据在底层是按int类型来处理的 (只是显示出来仍然是字符型) 1.int类型与char ...
- Java-集合条件筛选
import java.lang.reflect.Field; import java.lang.reflect.Modifier; import java.util.ArrayList; impor ...
- 软件测试流程(Test Flow)
Bug Status Definition Bug Management Process Outline Bug Severity&Priority Criteria Definition
- p2319 [HNOI2006]超级英雄
传送门 分析 从1道m进行匹配,找到第一个不能继续匹配的点即可 代码 #include<iostream> #include<cstdio> #include<cstri ...
- layer使用注意事项
ajax一定要设置为异步
- [Training Video - 6] [File Reading] [Java] Read Properties file
package com.file.properties; import java.io.FileInputStream; import java.util.Properties; public cla ...