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

标签 actionscript-3 apache-flex audio flex4.5 microphone

增强的音频 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:这个新类枚举了增强的麦克风操作模式。

您可以在 Best practices for acoustic echo cancellation in 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);             
}

/- - - - - - - - -安卓 - - - - - - - - -/
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 类的功能?

谢谢。

最佳答案

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

关于actionscript-3 - 如何向 Flash 平台添加新的 API 以启用增强音频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11074670/

相关文章:

java - Flex - Java 字节到 mp3

javascript - 如何使用 swfObject 和 Spark 嵌入宽度和高度为 100% 的 swf?

javascript - html/javascript 是否等同于 as3/flex?

python - 解释 WAV 数据

flash - 使用 Flash 请求页面和读取结果

c - 从 C 返回的 ByteArray 格式无效

sql - (Flex 中的 Mysql - 有什么好的库吗?

flash - 柔性 : How to find out if an object is in a page using SSL/TLS [https protocol]

javascript - 传递和使用包含音频数据的字节数组的正确方法是什么?

C++ 和 pulseaudio "not declared in this scope"