0

我正在使用 JS 和 AS3 来获取默认麦克风。下面是我的html代码

头上的js

    $(文档).ready(函数(){
     $("#setupMic").click(function() {
      尝试{
       document.getElementById('test').setupMic();
      } 捕捉(错误){
       控制台.log(err.message);
      }
     });
    });
    
js 后 div flashContent
    var callback = function(e){ if(e.success) console.log("加载成功"); else console.log("加载失败");};
    var flashvars = {};
    var params = {allowscriptaccess:"always"};
    var 属性 = {};
    属性.id = "测试";
    swfobject.embedSWF("test.swf", "flashContent", "220", "140", "10", false, flashvars, params, attributes, callback);
    
我的 AS3 代码是
    导入 flash.system.Security;
    导入 flash.external.ExternalInterface;
    var mic:麦克风;
    Security.allowDomain('*');
    ExternalInterface.addCallback("setupMic", setupMic);
    函数 setupMic():void {
     mic = 麦克风.getMicrophone();
     mic.setLoopBack(true);
    }
    
html 在 Firefox 中运行良好。但不适用于我在朋友 mac 上的 chrome 或 safari。我错过了什么。请帮忙

4

1 回答 1

0

您可能有时间问题。Flash Player 需要一些时间来初始化 ExternalInterface。如果您尝试在 domready 上访问 SWF,则 Flash Player 可能尚未完成 ExternalInterface 的初始化,这意味着您的方法 setupMic() 可能尚不可用。

我建议查询 SWF 以查看它是否已完成加载。LearnSWFObject.com 上有一个例子:http: //learnswfobject.com/advanced-topics/executing-javascript-when-the-swf-has-finished-loading/

于 2013-04-29T00:26:45.777 回答