【发布时间】:2012-06-18 21:57:33
【问题描述】:
有没有办法在不使用 SecurityPanel.MICROPHONE 的情况下更改 AS3 中的活动麦克风?我的所有尝试都会停止所有麦克风活动,即使是由单击按钮触发的。
如果我这样做:
var mic:Microphone = Microphone.getMicrophone(index);
我可以收听并获取麦克风活动、级别和 SampleEvents。一切正常。
如果以后我这样做:
mic = Microphone.getMicrophone(newIndex);
我开始为 mic.activityLevel 获得 -1 并且没有收到 SampleEvents,但我可以通过
获得新麦克风的正确名称mic.name;
为简单起见,假设 index 和 newIndex 都是经过测试的工作源,并且如果与初始麦克风请求一起传入,则两者都可以工作。
这是否被视为安全风险并且不允许?一旦你初始化了一个麦克风,这就是你所坚持的吗?我已经在空中切换了摄像头,但那是空中。
*作为旁注,我不能使用 SecurityPanel 来执行此操作,因为如果计算机连接到扬声器,从 osx 上的 FireFox 访问时可能会出现反馈。我曾尝试在打开窗口之前将所有声音输出降至 0,但一旦 SecurityPanel.MICROPHONE 处于活动状态,音量就会恢复。不幸的是,仅仅要求用户关闭他们的扬声器,这不是一种选择。
【问题讨论】:
-
您可以在用户授予访问权限后切换麦克风。您是否有机会使用增强型麦克风?使用增强型麦克风时,使用多个麦克风可能会遇到困难。
-
只是一个愚蠢的问题,你是在做
mic = Microphone.getMicrophone(newIndex);之后添加新的事件监听器吗? -
Sunil D. - 在有人授予访问权限但未使用增强型麦克风后,我遇到了这个问题。
-
bmleite - 天哪,我可能不是,周一会检查。这可能是我最近做过的最尴尬的事情了。
-
不幸的是,不是听众。作为测试,我正在轮询一个 var _mic:Microphone,每 0.1 秒使用 _mic.activityLevel。并且每 3 秒,我使用 _mic=getMicrophone(_newIndex); 将 _mic 变量更新为不同的麦克风。如果我在 2 个麦克风之间来回切换,那么当我切换到它时,在 securityPanel 中最后选择的那个处于活动状态,但另一个只返回 -1。
标签: actionscript-3 flash microphone