如何向 Flash 平台添加新的 API 以启用增强音频



增强的音频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版本中,这些代码根本不存在。

最新更新