增強的音頻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類的功能?
謝謝。