Skip to main content
RobRusher
Participating Frequently
May 5, 2015
Answered

Acoustic Echo Cancellation

  • May 5, 2015
  • 5 replies
  • 15015 views

Any chance we'll see AEC introduced into AIR? It's used in Connect.

This topic has been closed for replies.
Correct answer chris.campbell

The licensing issue was with the library that we implemented AEC on for desktop, however, we're working on implementing AEC for both Android and iOS using the native OS api's.  That work is underway and I'm hoping we have something out in our beta channel in the coming months!

5 replies

matsu44
Participant
November 30, 2016

Thank you for you reply.

Yes, I already known this parameter and tried it as below.

If set AudioPlaybackMode.VOICE and useSpeakerphoneForVoice = true and MODIFY_AUDIO_SETTINGS in manifest file, all device output from speaker phone. This is correct.

But if user set earphone while using voice chat, app can not detect to set earphone jack.

Any idea?

deesharm
Adobe Employee
Adobe Employee
November 30, 2016

Hi,

You can handle it through Actionscript code by switching between enhanced microphone when sound output is Loudspeaker and to default microphone when sound output is headphones.

Please go through below URL to understand about AudioPlaybackMode :

AudioPlaybackMode - Adobe ActionScript® 3 (AS3 ) API Reference

Try using AudioPlaybackMode.MEDIA  and AudioPlaybackMode.VOICE to switch between speaker and attached headphone.

Thanks,

Adobe AIR Team

deesharm
Adobe Employee
Adobe Employee
August 12, 2016

Acoustic Echo Cancellation on Android is now available with AIR latest beta build AIR 23.0.230.

Please find the release notes for latest AIR 23 beta build at below link:

http://fpdownload.macromedia.com/pub/labs/flashruntimes/shared/air23_flashplayer23_release notes.pdf

Latest AIR 23 Beta Build:

Download Adobe AIR 23 Beta - Adobe Labs

Thanks,

Adobe AIR Team

jadestarh65085165
Participating Frequently
September 5, 2016

While developing an application on flex now I have a few problem with Microphone.getEnhancedMicrophone function on android and iOS devices. I tried to use flex 4.15.0 with air SDK 22.0. The problem follows.

... var mic:Microphone = Microphone.getEnhancedMicrophone();

...

But return value of getEnhancedMicrophone() function is null.

I know that air SDK 22 supports AEC(Acoustic Echo Cancelation) on iOS and air SDK 23 beta supports AEC on android devices. So I tested getEnhancedMicrophone functions on the flash mobile project and it is fine(not null), but on flex mobile project, it is null.

So can anybody to answer what is that and the ways to solve it?

deesharm
Adobe Employee
Adobe Employee
September 6, 2016

Hi Jadestar,

We investigated your problem on our side and I found that you need to provide -swf -version 34 for AIRSDK 23.

There may be pre-existing swfs that use Microphone. getEnhacedMicrohone() API (as it is already present and working for AIR desktop applications). If such swf files are packaged with the latest AIRSDK (version 23), the feature will not work. Developers need to recompile the swf with swf-version 34 for AIRSDK 23.

Kindly check at your end by providing the latest swf version 34 for AIRSDK 23.

Thanks,

Adobe AIR Team

RobRusher
RobRusherAuthor
Participating Frequently
February 22, 2016

chris.campbell‌ Any word on AEC for mobile?

chris.campbell
Community Manager
chris.campbellCommunity ManagerCorrect answer
Community Manager
February 22, 2016

The licensing issue was with the library that we implemented AEC on for desktop, however, we're working on implementing AEC for both Android and iOS using the native OS api's.  That work is underway and I'm hoping we have something out in our beta channel in the coming months!

Inspiring
February 22, 2016

Any update from Adobe (or elsewhere) on AEC on mobiles?

Colin Holgate
Inspiring
February 22, 2016

Chris mentioned it as a thing they want to do in the first half of 2016. Apparently there are legal issues with just implementing such a feature (I guess someone owns the patent on that), but from what he says they must have found a way past that.

Inspiring
October 26, 2015

I have been on the AEC issue for sometime, in another post. In any case, I could certainly use this on mobiles when using SoundMixer.audioPlaybackMode = AudioPlaybackMode.VOICE, or SoundMixer.useSpeakerphoneForVoice. As it stands today, when using VOICE with an audio or video call, if the user has the volume on the device set anywhere near maximum, the other end hears echo. When using SoundMixer.useSpeakerphoneForVoice, it is much, much worse (as you would expect).

If anyone is trying to setup for voice/video calls, I have had success in the VOICE mode using a mic.gain = 50, and using a soundTransform.volume = 0.3, and setting the inbound netstream.soundTransform = to the soundTransform, and setting the SoundMixer.soundTransform = soundTransform after each change (MEDIA, VOICE, SPEAKERPHONE).

I am not sure why when AIR grabs the mic and the playback mode is voice it is not able to grab the native mic using the built-in echo suppression on the mobile - maybe it doesn't work because the playing audio is not the same "device" as the echo suppression is using to suppress the echo, or maybe some other reason? In any case, I could use the AEC.

RobRusher
RobRusherAuthor
Participating Frequently
October 28, 2015

There are a few of us that have been devising a work around for mobile. I've spoken with Chris Campbell a few times about getting this feature added to mobile. I think it's on the list, and moving up, but I haven't seen it in a beta yet.