成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

使用Flash在電腦與Android間開發(fā)局域網(wǎng)P2P項目

移動開發(fā) Android
Android2.2移動設(shè)備,本例為HTC Desire (A8180),需要到Android Market下載安裝Adobe AIR2.5應(yīng)用程序以及支持UDP協(xié)議的局域網(wǎng)環(huán)境。

要求

你需要先安裝下列產(chǎn)品:

Flash Professional CS5

Flash Professional CS5上的AIR for Android開發(fā)插件

示例文件:

預(yù)備知識

  • 會使用Flash Pro制作和發(fā)布項目
  • ActionScript 3.0中級編程水平

使用FLASH PROFESSIONAL CS5開發(fā)運行于ANDROID平臺的AIR2.5應(yīng)用

Android 2.2平臺支持Adobe AIR運行時環(huán)境,版本為2.5,使用開發(fā)工具Flash Builder Burrito可以基于Flex SDK 4.5 (Hero)開發(fā)一個AIR2.5的應(yīng)用,對于Flash Pro用戶來說,使用裝有AIR for Android插件的Flash Pro CS5同樣可以方便快速地開發(fā)一個手機應(yīng)用。

如果你沒有安裝Flash Profession CS5,請到這里下載試用版,然后再到Adobe實驗室下載AIR2.5開發(fā)插件(Beta 2),安裝成功后打開Flash,在開始畫面中新建一個AIR for Android文檔。這篇帖子用MAC 英文版的Flash Pro舉例。

在Flash Profession CS5中新建一個AIR for Android項目。

圖1. 在Flash Profession CS5中新建一個AIR for Android項目

由于安裝了AIR2.5開發(fā)包,F(xiàn)lash Professional CS5便可以作為一個發(fā)布AIR2.5的工具,打開Publish Settings,看到Flash的發(fā)布環(huán)境是AIR Android,點擊右面的設(shè)置按鈕,可以進入AIR2.5的發(fā)布設(shè)置面板:

AIR2.5的發(fā)布設(shè)置面板

圖2. AIR2.5的發(fā)布設(shè)置面板

General里是一些關(guān)于應(yīng)用的基本信息,Android平臺下的應(yīng)用安裝包是APK文件,在這個面板里可以直接給APK文件命名,并且定義應(yīng)用程序名稱。需要注意的是在App ID這一項里可以定義應(yīng)用程序ID,id值不能有下劃線等特殊字符,否則編譯的時候會報錯。

在Aspect ratio里可以設(shè)置應(yīng)用在手機中的顯示方式為橫向(landscape)或者縱向(portrait)。也可以指定是否全屏或者是否按設(shè)備的傾斜方向自動調(diào)整橫縱顯示(Auto orientation)。

接下來是設(shè)置圖像的渲染方式,這里有三個選項Auto,CPU和GPU,如果選擇了GPU,會優(yōu)先使用設(shè)備的顯卡來渲染圖像,不同的設(shè)備顯卡有不同的限制,所以如果選擇這一項需要在多個設(shè)備中測試以確保無誤。Android的GPU有如下幾點限制:

  • 不支持濾鏡效果
  • 不支持PixelBender的圖片疊加和填充效果
  • 不支持以下的圖像疊加效果:layer,alpha,erase,overlay,hardlight,lighten,darken
  • 不建議選擇GPU來渲染視頻

如果使用GPU渲染,軟鍵盤打開時輸入框不會自動調(diào)整到可視范圍內(nèi),所以需要將文本框位置固定在上半屏。

如果一個顯示對象不能被GPU渲染,比如加了濾鏡的影片剪輯,它會完全不顯示。

在Deployment面板中設(shè)置部署和發(fā)布參數(shù)

圖3. 在Deployment面板中設(shè)置部署和發(fā)布參數(shù)

