2011-06-12 70 views
1

目前有一個非常基本的Flash項目,連接到一個RTMP服務器,並從網絡攝像頭流式傳輸視頻&音頻。它從具有特定名稱的用戶創建流。如何通過Javascript與Flash進行交互?

同樣在同一個項目中,還有一個其他實體可以傳輸流名稱的輸入。因此,您可以使用Skype與Flash進行視頻聊天。

在flash中,我可以控制何時開始發佈自己的流以及何時想播放其他人的流。

我想弄清楚如何通過Javascript控制Flash函數(StartPublish,StartStream等)。我在看http://osflash.org/projects/flashjs,想知道我是否正確。

回答

6

http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/external/ExternalInterface.html

ExternalInterface類被用於此目的而設計的。這是一個將actionscript函數暴露給JS的相對簡單的類,反之亦然。我最近在一個音頻播放器中實現了它,我的團隊開發了一個HTML格式的曲目列表觸發播放和停止事件。

從本質上講,您可以首先檢查ExternalInterface.available以確保容器具有外部接口(IE瀏覽器窗口中的IE瀏覽器使用javascript,而不僅僅是從Flash播放器運行)。您可以使用addCallback指定一個函數,然後可以在Flash小程序的容器上調用。

然後,您可以使用典型的javascript調用它 - 只需使用getElementByID訪問容器的方法,或者如果您使用框架,則選擇任何您喜歡的選擇器風格。

確保您的嵌入方法允許腳本訪問Flash小程序。