2010-09-07 51 views
2

我的網絡應用通過網絡攝像頭和麥克風記錄用戶。我想爲控件和內容使用HTML/JS,所以我創建了兩個獨立的Flex模塊:
*「網絡攝像頭設置」模塊,可讓您選擇相機和麥克風輸入設備
*「記錄」模塊,用戶錄製並提交錄像如何停止在頁面上出現兩次Flash隱私彈出窗口?

當我將其中任何一個嵌入到頁面中時,由於他們訪問用戶的Camera/Mic對象,Flash會顯示「[mysite]」請求訪問您的相機和麥克風的「隱私」對話框如果你點擊允許,你可能會被記錄下來。「

問題是,如果我在設置模塊中回答是,並且稍後使用Javascript將記錄模塊添加到頁面,它將再次顯示隱私對話框。

有沒有辦法避免第二個隱私彈出?

我認爲對於[mysite]說「是」會爲該會話存儲該許可權,但顯然不是。

我已經試過
我想它們合併成一個SWF文件,將它添加到頁面一次,在需要的時候使用jQuery的append移動的DOM元素()函數。但是,當我移動它時,它會重新加載並再次詢問我。

回答

0

最終,我找到了一個可用的解決方法,類似於我最初嘗試的(上面)。

我將設置和記錄模塊組合成一個SWF。我首先顯示設置屏幕。當用戶點擊我的頁面上的繼續按鈕時,Javascript會調用SWF中的一個函數來切換到記錄屏幕。 我然後移動<div>包含Flash對象到頁面上的另一個位置使用絕對定位,並調整對象的大小。

此前,我試圖使用jQuery的append()函數來移動DOM中的div,並導致SWF重新加載。只是改變位置和大小確實有效。

1

想象一下,如果[mysite]是blogger.com或livejournal.com(或者,如果它仍在,geocities.com)。您是否希望該網站上的「是」回覆對該域下的每個網頁都有好處?

記住,只是因爲你的承諾(跨越你的心臟希望死亡)不要濫用你所要求的安全漏洞,並不意味着他們可以讓你有安全漏洞。

+0

有道理:)。似乎可能會有「每頁* 1的警告」,但我猜如果這些模塊是分開的,Flash不會知道或關心頁面上可能存在的其他Flash對象......事情是,我見過一個將錄音設置與錄音分開的站點,但我無法弄清楚它是如何完成的:/。讓我知道,如果你知道任何聰明的解決方法! – 2010-09-08 19:38:41

0

您可以使用LocalConnection類創建「記錄」組件,以使用您爲「設置」組件創建的API(已被授權,意味着一個auth &兩個swf)發送和接收信號: http://livedocs.adobe.com/flex/3/langref/flash/net/LocalConnection.html

這似乎更接近最佳實踐比其他提到的實現,這聽起來有點亂七八糟,可能會混淆任何人誰可能繼承代碼庫在未來。

+0

看起來這樣會更好,最好的做法明智。不過,我必須做更多的研究,看看它是否能在這種情況下發揮作用。這兩個組件都使用網絡攝像頭和麥克風,所以我不知道如何使用信號來解決這個問題。感謝指向LocalConnection的指針,但看起來很有用。 – 2010-09-13 14:11:09

+1

雖然這兩個組件「使用」攝像頭和麥克風,通過使用信號調用設置組件上的方法[例如,在記錄組件:localConnection.send('setupConnection','startRecording')]中,您應該能夠實際上遠程控制已獲得使用攝像頭/麥克風許可的SWF。如果您需要來自記錄SWF中網絡攝像機/麥克風的任何媒體數據,則可能會發現通過LocalConnection每次調用的消息大小限制爲40KB。 「信號」是LocalConnection上的「send()」發送的內容。 – jooks 2010-09-13 20:06:30

+0

我試過使用JPEG編碼來降低通過本地連接發送的位圖數據的大小,並在記錄器端使用加載程序加載ByteArray,但它工作正常,但是急劇加載CPU,所以它不能成爲解決方案。 – lenon 2014-04-24 08:09:58

相關問題