Friday, June 10, 2011

Acoustic Echo Cancelation working

Acoustic Echo Cancellation is part of Flash Player 10.3.
Users are able to enjoy live audio/video communication without the risk of acoustic feedback. Previous post on Flash vs. AEC.

It's a bit tricky to implement yet.

First get the latest Flash Player Content Debugger 10.3.181.22, not the incubator version.

With the current Build of the Flex SDK (4.5.0.20967) that's also shipped with Flash Builder 4.5, you need to add this playerglobal.swc to the SDK's /frameworks/libs/player/10.3/ directory.

Add additional mxmlc compiler arguments with your IDE or directly to the actionscript properties file.
// Specifies the version of Flash Player that you want to target with the application, targets the correct playerglobal.swc.
-target-version=10.3

// Specifies the SWF file format version of the output SWF file.
-swf-version=12

Then use this code snippet in your ActionScript Class.
...
// Gets reference to the Microphone instance with enhanced options.
var microphone:Microphone = Microphone.getEnhancedMicrophone(deviceIndex);
microphone.codec = SoundCodec.SPEEX;
var enhancedOptions = new MicrophoneEnhancedOptions();

// Sets AEC mode for users without a headset.
enhancedOptions.mode = MicrophoneEnhancedMode.FULL_DUPLEX;
microphone.enhancedOptions = enhancedOptions;
...

Have fun!

Example ChatRoom using Red5 Media Server running on an Amazon EC2 instance and Adobe Cirrus rendezvous service. It's based on the direct RTMFP peer-to-peer connection feature of Adobe Flash Player 10