我的网络应用通过网络摄像头和麦克风录制用户。我想使用HTML / JS作为控件和内容,因此我创建了两个独立的Flex模块:
*“网络摄像头设置”模块,可让您选择摄像头和麦克风输入设备
*“记录”模块,允许用户记录和提交录音
当我在页面上嵌入其中任何一个时,由于他们访问用户的Camera / Mic对象,Flash会显示隐私对话框,其中显示“[mysite]正在请求访问您的摄像头和麦克风。如果您单击允许,您可以记录下来。“
问题是,如果我在安装模块中回答“是”,然后使用Javascript将“记录”模块添加到页面,则会再次显示“隐私”对话框。
有没有办法避免第二个隐私弹出窗口?
我认为对[mysite]说“是”会至少存储该会话的许可,但显然不会。
我尝试了什么
我尝试将它们组合到一个SWF中,将其添加到页面一次,并在需要时使用jQuery的append()函数移动DOM元素。然而,当我移动它时,它会重新加载并再次询问我。
答案 0 :(得分:1)
想象一下,如果[mysite]是,例如,blogger.com或livejournal.com(或者,如果它仍然存在,geocities.com)。您是否希望该网站上的“是”响应对该域下的每个页面都有好处?
记住,只是因为你承诺(过你的心,希望死)不要滥用你要求的安全漏洞,并不意味着他们可以让你有安全漏洞。
答案 1 :(得分:0)
最终,我找到了一个可用的解决方法,类似于我最初尝试的(上面)。
我将设置和记录模块合并到一个SWF中。我首先显示设置屏幕。当用户点击我页面上的继续按钮时,Javascript调用SWF中的一个函数来交换到Record屏幕。
然后我使用绝对定位将包含Flash对象的<div>
移动到页面上的另一个位置,并调整对象的大小。
以前,我试图使用jQuery的append()函数在DOM中移动div,这导致SWF重新加载。只是改变位置和大小确实有效。
答案 2 :(得分:0)
您可以构建“记录”组件,使用您为“设置”组件创建的API(通过使用LocalConnection类已经授权,意味着一个auth和两个swfs)简单地发送和接收信号: http://livedocs.adobe.com/flex/3/langref/flash/net/LocalConnection.html
这似乎比最佳实践更接近于上面提到的其他实现,它们闻起来有点hacky并且可能会混淆将来可能继承代码库的任何人。