Deployment是部署和發(fā)布的一些設(shè)置,如同發(fā)布一個桌面版的AIR應(yīng)用程序一樣,發(fā)布Android AIR也需要驗證。
在Android部署類型(Deployment Type)中可以選擇Device release,Emulator release和Debug。如果選擇了Debug,可以通過網(wǎng)絡(luò)在設(shè)備與Flash間建立一個測試環(huán)境,在Flash里打開Debug->Begin Remote Debug Session->ActionScript 3.0,并且在設(shè)備中顯示的對話框中輸入主機的IP地址和主機名稱。
After publishing可以選擇安裝應(yīng)用到設(shè)備中,并且同時運行應(yīng)用,建議勾選兩項。

Icons 是用來設(shè)置應(yīng)用的顯示圖標(biāo)(36×36, 48×48, 72×72),圖片支持PNG文件。

在Permissions中設(shè)置INTERNET權(quán)限

圖4. 在Permissions中設(shè)置INTERNET權(quán)限

Permissions是設(shè)置應(yīng)用的訪問權(quán)限,因為本例需要開發(fā)一個P2P的網(wǎng)絡(luò)應(yīng)用,所以需要選擇INTERNET這一項。

接下來就是在移動設(shè)備上(本例為HTC Desire)的設(shè)置,打開設(shè)置->應(yīng)用程序->開發(fā),選擇"USB調(diào)試",便可以使用USB將設(shè)備與電腦連接,并發(fā)布一個AIR2.5應(yīng)用。

使用FLASH P2P技術(shù)在局域網(wǎng)內(nèi)搭建一個NETGROUP連接

Flash P2P (Pear to Pear)技術(shù)允許各個聯(lián)網(wǎng)客戶端使用Real-Time Media Flow Protocol (RTMFP)協(xié)議進行點對點通訊。在廣域網(wǎng)需要連接到支持RTMFP協(xié)議的服務(wù)器,在局域網(wǎng)則不需要服務(wù)器,可以使用組播地址(Multicast address)進行通訊。P2P需要通過用戶數(shù)據(jù)報協(xié)議(UDP)來傳輸數(shù)據(jù),所以確保你的網(wǎng)關(guān)沒有阻止UDP協(xié)議。
如果你不確定你的設(shè)備是否支持UDP通訊,請用手機瀏覽器訪問這個網(wǎng)址http://cc.rtmfp.net來自動檢測你的網(wǎng)絡(luò)狀態(tài)。

這里介紹一個在局域網(wǎng)內(nèi)建立P2P的例子,基本思路是建立一個NetConnection,然后搭建一個NetGroup,也就是通訊團隊,最后與團隊中其他鄰居進行廣播通訊。

使用NetConnection建立連接,如果參數(shù)為"rtmfp:",則會建立一個局域網(wǎng)連接。

  1. nc = new NetConnection(); 
  2. nc.addEventListener(NetStatusEvent.NET_STATUS,netStatus); 
  3. nc.connect("rtmfp:"); 

