增强的音频 API
此功能在所有受支持的 Flash Player 和 AIR 桌面平台上均可用。我们向 Flash 平台添加了一个新的 API,用于启用增强的音频。此功能在所有受支持的桌面平台上都可用,而不是 Flash Player 和 AIR 的移动平台。新 API 仅在 ActionScript 3 中可用。您必须在创作环境中以 Flash Player 10.3 或 AIR 2.7(或更高版本)和 SWF 版本 12 为目标,并且必须更新 playerglobal.swc。
以下类受到影响: 麦克风:向此类添加了一个新的静态方法,以创建增强的麦克风和用于配置增强麦克风选项的读/写属性。MicrophoneEnhancedOptions:这个新类允许您配置增强的麦克风设置。MicrophoneEnhancedMode:这个新类枚举了增强的麦克风操作模式。
您可以在 Flash Player 中的声学回声消除最佳实践中看到这一点
我已经使用这个 API(Microphone、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);
}
/ ------------------android----------------- /
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 类的功能?
谢谢。