Flex 迷你教程 — 基于Stratus的P2P网络电话 (3)

Posted by Kevin Luo at 17 January 2009

Category: Flex 迷你教程, P2P

Tags: , , ,

Flex 迷你教程 — 基于Stratus的P2P网络电话 (2)中我们已经知道如何链接一个客户端并且互相发送短信,今天来扩展下面的这些内容

  1. 呼叫时在被呼叫端显示 “接受”,点击接受后双方建立链接。
  2. 呼叫试或者接通后可以挂机。
  3. 添加视频与音频通信。

首先来看看Demo:

Demo 操作:

1. 输入任意名称,点击链接 (两台机器或者两个浏览器)
2. 输入对方的peerId,点击呼叫
3. 被呼叫方点击 “接受” 建立链接。
4. 开始语音,视频,文字通讯.
5. 挂机

Demo地址:

http://flextheworld.com/flash/p2p/P2pPhoneDemo.html

Demo截图:

e59bbee78987-1

新添加的代码

首先是修改call() function, 根据不同的label执行不同的事件,如果callYou.label是 “接受”,执行accpetHandle()与呼叫者建立链接,如果是”挂断”,那么执行hangup()挂断双方的通讯,如果是其他(也就是”呼叫”),则执行后面的内容。

呼叫时调用publishVide和publishAudio将视频与音频附加到outgoingStream发送。在onConnectSuccesss事件中播放被呼叫者返回的视频和音频。监听onHangup事件来控制挂断。呼叫时将“呼叫”改为“挂断”。