使用NetGroup建立通訊團隊,在GroupSpecifier里可以指定團隊id,通過它可以建立PIN碼來進行用戶過濾。按下面的代碼可以建立一個NetGroup團隊,如果要搭建局域網(wǎng)P2P,則必須使用組播地址(Multicast Address), 并且指定地址IP和端口,請查閱這里了解更多關(guān)于組播地址的信息。

  1. private function setupGroup():void{ 
  2. var gs:GroupSpecifier = new GroupSpecifier("localgroup"); 
  3. gs.ipMulticastMemberUpdatesEnabled = true
  4. gs.multicastEnabled = true
  5. gs.postingEnabled = true
  6. gs.routingEnabled = true
  7. gs.addIPMulticastAddress("239.254.254.2:30303"); 
  8.  
  9. ng = new NetGroup(nc,gs.groupspecWithoutAuthorizations()); 
  10. ng.addEventListener(NetStatusEvent.NET_STATUS,netStatus); 

偵聽NetStatusEvent事件來獲取網(wǎng)絡(luò)狀態(tài),NetStatusEvent偵聽器是團隊內(nèi)通訊的窗口。如果鄰居連接到了NetGroup,便可以使用myNetGroup.post方法來廣播消息對象,對方通過NetGroup.Posting.Notify來獲取消息。

  1. private function netStatus(pEvent:NetStatusEvent):void{ 
  2. dispatchEvent(pEvent); 
  3. switch(pEvent.info.code){ 
  4. case "NetConnection.Connect.Success": 
  5. setupGroup(); 
  6. break; 
  7. case "NetGroup.Connect.Success": 
  8. dispatchEvent(new NetEvent(NetEvent.CONNECTED)); 
  9. break; 
  10. case "NetGroup.Neighbor.Connect": 
  11. dispatchEvent(new NetEvent(NetEvent.NEIGHBOR_CONNECTED)); 
  12. break; 
  13. case "NetGroup.Posting.Notify": 
  14. dispatchEvent(new NetEvent(NetEvent.POSTING_NOTIFY)); 
  15. dataObject = pEvent.info.message; 
  16. break; 

需要注意的幾點問題:

首次連接的時間根據(jù)網(wǎng)絡(luò)狀態(tài)的不同可能會很長,尤其是無線網(wǎng)絡(luò)。
使用手機的WiFi熱點來建立連接,熱點機與電腦無法連接。

運行效果

圖5. 運行效果

關(guān)于作者

李鵬(James Li),2001年畢業(yè)于吉林大學(xué)商學(xué)院,同年接觸Photoshop,Illustrator和Flash。畢業(yè)后一直在從事Flash的設(shè)計與開發(fā),在教育、IT、互聯(lián)網(wǎng)廣告等不同領(lǐng)域里做過4年的Flash設(shè)計師和5年的AIR程序開發(fā),期間曾在2006與2008年兩次去德國工作,對Flash前端交互設(shè)計有獨到的見解和豐富的經(jīng)驗。

責(zé)任編輯:佚名 來源: jamesli.cn/blog
相關(guān)推薦

2009-07-22 15:52:01

2009-01-18 09:36:00

2010-03-22 15:27:40

云計算

2024-08-06 14:03:35

2012-12-10 09:46:21

P2P云存儲Symform

2022-07-19 16:59:04

流媒體傳輸IPC物聯(lián)網(wǎng)

2009-01-08 09:52:00

2024-04-03 08:25:52

2010-07-13 14:41:14

2020-03-05 20:30:15

Syncthing文件同步工具開源

2010-12-13 13:17:36

360網(wǎng)速保護P2P下載

2009-05-18 09:11:00

IPTV融合寬帶

2011-03-09 11:09:07

Skiller限速局域網(wǎng)

2010-07-07 10:31:45

2013-03-13 09:24:56

2013-12-12 13:46:40

大數(shù)據(jù)金融P2P大數(shù)據(jù)

2012-10-24 10:04:09

2018-08-16 07:29:02

2015-04-27 11:49:23

2010-06-28 11:15:45

BitTorrent協(xié)
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 国产福利视频网站 | 亚洲午夜精品在线观看 | 免费在线视频a | 成人妇女免费播放久久久 | 91porn成人精品 | 久久婷婷国产麻豆91 | 亚洲精品国产精品国自产在线 | 操操操av | 成人一区在线观看 | 久久国产成人午夜av影院武则天 | 一区二区三区欧美 | 激情视频网站 | 久久综合av | 欧美8一10sex性hd | 亚洲成人国产综合 | 中文字幕亚洲区一区二 | 国产成人jvid在线播放 | 日韩在线视频免费观看 | 久久天堂| 最新国产精品 | 日本在线视 | xx视频在线 | 欧美一级二级三级视频 | 国产国语精品 | 三级视频在线观看电影 | 精品国产一二三区 | 国产在线观看一区二区 | 日韩视频一区二区 | 亚洲精品一区二区在线观看 | 在线观看国产wwwa级羞羞视频 | 欧美日韩高清在线一区 | 亚洲精品国产一区 | 一道本不卡 | 一区二区三区国产精品 | 国产1区2区 | 日韩一区二区三区在线看 | 国产美女精品视频免费观看 | 国产精品一区二区三 | 国产一区二区三区在线看 | 99pao成人国产永久免费视频 | 国产91亚洲精品一区二区三区 |