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