2012-06-17 14 views
0

增強的音頻API如何將新API添加到Flash平臺以啓用增強音頻?

此功能適用於Flash Player和AIR的所有受支持的桌面平臺。 我們已經在Flash平臺上添加了一個新的API來啓用增強音頻。此功能適用於所有支持的桌面平臺Flash Player和AIR的非移動平臺。新的API僅在ActionScript 3中可用。您必須在創作環境中將Flash Player 10.3或AIR 2.7(或更高版本)和SWF版本12作爲目標,並且必須更新您的playerglobal.swc。

以下類受到影響: 麥克風:此類中添加了一種新的靜態方法,用於創建增強型麥克風和讀/寫屬性,以配置增強型麥克風選項。 MicrophoneEnhancedOptions:這個新類可讓您配置增強型麥克風設置。 MicrophoneEnhancedMode:這個新的類列舉了增強的麥克風操作模式。

你可以看到這個IN-Best practices for acoustic echo cancellation in Flash Player

我已經開發使用此API(麥克風,MicrophoneEnhancedOptions和MicrophoneEnhancedMode類),FMS的桌面客戶端。這個客戶運行良好,沒有任何噪音。

但是最近的flex sdk(flex sdk4.6)不支持這個API用於移動平臺。 如何增強移動平臺上的麥克風,包括噪音抑制。

這裏是我的源代碼:

/-----------------桌面---------------- -/

microphone = Microphone.getEnhancedMicrophone(); 

if(microphone) 
{ 
    var options : MicrophoneEnhancedOptions = new MicrophoneEnhancedOptions(); 
    options.mode = MicrophoneEnhancedMode.FULL_DUPLEX; 
    options.autoGain = false; 
    options.echoPath = 128; 
    options.nonLinearProcessing = true; 

    microphone.enhancedOptions = options; 

    microphone.gain = 85; 

    // set codec to speex 
    microphone.codec = SoundCodec.SPEEX; 
    microphone.encodeQuality = 5; 
    microphone.framesPerPacket = 1; 
    microphone.rate = 16; 
    microphone.setUseEchoSuppression(true);    
} 

/-----------------機器人-----------------/

microphone = Microphone.getMicrophone(); 

if(microphone) 
{ 
    //settings 
    microphone.rate = 16; 
    microphone.gain = 85; 
    microphone.setUseEchoSuppression(false); 
    microphone.setLoopBack(false); 
    microphone.setSilenceLevel(0, 20000);      
    microphone.codec = SoundCodec.SPEEX; 
    microphone.encodeQuality = 5; 
    microphone.framesPerPacket = 1;   
} 

如何讓android代碼像桌面一樣運行? 如何實現MicrophoneEnhancedOptions類和MicrophoneEnhancedMode類的功能?

謝謝。

回答

0

最有可能的是,你不能。這些API由本機代碼支持,在Android的Flash版本中,它們根本就不存在。

相關問題