<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
creationComplete="init()">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
private var nc:NetConnection = null; //定义一个网络连接
private var ns:NetStream = null; //定义一个网络流
private var video:Video = null; //定义一个录像
private var camera:Camera = null;//定义一个摄像头
private var mic:Microphone; //定义一个麦克风
private var rtmp_url:String = "rtmp://localhost/SOSample";
private var videoName:String = ""; //视频保存名字
//初始化Camera和mic
private function init():void{
setupCameraAndMic();
}
private function setupCameraAndMic():void{
camera = Camera.getCamera();
if(camera != null){
camera.addEventListener(StatusEvent.STATUS,cameraStatus);
camera.setMode(320,240,30); //设置录像的大小
camera.setQuality(0,70);
video = new Video();
video.width = 320;
video.height = 240;
video.attachCamera(camera);
videoPlay.addChild(video);
}
mic = Microphone.getMicrophone();
if(mic != null){
mic.addEventListener(StatusEvent.STATUS,micStatus);
mic.setSilenceLevel(0,-1); //设置麦克风保持活动状态并持续接收集音频数据
mic.gain = 80; //设置麦克风声音大小
}
}
/*摄像头*/
private function cameraStatus(event:StatusEvent):void{
if(!camera.muted){
startRecord.enabled = true;
}else{
error_label.text = error_label.text + " 无法找到摄像头"
}
}
/* 麦克风*/
private function micStatus(event:StatusEvent):void{
if(!mic.muted){
startRecord.enabled = true;
}else{
error_label.text = error_label.text + " 无法找到麦克风";
}
}
/*点击 开始录像 按钮*/
private function clickStartRecord():void{
nc = new NetConnection();
nc.addEventListener(NetStatusEvent.NET_STATUS,nsHandler);
nc.connect(rtmp_url); //连接red5
}
/*连接*/
private function nsHandler(evt:NetStatusEvent):void{
if(evt.info.code == "NetConnection.Connect.Success"){ //如果连接成功
doStart();
}else{
Alert.show("连接失败");
}
}
/*开始录像*/
private function doStart():void{
if(video != null){
video.clear();
videoPlay.removeChild(video);
video = new Video();
video.width = 320;
video.height = 240;
video.attachCamera(camera); //录像和摄像头相连
videoPlay.addChild(video);
}
ns = new NetStream(nc);
ns.attachCamera(camera);
ns.attachAudio(mic);
videoName = "video_"+Math.random()+getTimer(); //视频的名字 video_0.1212323211323243
ns.publish(videoName,"record");
startRecord.enabled = false;
stopRecord.enabled = true;
}
private function clickStopRecord():void{
ns.close();
video.clear();
videoPlay.removeChild(video);
startRecord.enabled = true;
stopRecord.enabled = false;
init();//重新初始化Camera
}
]]>
</mx:Script>
<!-- 摄像面板 -->
<mx:Panel x="213" y="175" width="360.5" height="301" layout="absolute">
<mx:VideoDisplay x="10" y="10" width="320" height="240" id="videoPlay"/>
</mx:Panel>
<mx:Button x="270" y="498" label="开始录像" id="startRecord"
click="clickStartRecord()" enabled="false"/>
<mx:Button x="432" y="498" label="停止录像" id="stopRecord"
click="clickStopRecord()" enabled="false"/>
<mx:Label text="" x="213" y="544" width="360.5" height="25"
id="error_label" fontSize="12"/>
</mx:Application>
分享到:
相关推荐
"phoneCamera_摄像头录像代码_视频_"这个标题暗示了我们讨论的是一个关于利用编程实现手机摄像头录像功能的项目。这个项目可能包括一套跨平台的解决方案,允许在不同操作系统(如Android和iOS)上后台录制视频,并将...
在Android平台上,调用...以上就是关于“Android调用摄像头录像代码”的核心知识点。实际开发中,还需要结合具体的项目需求和设备特性进行优化和调整。通过理解和应用这些概念,你能够构建出一个功能完善的录像应用。
以下是对"Android视频录像代码"这个主题的详细解析: 1. **MediaRecorder类**:MediaRecorder是Android SDK中的一个关键类,它负责处理多媒体数据的录制,包括视频和音频。通过设置一系列参数,如输入源、编码格式...
本文将深入探讨“屏幕录像代码”这一主题,解析其背后的编程原理和核心技术。 首先,屏幕录像程序的核心任务是捕捉屏幕上的动态画面,并将其转化为连续的视频流。在本案例中,该程序使用了MFC(Microsoft ...
在C#编程环境中,开发海康摄像头的实时截屏和录像功能主要涉及到计算机视觉和视频流处理技术。这里,我们主要关注的是如何利用WinForm应用和C#来实现这一目标。WinForm是.NET Framework中的一个用户界面框架,适用于...
屏幕录像模块是软件开发中的一个重要组成部分,特别是在教育、游戏、软件演示等领域,它允许用户记录他们的屏幕活动并保存为视频文件。在这个特定的案例中,我们关注的是一个使用C#编程语言实现的屏幕录像模块。C#是...
Android 息屏录像,锁屏情况下可以实现无时间限制录像,一个apk 两个入口,可以使用前摄像头录像,也可以使用后摄像头息屏录
总的来说,FFmpeg是一个功能丰富的工具,对于Windows上的USB摄像头录像需求,它提供了灵活且高效的解决方案,不仅可以录制视频,还能进行音频处理、字幕叠加等多种操作。通过熟练掌握FFmpeg的命令行参数,你可以根据...
屏幕录像软件是用于捕获计算机屏幕上发生的活动并将其录制为视频文件的应用程序。在C#编程语言中,我们可以利用各种库和技术来实现这样的功能。本文将深入探讨如何使用C#来开发屏幕录像软件。 首先,我们需要理解...
本篇将深入讲解如何通过自定义代码实现Android录像功能,包括摄像头预览、视频录制、录像计时、视频文件播放以及视频缩略图的获取。 首先,让我们从摄像头预览开始。在Android中,我们通常会使用`Camera`类来访问...
C#+屏幕录像+源代码C#+屏幕录像+源代码C#+屏幕录像+源代码C#+屏幕录像+源代码C#+屏幕录像+源代码C#+屏幕录像+源代码
这个是用来修改炫wu时代游戏录像代码的,以前经常玩修改代码,为了方便就写了这个软件,现在游戏不怎么玩了,也就没有再更新使用了。 我不是易语言 的大神,只能算是新手吧,所以代码写的比较笨,其实可以精简很多...
VC++6.0 控制摄像头源代码,采用 DirectxShow 效率很高,和大家共享,希望对大家有帮助! (VC++6.0 to control the camera source code, using DirectxShow efficient, and share, we want to help!)
这个源码项目"Android应用源码之android 使用javacv进行录像[模仿vine]"是针对Android平台的一个实例,展示了如何利用`JavaCV`库来实现类似Vine(一款短视频分享应用)的录像功能。在这个项目中,开发者将学习到如何...
"大华硬盘录像测试源代码" 指的是来自大华公司的一段用于测试硬盘录像功能的源代码。大华是一家知名的安防设备制造商,其产品包括视频监控系统,硬盘录像机(DVR)是其中的重要组成部分。这里的“硬盘录像”指的是将...
在Android平台上,开发一个远程视频监控系统涉及到多个关键知识点,主要涵盖了拍照、录像、监控以及录屏等功能。这里,我们围绕“安卓拍照上传录像监控录屏相关-基于android手机的远程视频监控系统”这一主题,深入...
屏幕录像源代码是一种用于捕获和记录计算机屏幕上活动的技术,通常用于制作教程、演示或游戏录制。本项目基于Visual Studio 2015 PRE开发,它利用了Windows Media Encoder(WMEncoder)技术来实现视频编码和保存。...
本项目"屏幕录像C#原代码"专注于利用C#进行屏幕捕获和录像的实现。 在C#中,屏幕录像主要涉及以下几个关键知识点: 1. **WinAPI调用**:Windows API(应用程序接口)提供了底层的系统函数,如`GetDesktopWindow()`...
在本资源中,我们关注的是一个基于Visual C++实现的屏幕录像程序的完整源代码。Visual C++是一款由Microsoft开发的集成开发环境,它支持使用C++语言进行Windows应用程序的开发,包括使用MFC(Microsoft Foundation ...