以下為大家介紹, 如何利用P2P 技術, 在iPad 與PC 之間同步播放影片:
- 建立P2PCore 物件, 為它加入監聽事件:
var _core:P2PCore = new P2PCore(); _core.addEventListener(P2PEvent.LOAD,loadHandler); _core.addEventListener(P2PEvent.MESSAGE, messageHandler);
- 當P2PCore 連接成功, 為用戶介面加入監聽事件:
function loadHandler(event:P2PEvent):void{ scaleX1Btn.addEventListener(MouseEvent.CLICK, scaleX1ClickHandler); scaleX2Btn.addEventListener(MouseEvent.CLICK, scaleX2ClickHandler); video.addEventListener("stateChange", playheadUpdateHandler); }
- 當按下Scale x1 或Scale x2 按鈕, 透過P2PCore 廣播給所有裝置改變影片大小:
function scaleX1ClickHandler(event:MouseEvent):void{ video.setScale(1, 1); _core.sendObject({type:"setScale", value:1}); } function scaleX2ClickHandler(event:MouseEvent):void{ video.setScale(2, 2); _core.sendObject({type:"setScale", value:2}); }
- 當改變影片播放位置, 透過P2PCore 廣播給所有裝置最新播放位置:
function playheadUpdateHandler(event:Event):void{ _core.sendObject({type:"playheadTime", value:video.playheadTime.toString()}); video.play(); }
- 若裝置接收廣播訊息, 改變影片大小或播放位置:
function messageHandler(event:P2PEvent):void{ var msg:P2PMessage = event.value as P2PMessage; switch(msg.data.type){ case "setScale": video.setScale(msg.data.value, msg.data.value); break; case "playheadTime": // <----- only allow one controller video.removeEventListener("stateChange", playheadUpdateHandler); video.playheadTime = parseFloat(msg.data.value); video.play(); break; } }
大家可以 [下載] 範例試試看.
注意事項:
- 在Flash Professional CS6 透過USB 連接iOS 安裝發佈請參考這個連結.
- Flash Media Server 我們可以申請Adobe 公開伺服器 (rtmfp://stratus.adobe.com/) 作試驗或自行架設.
沒有留言:
張貼留言