0

增强的音频 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 类的功能?

谢谢。

4

1 回答 1

0

很可能,你不能。这些 API 由本机代码支持,在 android 的 flash 版本中根本不存在。

于 2012-06-18T11:50:54.737 回答