- 浏览: 1068100 次
- 性别:
- 来自: 长沙
文章分类
- 全部博客 (639)
- 服务器配置篇 (58)
- hibernate篇 (14)
- spring篇 (33)
- struts篇 (28)
- JS篇 (46)
- 其他技术篇 (46)
- 数据库集群配置 (6)
- JAVA基础相关 (48)
- 分布式框架HadHoop的应用 (2)
- FLEX篇 (8)
- SQLSERVER技术 (32)
- Android学习 (13)
- amchart学习笔记 (1)
- openfire+smark搭建即时通讯 (9)
- Linux学习 (18)
- Oracle数据库 (15)
- 网站优化技术 (12)
- mysql数据库 (2)
- 项目学习总结 (18)
- 工具类(JAVA) (12)
- 工具类(JS) (2)
- 设计模式 (10)
- Lucene学习 (24)
- EJB3学习 (6)
- Sphinx搜索引擎 (3)
- 工作中用到的软件小工具 (5)
- .NET (49)
- JAVA 连接SQLSERVER2008步骤 (1)
- MongoDB (19)
- Android手机开发 (3)
- Maven (6)
- vue (9)
- Shiro (4)
- mybatis (3)
- netty框架 (1)
- SpringCloud (3)
- spring-cloud (7)
- Git (1)
- dubbo (2)
- springboot (13)
- rocketmq (1)
- git学习 (2)
- kafka服务器 (2)
- linux (10)
- WEB系统辅助项目 (1)
- jenkins (2)
- docker (4)
- influxdb (3)
- python (2)
- nginx (1)
最新评论
-
jiangfuofu555:
这样数据量大,效率怎么样?
sqlserver 实现分页的前台代码 以及后台的sqlserver语句 -
w156445045:
博主请问下,如何做到实时的刷新呢,
另外我后台是Java 谢谢 ...
web 版本的汽车仪表盘,非常好看。还有各种图形 -
jackyin5918:
<transportConnector name=&qu ...
ActiveMQ的activemq.xml详细配置讲解 -
握着橄榄枝的人:
你这个不是spring1.x的吧
spring1.x使用AOP实例 -
xiaophai:
全乱套了!
openfire+spark搭建完美的及时通讯
一边录像,一边看。其实这就是现在视频的真谛。red5也可以实现这个功能,代码很简单,不过写了很久。。。。。
- <?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://192.168.61.115/red5_app";
- private var play_url:String = "rtmp://192.168.61.115/red5_app";
- private var nc_play:NetConnection = null;
- private var ns_play:NetStream = null;
- private var video_play:Video = null;
- private var videoName:String = ""; //视频保存名字
- private function init():void{
- //nc = new NetConnection();
- setupCameraAndMic();
- }
- private function setupCameraAndMic():void{
- camera = Camera.getCamera();
- if(camera != null){
- camera.addEventListener(StatusEvent.STATUS,cameraStatus);
- camera.setMode(128,96,12);
- camera.setQuality(0,100);
- video = new Video();
- video.width = 128;
- video.height = 96;
- video.attachCamera(camera);
- recordVideo.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){
- begin.enabled = true;
- //error_label.text = error_label.text + "1";
- }else{
- //error_label.text = error_label.text + " 无法找到摄像头"
- }
- //camera.removeEventListener(StatusEvent.STATUS,cameraStatus);
- }
- /* 好像麦克风没法检测,测试过拔掉麦克风,但是没效果 */
- private function micStatus(event:StatusEvent):void{
- if(!mic.muted){
- begin.enabled = true;
- //error_label.text = error_label.text + "2";
- }else{
- //error_label.text = error_label.text + " 无法找到麦克风";
- }
- //mic.removeEventListener(StatusEvent.STATUS,micStatus);
- }
- /*点击 开始录像 按钮*/
- private function clickStartRecord():void{
- nc = new NetConnection();
- nc.addEventListener(NetStatusEvent.NET_STATUS,nsHandler);
- nc.connect(rtmp_url); //连接red5
- //doRecord();
- }
- private function nsHandler(evt:NetStatusEvent):void{
- if(evt.info.code == "NetConnection.Connect.Success"){ //如果连接成功
- //error_text.text = evt.info.code;
- doRecord();
- }else{
- Alert.show("连接失败");
- }
- }
- /*开始录像*/
- private function doRecord():void{
- if(video != null){
- video.clear();
- recordVideo.removeChild(video);
- video = new Video();
- video.width = 128;
- video.height = 96;
- video.attachCamera(camera);
- recordVideo.addChild(video);
- }
- ns = new NetStream(nc);
- ns.attachCamera(camera);
- ns.attachAudio(mic);
- videoName = "vincent_"+Math.random()+getTimer();
- ns.publish(videoName,"record");
- begin.enabled = false;
- end.enabled = true;
- doPlay();
- }
- function doPlay():void{
- nc_play = new NetConnection();
- nc_play.addEventListener(NetStatusEvent.NET_STATUS,ncPlayHandler);
- nc_play.connect(play_url);
- //playVideo.source = play_url+videoName+".flv";
- //error_text.text = ;
- }
- private function ncPlayHandler(evt:NetStatusEvent):void{
- if(evt.info.code == "NetConnection.Connect.Success"){ //如果连接成功
- error_text.text = evt.info.code;
- //error_text.text = "4"
- ns_play = new NetStream(nc_play);
- /*这里我曾经迷惑了很久,记得这个videoName是不带flv后缀的,如果带了那就是不行了*/
- ns_play.play(videoName);
- //error_text.text = "5"
- video_play = new Video();
- video_play.width = 320;
- video_play.height = 240;
- video_play.attachNetStream(ns_play);
- playVideo.addChild(video_play);
- //error_text.text = "6"
- }else{
- Alert.show("连接失败");
- }
- }
- private function clickend():void{
- ns.close();
- //nc.close();
- video.clear();
- ns_play.close();
- //nc_play.close();
- video_play.clear();
- recordVideo.removeChild(video);
- begin.enabled = true;
- end.enabled = false;
- init();/*重新初始化Camera,否则Camera会默认使用完了,不再显示图像*/
- }
- ]]>
- </mx:Script>
- <mx:Panel x="264" y="362" width="167" height="157.6" layout="absolute">
- <mx:VideoDisplay x="9" y="10" width="128" height="96" id="recordVideo"/>
- </mx:Panel>
- <mx:Button x="73" y="495.6" enabled="false" label="开始视频" fontSize="12" id="begin"
- click="clickStartRecord()"/>
- <mx:Button x="178" y="495.6" enabled="false" label="结束视频" fontSize="12" id="end"
- click="clickend()"/>
- <mx:Panel x="73" y="47" width="358" height="307" layout="absolute">
- <mx:VideoDisplay x="9" y="10" width="320" height="240" id="playVideo"/>
- </mx:Panel>
- <mx:Text x="73" y="372" id="error_text" text="Text" width="183" height="53.6"/>
- <!--
- <mx:TextInput x="73" y="433" id="playName" fontSize="12"/>
- <mx:Button x="73" y="463" label="播放" id="playButton" fontSize="12" click="doPlay();"/>
- -->
- </mx:Application>
发表评论
-
Windows下安装并设置Redis
2017-11-28 14:23 635版权声明:欢迎加入【开源技术交流群】: https:// ... -
由于安全狗导致网站访问出现302重定向问题
2015-08-06 18:14 1709网站开始的时候,碰到这种问题,开始没留意以为是浏览器导致的。后 ... -
windows下使用memcache并修改memcache最大使用内存
2015-02-27 22:42 781将memcache服务器安装包解压到C:\memcached ... -
nginx 日志文件切割
2014-12-13 08:23 839转载:http://www.cnblogs.com/beni ... -
nginx+tomcat7+memcached做集群以及session复制
2014-12-07 22:50 751首先:配置tomcat集群 nginx+ tomcat7 ... -
Memcached入门
2014-11-27 23:17 794Memcached是一个高性能的分布式内存对象缓存系统,用于 ... -
nginx + tomcat 配置,静态资源直接使用nginx
2014-11-26 22:34 982upstream tomcat_server { ... -
Nginx Location配置总结
2014-11-26 22:33 819语法规则: location [=|~|~*|^~] /ur ... -
Memche全站缓存
2014-11-13 17:23 930http://my249645546.iteye.com/bl ... -
煩惱的“java.lang.OutOfMemoryError:PermGen space"異常
2014-11-10 20:48 679最近在做一個jee的項目 ... -
nginx+tomcat实现负载均衡
2014-11-05 22:00 938作者:niumd Blog:http://ari.itey ... -
Tomcat 7优化前及优化后的性能对比
2014-11-05 09:52 1100Tomcat 7在我们日常开发、测试、生产环境都会使用到,但 ... -
resin 加花生壳搭建外网访问服务器
2012-10-08 20:44 1083花生壳发布WEB服务 -
resin 配置session过期
2012-03-23 10:29 1511Session的配置 <session ... -
nginx 解决session共享问题(jvm-route)方式
2012-02-28 13:45 2729前几天看到 http://code.google.com ... -
nginx.conf配置详细说明
2012-02-28 09:15 1321vim conf/nginx.conf#用户 用户组user ... -
nginx 解决session共享问题
2012-02-28 09:19 14521) 不使用session,换作cookie能把sessio ... -
java.lang.NoClassDefFoundError: com/caucho/make/PersistentDependency
2012-02-28 08:09 1778之前一直用resin-pro-3.0.22,这两天由于工作需要 ... -
玩玩负载均衡---在window与linux下配置nginx
2012-02-27 14:29 1427最近有些时间,开始接触负载均衡方面的东西,从硬件F5再到Cit ... -
squid 配置缓存服务器
2011-12-31 13:40 1616Squid for Windows 简介 是大家也许不知道, ...
相关推荐
这篇文档是针对四年级下册英语学习的一份自学卡,主要涵盖了第五单元 "bread and write" 的内容。这个单元的重点是学习与衣物相关的词汇和句型,以及掌握正确的书写规范。 1. 单词和短语的学习:文档列出了一系列...
9. **软件包管理**:介绍不同Linux发行版的软件包管理系统,如Red Hat的yum和Debian的apt,以及如何安装、更新和卸载软件。 10. **系统监控与维护**:讲述如何查看系统状态,进行性能分析,以及日常的系统维护工作...
后5章介绍的是Red Hat Enterprise Linux Advanced Server 4系统中的各种安装方式、基本网络属性配置、网络连接的创建与配置、用户和组群管理、文件系统管理、磁盘系统管理、DNS/DHCP/Apache HTTP服务器配置、RPM和...
1. **操作系统**:Red Hat Linux 9.0或更高版本。 2. **手机**:支持CDMA 1X的手机,如文中提到的X339等型号。 3. **USB数据线**:用于连接手机和电脑的数据线。 #### 三、准备工作 确保手机支持CDMA 1X并能够通过...
enum colors {red, green, blue}; ``` #### 四、字符串&&转义字符 ##### 4.1 字符串 字符串是由多个字符组成的序列。在C语言中,字符串通常表示为字符数组,结尾处包含一个空字符`\0`。例如: ```c char str[] ...
《我与Linux的故事》这篇征文不仅记录了作者个人与Linux的不解之缘,更是展现了整个Linux社区的精神面貌。Linux的出现和普及,不仅仅是一个技术现象,更是一种文化现象。它代表了一种对知识的渴望、对技术的热爱和对...
这篇文档是针对湘少版三年级英语下册第三四单元的期末复习资料,旨在帮助学生巩固和测试这两个单元的重要词汇和句子。复习的重点集中在颜色和衣物相关的词汇,以及询问颜色和确认物品归属的句型。 在第三单元中,...
这篇文档标题为 "sight+s+表格+例句版.doc",显然是一份用于学习英语词汇和句型的材料,特别关注的是简单的单词(sight words)和它们在句子中的应用。这些单词通常是儿童早期阅读时最常遇到的,因此学习它们能帮助...
这篇笔记涵盖了C语言和Linux基础,适合初学者和自学者。笔记主要分为以下几个知识点: 1. **Linux硬盘分区**: - 主分区和扩展分区的总数不超过4个,其中扩展分区最多1个。 - 逻辑分区从5开始,理论上没有数量...
【Python完全新手教程】这篇文档是为初学者准备的Python编程入门指南,由作者taowen和billrice编写。教程分为几个课时,首先讲解如何准备学习Python的环境。 在【 Lesson 1】中,作者提供了Python的下载地址,并...
本篇笔记是斑码教育sy101课程的第一天内容,主要围绕CSS(Cascading Style Sheets)展开,旨在帮助初学者系统地理解并掌握网页样式设计的基础知识。 一、CSS简介 CSS,即层叠样式表,是用于控制网页元素样式的一种...
这篇资料是针对七年级英语上册 Unit 1 My name’s Gina period 2的学习方案,主要适用于山西省灵石县第二中学的新版人教新目标版教材。这个单元主要围绕自我介绍、互相问候以及询问第三方姓名展开。 学习内容包含了...
这篇资料主要涵盖了初中英语Unit4“I used to be afraid of the dark”的核心词汇和表达,这个单元主要探讨了过去的行为和习惯以及个人的变化。以下是详细的知识点解析: 1. **过去常常做某事**:used to do sth. ...