0

デフォルトのマイクを取得するために JS と AS3 を使用しています。以下は私のhtmlコードです

jsを頭に

    $(document).ready(function(){
     $("#setupMic").クリック(関数() {
      試す{
       document.getElementById('test').setupMic();
      キャッチ(エラー){
       console.log(err.message);
      }
     });
    });
    
div flashContent 後の js
    var callback = function(e){ if(e.success) console.log("読み込み成功"); else console.log("読み込みに失敗しました");};
    var flashvars = {};
    var params = {allowscriptaccess:"always"};
    var 属性 = {};
    attributes.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 {
     マイク = マイク.getMicrophone();
     mic.setLoopBack(真);
    }
    
HTMLはFirefoxで完全に機能しています。しかし、友人のMacのクロムやサファリではそうではありません。私は何が欠けていますか。助けてください

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 に答える