?View Code ACTIONSCRIPT3
//呼叫对方的方法,现在是呼叫者角色
private function call():void{
 
if(callYou.label == "接受"){
accpetHandle();
callYou.label = "挂断"
return;
}else if(callYou.label == "挂断"){
outgoingStream.send("onHangup")
this.hangup()
 
return;
}
 
...............
 
//发送视频
publishVideo();
//发送音频
publishAudio()
 
..........
 
//监听onConnectSuccess事件,确定链接成功
i.onConnectSuccess = function(name:String):void
{
info.text += "与"+name + "链接成功n";
sendMessageBtn.enabled = true;
incomingStream.receiveAudio(true)
incomingStream.receiveAudio(true)
remoteVideo = new Video();
remoteVideo.width = 160;
remoteVideo.height = 120;
remoteVideo.attachNetStream(incomingStream);
remoteVideoDisplay.addChild(remoteVideo);
sendMessageBtn.enabled = true;
}
 
i.onHangup = function():void{
hangup()
}
 
incomingStream.client = i
 
callYou.label = "挂断"

被呼叫者在监听到呼叫者的呼叫时不马上回应,只是提示被呼叫者 “正在被链接”,同时将“呼叫”改为“接受”, 监听onHangup事件

?View Code ACTIONSCRIPT3
private function initSendStream():void{
 
..........
 
//监听onPeerConnect事件
var o:Object = new Object();
o.onPeerConnect = function(subscriberStream:NetStream):Boolean
{
..........
 
incomingStream.receiveAudio(false)
incomingStream.receiveAudio(false)
..........
 
//监听onIncomingCall事件,用于确定链接成功
i.onIncomingCall = function(name:String):void
{
//显示链接成功后,对呼叫者发布我的信息流,名称为callee
info.text += name + " 正在呼叫你n";
callYou.label = "接受"
}
 
i.onHangup = function():void{
hangup()
}
incomingStream.client = i;
 
return true;
}
 
myStream.client = o;
}

点击“接受”后,开始向呼叫者发送信息流,包括视频与音频。同时播放呼叫者发送的视频与音频,最后发出onConnectSuccess事件

?View Code ACTIONSCRIPT3
//同意链接后,发送stream到呼叫端,包括音频,视频的发送。 同时播放呼叫端发出的视频,音频
private function accpetHandle():void{
//向呼叫端发送信息流
outgoingStream = new NetStream(netConnection, NetStream.DIRECT_CONNECTIONS);
outgoingStream.addEventListener(NetStatusEvent.NET_STATUS, outgoingStreamHandler);
outgoingStream.publish("callee");
//将视频,音频附加到outgoingStream
publishAudio();
publishVideo()
 
//播放接受到的视频,音频
incomingStream.receiveAudio(true)
incomingStream.receiveAudio(true)
remoteVideo = new Video();
remoteVideo.width = 160;
remoteVideo.height = 120;
remoteVideo.attachNetStream(incomingStream);
remoteVideoDisplay.addChild(remoteVideo);
//链接成功事件,呼叫端响应
outgoingStream.send("onConnectSuccess",userName.text);
sendMessageBtn.enabled = true;
}

点击挂机后在上面提到的call()中执行hangup(), 同时发送onHangup事件,这样另一方也能挂断电话。挂机后将”挂机”再改为”呼叫”,允许下一次的呼叫和链接

?View Code ACTIONSCRIPT3
//挂断电话,清空所有stream,只保持于stratus的链接
public function hangup():void{
if (incomingStream){
incomingStream.close();
incomingStream.removeEventListener(NetStatusEvent.NET_STATUS, incomingStreamHandler);
}
 
if (outgoingStream){
outgoingStream.close();
outgoingStream.removeEventListener(NetStatusEvent.NET_STATUS, outgoingStreamHandler);
}
 
if (controlStream){
controlStream.close();
controlStream.removeEventListener(NetStatusEvent.NET_STATUS, netStreamHandler);
}
 
incomingStream = null;
outgoingStream = null;
controlStream = null;
if(localVideo != null){
localVideo.attachCamera(null)
}
 
if(remoteVideo != null){
remoteVideo.attachCamera(null)
}
 
info.text += "挂机!"
callYou.label = "呼叫"
sendMessageBtn.enabled = false;
}

publishVideo和publishAudio function

?View Code ACTIONSCRIPT3
//发送视频
private function publishVideo():void{
var cameras:Array = Camera.names;
var camera:Camera;
var findDefaultCamera:Boolean = false
if (cameras && cameras.length >0){
for(var j:int=0; j<cameras.length; j++){
if(cameras[j].toString() == "USB Video Class Video"){
camera = Camera.getCamera(j.toString())
outgoingStream.attachCamera(camera);
findDefaultCamera = true
}
}
if(!findDefaultCamera){
camera = Camera.getCamera()
outgoingStream.attachCamera(camera)
}
camera.setQuality(0,90)
 
localVideo = new Video();
localVideo.width = 160;
localVideo.height = 120;
localVideo.attachCamera(camera)
localVideoDisplay.addChild(localVideo);
}
}
//发送音频
private function publishAudio():void{
var mics:Array = Microphone.names;
if (mics && mics.length >0){
outgoingStream.attachAudio(Microphone.getMicrophone(0))
}
}

源文件下载 (装了一个类似论坛的回复才能下载的插件,试试)


P2pPhoneDemo3 (864)

347 Comments

  1. 我是大虾 says

    支持一下,下一个看看,谢谢

    Reply

    Kevin Luo Reply:

    谢谢

    Reply

    Jason Reply:

    支持,谢谢分享!!

    Reply

    kyk Reply:

    支持 學習!!

    Reply

  2. 火柴 says

    不错~.~

    Reply

    Kevin Luo Reply:

    谢谢 :)

    Reply

  3. 花花 says

    演示没带音频?

    Reply

    Kevin Luo Reply:

    演示带音频的,不过因为默认打开index为0 的麦克风,有可能你的麦克风索引不在0,所以开启没有成功,你可以查看代码中publishAudio() 部分代码。

    Reply

  4. 巫君君 says

    嘻嘻,这个东东可以每天打开监视你

    Reply

  5. yerba says

    能支持多少并发用户?

    Reply

  6. qijojo says

    我的笔记本(自带摄像头) 连键就报错误
    台机可以连接呀

    Reply

    Kevin Luo Reply:

    噢?报的什么错? 因为默认找的是 名称叫 “USB Video Class Video”的摄像头,如果找不到的话默认加载index为0的摄像头。这里是有可能出错。

    Reply

  7. paul says

    很不错

    Reply

  8. aksoft says

    这个不错 ,可惜不能穿内网

    Reply

    Kevin Luo Reply:

    如果内网有防火墙的话需要设置

    Reply

  9. zychome says

    谢谢

    Reply

  10. johnny says

    下来测试下~~~

    Reply

  11. abc says

    好,下来测试下~玩玩

    Reply

  12. limr says

    下来看看…

    Reply

  13. lukia says

    好东西啊,支持

    Reply

    Kevin Luo Reply:

    谢谢支持

    Reply

  14. xt says

    支持

    Reply

  15. vanarsenal says

    look so good

    Reply

  16. q8 says

    不错。。这个挺实用的,谢谢楼主。体会到了flex的强大功能。。呵呵。虽然没有i/o操作。

    Reply

  17. 啊孟 says

    好东西要看看

    Reply

  18. flchenjun says

    good,先下了。谢谢

    Reply

  19. greed says

    学习一下

    Reply

  20. ask says

    能下吗?

    Reply

  21. sang says

    我觉得很好,我想下载用用

    Reply

    sang Reply:

    可耕地

    Reply

  22. larry says

    很好 很强大

    Reply

  23. 知知 says

    谢谢博主提供演示代码,正好补充自己的知识~

    Reply

  24. xiaoxiao says

    谢谢

    Reply

  25. 路过 says

    出来打酱油

    Reply

  26. cyc says

    想要源文件 thank you

    Reply

  27. zhs says

    nice

    Reply

  28. hero says

    好!

    Reply

  29. berlin says

    Gut!

    Reply

  30. jockyxiao says

    不错

    Reply

  31. aaa says

    good

    Reply

  32. DSDJ says

    支持啊!太爽了

    Reply

  33. user says

    很强大

    Reply

  34. jensen` says

    正需要,谢谢

    Reply

  35. mx says

    学习了 很好啊

    Reply

  36. mag says

    学习了

    Reply

  37. mietwagen says

    Sehr gute Seite. Ich habe es zu den Favoriten.

    Reply

  38. lllkk says

    kankankankan

    Reply

  39. ligan says

    thank you for your sharing

    Reply

  40. frank says

    thx~

    Reply

  41. ken says

    我想你也知道adobe提供的那段p2p视频系统代码啊,我想问个问题,我的编译不过去,总是有很多错误,如下
    mic.codec = SoundCodec.SPEEX;
    //提示没有soundcodec的定义,我想是版本的问题,我的sdk是3.0.0的。你能告诉我为什么吗?已经忙了很多天了,就是不知道错误所在。在as 3.0中我也找到了定义。

    Reply

  42. cpm says

    study!!

    Reply

  43. gavin says

    不错,支持

    Reply

  44. new says

    非常之好

    Reply

  45. glone says

    测试下

    Reply

  46. 游侠 says

    好东西,多谢

    Reply

  47. mklp says

    我也要看看啊

    Reply

  48. KevinBo says

    研究下代码~~

    Reply

  49. alpha says

    下载,谢谢

    Reply

  50. 小石子 says

    呵呵 ,不错,谢谢分享

    Reply

  51. Benji says

    Goooood….

    Reply

  52. 一把伞 says

    支持一下,谢谢啦。

    Reply

  53. sixevil says

    awesome

    Reply

  54. 罗毅恒 says

    想问p2p能不能一对多,能不能文件传送呢

    Reply

  55. ihbb says

    谢谢

    Reply

  56. sda says

    kankanzenmeyang

    Reply

  57. 回复可下 says

    这个要好好学习下

    Reply

  58. ming says

    很不错

    Reply

  59. jerry says

    hao!

    Reply

  60. dore says

    good

    Reply

  61. hys says

    看看怎么实现的,我从adobe网站也下了个,就是运行不起来!

    Reply

  62. aa says

    真好

    Reply

  63. michael says

    非常好

    Reply

  64. Wynn says

    支持!

    Reply

  65. Leon says

    xiexie

    Reply

  66. iname says

    Reply

    Reply

  67. Jason says

    多谢分享,谢谢!!支持

    Reply

  68. slacrey says

    谢谢

    Reply

  69. Robbie says

    不错,试试。

    Reply

  70. millionhy says

    不错,学习中

    Reply

  71. ddddddd says

    sdfsdfsdf

    Reply

  72. liyi-6868@hotmail says

    学习

    Reply

  73. zhouyu260 says

    谢谢

    Reply

  74. flyingmoon says

    test interest

    Reply

  75. gongji says

    逼我

    Reply

  76. applet says

    看看怎么实现的,我从adobe网站也下了个,就是运行不起来!

    Reply

  77. plackeye says

    这个要看

    Reply

  78. 1 says

    ding

    Reply

  79. aaaaa says

    Very good

    Reply

  80. safdasdf says

    法萨awsfasdf

    Reply

  81. hoho says

    hhh

    Reply

  82. aaaaaaa says

    看看

    Reply

  83. ifff says

    kan kan

    Reply

  84. sina says

    很感兴趣, 谢谢

    Reply

  85. tony says

    gooooood joooooob

    Reply

  86. hester says

    我也需要源代码

    Reply

  87. asdasdad says

    tks hehe

    Reply

  88. asdasdad says

    hehe 我很想要源码 只是stream 太多 我晕了

    Reply

  89. baisheng says

    学习下。

    Reply

  90. 匿名 says

    学习下,AIR教程中某些例子下不下来了。。
    还是要谢谢。

    Reply

  91. jj says

    学习,好玩

    Reply

  92. dhf88 says

    good verygood

    Reply

  93. qqqq says

    不错哦。。。很好。。。

    Reply

  94. godmaster says

    good!

    Reply

  95. tgfyhx says

    呓 止境昌盛

    Reply

  96. airflex says

    每次都要双方取得ID,再发给对方,才O!有些烦琐!

    Reply

  97. j says

    j

    Reply

  98. jianxm says

    看看

    Reply

  99. shell says

    下载学习

    Reply

  100. calm says

    非常不错,学习下

    Reply

  101. HHH says

    SHIYIXIA

    Reply

  102. says

    3ks

    Reply

  103. nwsuaf says

    真是一个好东西,现在正好要用到。

    Reply

  104. hie says

    真是一个好东西,现在正好要用到

    Reply

  105. yoyo says

    开源万岁,谢谢分享

    Reply

  106. aa says

    you are very good

    Reply

  107. test111 says

    还是有局限性

    Reply

  108. yy says

    bucuo xiexie

    Reply

  109. dd says

    很期待

    Reply

  110. 开心老人 says

    期待不会等待

    Reply

  111. daaa says

    daaadaaa

    Reply

  112. aaa says

    asdsadasdasd

    Reply

  113. lee lee says

    實在太利害了

    Reply

  114. lee lee says

    怎麼不能下載 ? anyway , thanks a lot !

    Reply

  115. asssss says

    asdfasdfa

    Reply

  116. 好东西要要 says

    好东西要要

    Reply

  117. plackeye says

    只能回复看看了

    Reply

  118. zhb says

    好,下来测试下~玩玩

    Reply

  119. 33 says

    实在太好了。谢谢你。

    Reply

  120. ivan says

    研究一下

    Reply

  121. wgj says

    good good good

    Reply

  122. ivan says

    goog

    Reply

  123. chy says

    let me see

    Reply

  124. kingwind says

    用户名与peer ID之间的转换,如果实现呢,请麻烦您解答下。
    因为每次用这个id太麻烦了,用用户名比较方便

    Reply

    Kevin Luo Reply:

    需要用服务器来维护peedID与用户名之间的转换,单靠客户端是做不到的

    Reply

  125. kingwind says

    还有就是如果在该功能上加入白板 请问能做吗?怎么做能不能指导下?

    Reply

    Kevin Luo Reply:

    可以加白板,做法和传送message一样,把这边的白板信息传给对方(可以是坐标或者任何能表示内容的对象),接收方解析来的对象在自己的白板上自动绘出内容。

    Reply

  126. 423423 says

    good articles

    Reply

  127. james says

    下个学习一下

    Reply

  128. entity says

    看来这的留言最多了

    Reply

  129. AS says

    AASAA

    Reply

  130. zz says

    很关心,看看

    Reply

  131. canman says

    学习一下

    Reply

  132. tes says

    想看看

    Reply

  133. me says

    不错

    Reply

  134. wangjinxiang says

    谢谢,下来看看

    Reply

  135. a says

    支持!

    Reply

  136. fukada says

    好像不支持局域网的机器哦,不知道能不能通过设置代理来连接服务器?

    Reply

  137. fish says

    我正在自学Flex

    Reply

  138. gishu says

    好东西要看看

    Reply

  139. hello says

    想看看终极版本

    Reply

  140. stan says

    thx

    Reply

  141. rawlings says

    it`s so good .i need codesource to stude flex.

    Reply

  142. sunway says

    great! I need the source code,ok?

    Reply

  143. strongking says

    thanks

    Reply

  144. inyu says

    jtyjtjt

    Reply

  145. tzb says

    支持

    Reply

  146. cks says

    谢谢

    Reply

  147. shadowboy says

    教程不错!~

    Reply

  148. nalan says

    不错的!

    Reply

  149. shadow says

    还不错啊~

    Reply

    das Reply:

    qweqwe

    Reply

  150. sikes000 says

    真的很不错

    Reply

  151. 月夜儛 says

    想看下完整的代码,O(∩_∩)O~

    Reply

  152. sikes000 says

    请问下这东西如果有防火墙的话需要这么设置啊

    Reply

  153. aha says

    不错不错

    Reply

  154. wwwwwww says

    下来看看

    Reply

  155. 罗罗 says

    顶起

    Reply

  156. pcsue says

    很好玩吖~

    Reply

  157. hala says

    很好喔 好例子

    Reply

  158. sdf says

    非常好!

    Reply

  159. Tom says

    正在研究Adobe P2P相关的技术,很感谢能有这篇博文

    Reply

  160. xlf says

    学习学习

    Reply

  161. 00 says

    打酱油!

    Reply

  162. 高手 says

    哈哈,原来有高手

    Reply

  163. TEss says

    TEST

    Reply

  164. hello says

    我看了您的代码,对我很有帮助。
    怎么才能实现多对一的聊天呢?能否提供个思路。

    Reply

  165. 抽支烟 says

    真厉害!!!

    Reply

  166. ly says

    22

    Reply

  167. ly says

    很好,谢谢你。

    Reply

  168. sdffdff says

    sdfsdfdsfsdf

    Reply

  169. Andy.Zeng says

    很好很强大….

    Reply

  170. king says

    谢谢你的分享.~!~

    Reply

  171. fzqk9 says

    Reply

  172. androclus says

    不错啊,学习一下

    Reply

  173. s says

    googd

    Reply

  174. sofasky says

    看看

    Reply

  175. xiaolei says

    很不错,。强大

    Reply

  176. 你好 says

    赞一个

    Reply

  177. a says

    还好

    Reply

  178. kfc says

    看卡

    Reply

  179. wshk says

    下来看看,只是不知道能不能用于局域网啊

    Reply

  180. kinhunt says

    Greate

    Reply

  181. braytoncut says

    vectors douglass economists estimated data shelf million emitted [url=http://journals.cambridge.org]special china gas beginning negative[/url] http://ideas.repec.org

    Reply

  182. 够哦 says

    hao

    Reply

  183. me says

    回了

    Reply

  184. kevin says

    nice

    Reply

  185. hyuu says

    瞧瞧文件哦

    Reply

  186. ahai says

    值得学习的东东

    Reply

  187. yy says

    值得学习的东东

    Reply

  188. lsh says

    dddddddddddddddddddddddddd

    Reply

  189. xxggxx says

    dsfsdfsd

    Reply

  190. 三六 says

    研究看看

    Reply

  191. soso says

    哈哈,good 好东西

    Reply

  192. mikimoto says

    好棒的教學

    Reply

  193. zhizhi says

    太厉害了,我现在一头雾水在。。。。偶像啊

    Reply

  194. sylar says

    貌似有点问题

    Reply

  195. ssssssss says

    It is good

    Reply

  196. 小新 says

    顶大哥!呵呵!真的是好东西,不知道大哥还记得我不?

    Reply

    Kevin Reply:

    小新嘛,杂会不记得呢,呵呵。最近太忙了都很少时间去坛子了。

    Reply

  197. kdio says

    ks很好,很强大

    Reply

  198. Lynxye says

    很好,试试!

    Reply

  199. george says

    learning

    Reply

  200. adou says

    不错 稍微有点回音,不过很清晰

    Reply

  201. fd says

    fds

    Reply

  202. sdf says

    sdfsdfsdf

    Reply

  203. ZENO says

    It helps me a lot!
    Thx!

    Reply

  204. ZENO says

    受益匪浅。

    Reply

  205. wangwp says

    very good,learn it

    Reply

  206. xuexi says

    学习

    Reply

  207. jing says

    just download to study

    Reply

  208. jd says

    reply

    Reply

  209. sss says

    very good,learn it

    Reply

  210. 11111 says

    看看

    Reply

  211. hule says

    as

    Reply

  212. reidkrieg says

    ratified reduction high era deep article [url=http://www.ppnt.org]led permafrost reliable cycles[/url] http://www.gizapyramid.com

    Reply

  213. test says

    ergeer

    Reply

  214. saar says

    very good,learn it

    Reply

  215. sda says

    dfssd

    Reply

  216. testguhaiha says

    teste

    Reply

  217. huilet says

    hehe

    Reply

  218. ok says

    ok.thank you,

    Reply

  219. dreamsxin says

    很好

    Reply

  220. dsfd says

    DSFDSF

    Reply

  221. dsfd says

    HEN BU CUO

    Reply

  222. llj says

    网页文字显示的有些乱.希望改进!

    Reply

  223. aass says

    huifu

    Reply

  224. lookdemo says

    just look

    Reply

  225. tyh says

    学习中

    Reply

  226. ying says

    学习下

    Reply

  227. thx says

    THX YOU SO MUCH

    Reply

  228. tt says

    THX YOU SO MUCH

    Reply

  229. zfj004588 says

    THX YOU SO MUCH

    Reply

  230. joy says

    看看

    Reply

  231. Silly says

    let me try

    Reply

  232. wead says

    let me try

    Reply

  233. 李帆 says

    谢谢

    Reply

  234. 爱仕达 says

    dfsdfsdfsdfsdfdf

    Reply

  235. sing says

    hehe,have a look!

    Reply

  236. cherry says

    谢谢博主分享,学习了~~

    Reply

  237. aaaaa says

    aa

    Reply

  238. aa says

    Reply

    Reply

  239. DavidCHiu says

    yes~~~this is a great tutorial that i have never seen!!

    Reply

  240. hs says

    很有帮助,真是感谢!!!

    Reply

  241. 123 says

    thanks!!!

    Reply

  242. abcd says

    is so good

    Reply

  243. zhang says

    不错。。

    Reply

  244. lfhd says

    Study!

    Reply

  245. ivan says

    学习

    Reply

  246. Strand says

    很有帮助!

    Reply

  247. aaaaaaaaaa says

    eeeeeeeeeeeeee

    Reply

  248. xiaojiang says

    看看…谢谢了..LZ好棒的

    Reply

  249. Sakuya says

    太感谢了

    Reply

  250. ssz says

    fdsa

    Reply

  251. airfly says

    谢谢你的文章

    Reply

    地方 Reply:

    ok.thx

    Reply

  252. java says

    flex ok

    Reply

  253. wind says

    很不错的学习资料,谢谢了

    Reply

  254. blackie says

    flash p2p 的應用 真感謝你的文章^^

    Reply

  255. BU says

    呵呵。谢谢~~

    Reply

  256. 很好 says

    …………

    Reply

  257. Ever says

    非常有用 谢谢

    Reply

  258. lilili says

    谢谢

    Reply

  259. laok12358 says

    thank you very much

    Reply

  260. makyoo says

    thank you very much

    Reply

  261. qai41 says

    哈哈,要拿来学习下

    Reply

  262. dfdfdf says

    fffffffffffffffffff

    Reply

  263. stigliew says

    flex rocked!!!!!!!!!!!!

    Reply

  264. smily says

    感谢楼主提供这样的源码,对于我这样的初学者来说帮助很大,谢谢

    Reply

    Kevin Luo Reply:

    :)

    Reply

    Batuhan KAHRAMAN Reply:

    hi mr luo ;

    I am use your p2p3 application.
    Thank you for sharing code …
    But I noticed a small problem…
    I tested this story ;
    Step 1 : Open separately 3 ie screen … connect from a,b,c users …
    Step 2 : a user call b user
    Step 3 : b user accepted call
    Step 4 : a and b chating … no problem ….
    Step 5 : c user call a or b …
    Step 6 : a disconnect b or b disconnect a … problem with c user

    do you understand me sir…

    Reply

    Kevin Luo Reply:

    Hi Batuhan, I know what’s your mean, I did not handle this situation in demo. Basically it’s just a quite simple demo to show you how the p2p work, of course you need develop it again base on your project.

  265. FlexCai says

    reply

    Reply

  266. kenny says

    谢了

    Reply

  267. socase says

    不错的文章

    Reply

  268. ksknet says

    asdwqeqweqaasdwqeads

    Reply

  269. ys says

    谢谢!

    Reply

  270. dfafaf says

    fafafaf

    Reply

  271. wind says

    呵呵,写的不错,正在学这个呢

    Reply

  272. 小web says

    Reply

  273. oy says

    很好

    Reply

  274. wjkx says

    thank you

    Reply

  275. lijun says

    谢谢了哈哈

    Reply

  276. caoyanhua says

    研究学习下…

    Reply

  277. leiwu says

    I want your code very much

    Reply

  278. s says

    g

    Reply

  279. sum says

    博主何必看重回复这种虚无缥缈的东西呢?而且是被动回复

    Reply

  280. steven says

    谢谢,非常喜欢

    Reply

  281. sdfsdf says

    不错

    Reply

  282. bddfdf says

    good.

    Reply

  283. andy says

    一直尝试做这方面的开发,这个子错

    Reply

  284. yeqingshan says

    thanks for you

    Reply

  285. 谢谢 says

    谢谢

    Reply

  286. xinxing028 says

    现在有个问题,假设有两个用户AB,
    一开始B呼叫A,A接收了
    然后A再点一次连接,这是他的peerid已经改变
    为什么AB还是连接在一起的,还能相互发消息?
    不是说他们的stratus是根据peerid来确认的吗?

    Reply

    Kevin Reply:

    因为他们建立链接以后peerid就没用了,peerid只是用来建立两台机器的链接是起作用,一旦两台机器联通,peerid就不发挥作用了,机器直接的传输是UPD协议。

    Reply

  287. firone says

    如何实现一对多聊天?

    Reply

  288. ithanshui says

    非常有用 谢谢

    Reply

  289. seven says

    好东西哈 谢谢 了

    Reply

  290. happy says

    不错,可以

    Reply

  291. zy says

    谢谢了

    Reply

  292. tt says

    看看先,

    Reply

  293. a2 says

    Good!

    Reply

  294. stephen says

    非常好,谢谢

    Reply

  295. john says

    Great job.

    Reply

  296. fishman says

    不错的程序,学习中

    Reply

  297. Gluttony says

    图中的两幅图是用摄像头得到的吗?

    Reply

    Kevin Luo Reply:

    那两张图是用来挡住摄像头真实画面的

    Reply

    Gluttony Reply:

    …还以为可以上传图片

    Reply

  298. f6c220225422fafa3a52f2b1ed01fe5deea93a2e6f439cd928bc4918f9df3862 says

    testt

    Reply

  299. shine says

    It is cool,Thanks!!!

    Reply

  300. luming says

    请问博主
    有没有组播相关的研究呢?

    Reply

    Kevin Luo Reply:

    http://www.flextheworld.com/2010/02/flex-stratus-2-p2p.html. 这一篇就是了 :)

    Reply

  301. luming says

    回复的真快啊,帖子还是热乎的,赶紧研究一下。
    前面的教程非常精彩,有问题再请教了,谢谢。

    Reply

  302. HuntMarianne says

    If you want to buy a house, you would have to get the personal loans. Furthermore, my mother always utilizes a small business loan, which occurs to be the most firm.

    Reply

  303. gray says

    请教一些问题,
    1,flash的p2p穿透是不是还有些问题,自己写的一对一的测试代码在有些环境下无法连接
    2,stratus的开发key一次能接受多少少连接数,如果要用到生产环境应该用什么方案fms4? red4支持RTMFP吗,

    万分感谢

    Reply

    Kevin Luo Reply:

    1. 如果被连接方防火墙禁止upd传输,会有穿透问题。
    2. 链接数应该是没有限制的。FMS4据我所知现在是内测阶段,具体的信息还不是很清楚,应该会继承Stratus service的功能。 red5不支持RTMFP

    Reply

    okfeng Reply:

    关于p2p穿透的问题,如果对方防火墙禁止udp传输,那有没有办法解决呢?
    我看Adobe的技术资料,是说RTMFP支持UDP的防火墙穿越的。

    谢谢!

    Reply

    tabaga Reply:

    好,学习一下

    Reply

  304. Aaron says

    好吧,要回复

    Reply

  305. duran says

    我在跑这个例子的时候,发现在ie8下面,被呼叫一方不能显示自己的视频图像,呼叫一方也显示不到被呼叫一方的图像。但是在ff和chrome下面就没问题,能帮忙解释下么?谢谢~

    Reply

    Kevin Luo Reply:

    是同一个机器还是两台机器测试的?

    Reply

    duran Reply:

    在同一台机器,浏览器开得两个标签页

    Reply

    Kevin Luo Reply:

    那是正常的,是ie的问题。不同机器就没事了

    wangdelin Reply:

    我也遇到这个问题,我用的是遨游跟ie8测试的,遨游没有问题ie8有问题,不过遨游不是也用的ie的内核么

  306. tabaga says

    ????

    Reply

  307. test says

    ???

    Reply

  308. ycm365 says

    怎么没速度啊

    Reply

  309. wangdelin says

    //监听onPeerConnect事件
    var o:Object = new Object();
    o.onPeerConnect = function(subscriberStream:NetStream):Boolean
    {
    ……….

    incomingStream.receiveAudio(false)
    incomingStream.receiveAudio(false)
    还有这个段代码执行了2次receiveAudio(false),是楼主写错了,还是有一句应该改成receiveVideo(false)?

    Reply

    Kevin Luo Reply:

    恩,这里写错了。谢谢纠正

    Reply

  310. ZZK says

    能否稍微详细的点播一下怎么获取所有在线的用户列表?

    Reply

    Kevin Luo Reply:

    在线用户列表实际上是用服务器端维护的,服务器端不需要维护用户链接,但是需要维护那些用户在线,简单来说就是用户获取peerid以后保存到服务器。

    Reply

    ZZK Reply:

    如果要做到其他用户登录即使显示的话,是不是应该sockets更好一点。

    Reply

    Kevin Luo Reply:

    你说用socket链接各个客户端? 一样的问题,你的用户列表存哪?新加入的客户端怎么知道其他客户端的地址? 服务器就是干这么活的,维护在线列表,告诉新来的现在有哪些客户端可以连接

  311. 彭小康 says

    请教下大哥 我可以用这个发送文件吗 像QQ文件对传一样 该怎么做呢?如果能给个demo小弟感激不尽

    Reply

  312. [...] Flex 迷你教程 — 基于Stratus的P2P网络电话 (3) [...]

  313. hooface says

    好东西,学习了。

    Reply

  314. cho says

    多谢!!

    Reply

Leave a Reply

Leave a Reply
  • (required)
  • (required) (will not be published)