Flex 迷你教程— 基于Stratus 2的P2P在线视频共享1 — Flex the world

终于有时间试下Strtaus 2的p2p多播功能了。之前看的视频介绍中,Adobe描述一个非常理想的多人P2P数据共享方式。但是今天试了一下后发现视频的速度非常慢(视频的发布和接收端都在一台机器上),感觉上视频被发送到了什么地方后才传了回来。这这……好吧,就当是BETA的问题了,WAIT AND SEE.

先了解一下什么是stratus以及什么是RTMFP,你可以到看下官方的解释或者直接看我原来的 ) 先学习一下Flash p2p的基础. 简单的说原来的Stratus 实现了flash player之间点对点的传输数据,而今天要讲的stratus 2 不仅支持单个的点对点数据传说,还引入了多播的概念。

在原来的stratus中如果我们要做一个多人同时在线的应用,比如多人视频。那么我们需要把在线的所有人都链接起来,类似蜘蛛网的结构,网中的每个人需要与其他所有人链接,这样数据才能在所有人中共享。这种模式在多人连线中是不可取的。假设我们用户A发布一个视频想让其他10个用户观看,那么10个用户都需要链接到他。就中国的普通用户的网络带宽来说,这就是极限了。而Stratus 2 中 “组” 的概念解决了这个问题。用户A发布视频让同一个组中的其他10个人观看。他们并都从A处获取视频。而有可能通过组中的其他用户获取A的视频。这也就是P2P的模式了,每个人都可以作为数据的发出者,数据以{zy}的方式被观看者收到,参与的人越多,数据的副本就越多。视频的速度也就越快。

  1. 确定你安装了 Flex SDK3.2 以上的SDK (现在{zx1}的是3.5).?
  2. 确定安装了flash payer 10.1 debug version (开发环境{zh0}用debug version)??
  3. 申请一个 Stratus develper key?
  4. 下载flash player 10.1 的?Player Global SWC ?,放到你的SDK3.2目录下面吧
  5. 导入下面的Demo源文件,编辑项目属性 — Flex compiler — Require Flash player version 到 10:1:0
  6. 编辑项目属性 — Flex Builder Path — Library Path — Add SWC. 添加你刚才下载的playerglobal.swc —- 添加后双击playerglobal.swc — 双击Link Type — 切换Link Type到External

好了,准备工作到此结束。

Demo 是一个视频共享的程序,用户A发布一个视频,其他进入相同组的用户可以观看视频,观看视频的同时大家可以文字聊天

  1. 先运行Publisher.mxml. 点击链接 (记住Group 名字,一会要用)
  2. 运行Viewer.mxml, 输入刚才的Group 名字,点链接。
  3. 你可以运行多个Viewer,输入相同的Group名,链接进去同一个组
  4. 链接成功后Viewer可以看见Publisher发布的视频。下面的聊天框可以和所有人聊天。

具体的代码说明大家下载源文件看注释就好了(看Publisher的注释)。这里只说一下Publisher和Viewer的区别,Publisher是作为视频的发布者以及Group的参与者(注意他并不是Gruop的”老大”,Group对这里的任何人来说都是平等的,Publisher只是在里面发布了视频而已)。Viewer是视频的接收者以及Group的参与者。下面的代码指出了Viewer和Publisher的不同

Publisher发布视频

           /**
            *
            * NetStraeam链接到用户组后触发
            * */
            private function onNetStreamConnect():void
            {
            	//加载话筒
                netStream.client = this;
                var mic: = .getMicrophone();
                if(mic)
                {
                    mic.codec = SoundCodec.SPEEX;
                    mic.setSilenceLevel(0);
 
                    netStream.attachAudio(mic);
 
                    updateStatus("话筒设置完毕\n");
                }
                //加载视频,并发布视频和话筒
                publishVideo()
 
            }

Viewer接收视频

            /**
            *
            * NetStraeam链接到用户组后触发
            * */
            private function onNetStreamConnect():void
            {
                netStream.client = this;
 
                if(null != video)
                {
                    videoDisplay.removeChild(video);
                    video = null;
                }
 
                video = new ();
                video.smoothing = true;
                video.attachNetStream(netStream);
                videoDisplay.addChild(video);
 
                //播放视频
                netStream.play("stream");
                netStream.bufferTime = 1.0;
            }

Publisher

a

Viewer

b

  • Pages

  • Call Me

  • 热门文章

    • - 12,564 views
    • - 9,191 views
    • - 8,043 views
    • - 7,967 views
    • - 6,577 views
    • - 6,456 views
    • - 5,511 views
    • - 5,231 views
    • - 4,901 views
    • - 4,688 views
  • 文章分类

  • {zx1}留言

    • on
    • on
    • on
    • wuzup on
    • champion on
郑重声明:资讯 【Flex 迷你教程— 基于Stratus 2的P2P在线视频共享1 — Flex the world】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——