Flex 是一个高效、免费的开源框架,可用于构建具有表现力的 Web应用程序,这些应用程序利用Adobe Flash Player和Adobe AIR, 可以实现跨浏览器、桌面和操作系统。虽然只能使用 Flex 框架构建 Flex应用程序,但Adobe Flash Builder™(之前称为 Adobe Flex Builder™)软件可以通过智能编码、交互式遍历调试以及可视设计用户界面布局等功能加快开发。
使用 Flex 创建的 RIA 可运行于装有 Adobe Flash Player 插件的浏览器中,或运行于跨操作系统的 Adobe AIR上,它们可以跨所有主流浏览器、操作系统实现一致的运行。通过利用 AdobeAIR,Flex应用程序可以访问本地数据和系统资源。
Flex是通过java或者.net等非Flash途径,解释.mxml文件,并生成相应的.swf文件。Flex的component和flash的component很相似,但是有所改进增强。目前Macromedia公司已经被ADOBE公司收购。Adobe2013年01月15日将Flex捐给Apache并发布了Apache Flex4.8。

Flex和Flash的主要区别:

1、Flex侧重于应用软件、游戏的开发,flash更侧重于网页web端的展示效果。
2、Flex生成的swf文件较大,不利于网络传输,flash生成的swf文件较小,适合在网站上展示。

经典应用

1、eBay

2、纳斯达克股票市场公司
 
 

Red5的主要功能和Macromedia公司的FMS类似,提供基于Flash的流媒体服务的一款基于Java的开源流媒体服务器。它由Java语言编写,使用RTMP作为流媒体传输协议,这与FMS完全兼容。它具有流化FLV、MP3文件,实时录制客户端流为FLV文件,共享对象,实时视频播放、Remoting等功能。用Red5替换FMS后,客户端不用更改可正常运行。

实例:

1. 服务器端ApplicationAdapter:示例如下:

package org.jason.flex01;

import org.red5.server.adapter.ApplicationAdapter;

public class Application extends ApplicationAdapter{

}

2.客户端使用Flex实现摄像头获取视频并发布代码如下:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" applicationComplete="init()">
<mx:Script>
<!--[CDATA[
import flash.net.NetConnection;
import flash.net.NetStream;
import flash.events.NetStatusEvent;
import mx.controls.Alert; private var nc:NetConnection;
private var ns:NetStream;
private var cam:Camera; private function init():void{
nc = new NetConnection();
nc.addEventListener(NetStatusEvent.NET_STATUS,connectServerHander);
nc.client = this;
nc.connect("rtmp://58.116.56.68:1935/Flex01");
} private function connectServerHander(evt:NetStatusEvent):void{
trace(evt.info.code);
cam = Camera.getCamera(); if(cam != null){
cam.setMode(313,194,30);
cam.setQuality(0,70);
ns = new NetStream(nc);
ns.attachCamera(cam);
ns.publish("red5"); var vi:Video = new Video();
vi.width = 313;
vi.height = 194;
vi.attachCamera(cam);
videoDisplay.addChild(vi); }else{
Alert.show("no Camera");
}
} public function onBWDone():void{ } ]]-->
</mx:Script> <mx:VideoDisplay x="162" y="77" width="313" height="194" id="videoDisplay"/> </mx:Application>

客户端使用Flex play视频代码如下:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" applicationComplete="init()"> <mx:Script>
<!--[CDATA[ import flash.display.*;
import flash.utils.*;
import flash.events.*;
import flash.net.*;
import flash.media.Video;
import flash.media.Camera; private var nc:NetConnection; private function init():void{
nc = new NetConnection();
nc.connect("rtmp://58.116.56.68:1935/Flex01");
nc.addEventListener(NetStatusEvent.NET_STATUS,connectHandler);
} private function connectHandler(evt:NetStatusEvent):void{ var ns:NetStream = new NetStream(nc);
var video:Video=new Video() ;
video.width = 313;
video.height = 194;
video.attachNetStream(ns);
ns.play("red5");
videoDisplay.addChild(video); } ]]-->
</mx:Script> <mx:Panel x="132" y="78" width="356" height="266" layout="absolute" title="现场直播" fontSize="14">
<mx:VideoDisplay x="10" y="10" width="320" height="193" id="videoDisplay"/>
</mx:Panel> </mx:Application>

参考:Flex语法 --> http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html?utm_source=tuicool

red5流媒体服务器的搭建--->  http://blog.csdn.net/oldmtn/article/details/47110351

http://blog.sina.com.cn/s/blog_4829b9400100rmz0.html

使用Flex 和 Red5开发简单视频直播功能的更多相关文章

  1. iOS中 视频直播功能-流媒体的使用(详解)韩俊强的CSDN博客

    上一篇博客:(流媒体实现视频播放和下载功能):http://blog.csdn.net/qq_31810357/article/details/50574914 最近视频直播功能比较火,处于需求,研究 ...

  2. 基于开源Red5搭建的视频直播平台

    开始之前,为了便于大家了解Red5,此处引用网络文字,非原创 引言 流媒体文件是目前非常流行的网络媒体格式之一,这种文件允许用户一边下载一边播放,从而大大减少了用户等待播放的时间.另外通过网络播放流媒 ...

  3. iOS中 视频直播功能-流媒体的使用

    简单介绍: HLS 协议 : >5M会被AppStore拒绝  服务器要求低   延迟高    多平台   RTMP 协议:  电视直播   PC端使用    配合flash插件  及时性好  ...

  4. 使用socket.io开发简单群聊功能

    1.新建package.json文件: { "name": "socket-chat-example", "version": " ...

  5. Android中直播视频技术探究之---视频直播服务端环境搭建(Nginx+RTMP)

    一.前言 前面介绍了Android中视频直播中的一个重要类ByteBuffer,不了解的同学可以 点击查看 到这里开始,我们开始动手开发了,因为我们后续肯定是需要直播视频功能,然后把视频推流到服务端, ...

  6. uni-app仿抖音APP短视频+直播+聊天实例|uniapp全屏滑动小视频+直播

    基于uniapp+uView-ui跨端H5+小程序+APP短视频|直播项目uni-ttLive. uni-ttLive一款全新基于uni-app技术开发的仿制抖音/快手短视频直播项目.支持全屏丝滑般上 ...

  7. 视频直播点播nginx-rtmp开发手册中文版

    2016年8月18日12:42:35 参照官方文档https://github.com/arut/nginx-rtmp-module/wiki/Directives 请注意这个是粗翻译版,仅供参考,不 ...

  8. 视频直播APP开发分析

    视频直播APP开发到目前为止都还是热门的一个行业,而且发展到现在直播的种类非常多,很多行业都打入了直播行业,再也不是单纯的人物直播这么单一了.视频直播APP开发行业就像是吃螃蟹,来的早的人不懂如何吃, ...

  9. Android IOS WebRTC 音视频开发总结(六六)-- 三个角度分析美女视频直播这个行业

    本文主要从用户,公司和技术角度分析美女视频直播这个行业,文章最早发表在我们的微信公众号上,支持原创,详见这里, 欢迎关注微信公众号blackerteam,更多详见www.rtc.help 美女视频直播 ...

随机推荐

  1. 树形dp hdu1561

    有的堡垒攻克需要攻克另一个堡垒,形成一个森林,最多攻克m个堡垒,求获得宝物的最大价值. 1,以0做根将森林形成树: 2,用背包计算当前节点下需要攻克k个堡垒能获得的宝物最大价值,但是注意同一个根节点的 ...

  2. 线段树hdu1754

    #include<iostream>#include<stdio.h>using namespace std;const int maxa=200005;int val[max ...

  3. 从零开始制作Minecraft启动器(C++开源)

    从零开始制作Minecraft启动器(C++开源) 新手飙车了~~~,MC启动器源码大放送,随心所欲打造自己的专属MC启动器,这不是易语言,是C++...分析原理,关键源码都有详细的注释,代码编好就打 ...

  4. js判断是否微信浏览器打开

    function is_weixn(){ var ua = navigator.userAgent.toLowerCase(); if(ua.match(/MicroMessenger/i)==&qu ...

  5. ECSTORE1.2 重启开启信任登陆模块(删除KEY)

    1).若启用Mongodb 需要删除KEY分别为 1 2 3 be90a668d9f2eb1950bae1bf6b0835ce 939e64939c3f65cfb646e7948c5b80df 58d ...

  6. PowerShell 字符串操作符

    字符串操作符 格式化操作符 –F 在PowerShell文本操作符中非常重要,经常被用来增强数字类型和日期类型的可读性: "{0} diskettes per CD" -f (72 ...

  7. cp 提示 overwrite 问题

    cp 提示 overwrite 问题 copy -f 文件的时候仍然提示覆盖问题,很诧异,咨询SA,果然 cp -i 强制要求覆盖文件的时候确认,-f 也不起作用,大大的不爽[root@erpappd ...

  8. usaco silver

    大神们都在刷usaco,我也来水一水 1606: [Usaco2008 Dec]Hay For Sale 购买干草   裸背包 1607: [Usaco2008 Dec]Patting Heads 轻 ...

  9. bzoj 1194

    http://www.lydsy.com/JudgeOnline/problem.php?id=1194 我们看看怎么判断B是否是A的升级. 我们新建一个图G,每个点为一个二元组(i,j),表示A的i ...

  10. Flash AIR 保存与读取

    package { import flash.display.Sprite; import flash.net.URLLoader; import flash.display.Loader; impo ...