Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Note: Version of android referenced below is 4.1 (JellyBean)</p> <p>The response is probably too late. However, for anyone interested in answers to <strong>dbaustista</strong>'s questions, consider following:</p> <p>AEC is modeled by AudioEffect class. So, an AEC AudioEffect object needs to be added to the "effects-chain" of the RecordThread. I believe the implementation of AEC is built into the <code>libaudioprocessing</code> library. See additional notes below. </p> <p><strong>Library</strong></p> <pre><code>/system/etc/audio_effects.conf libraries { ... pre_processing { path /system/lib/soundfx/libaudiopreprocessing.so } } </code></pre> <p><strong>Interface</strong></p> <pre><code>media/AudioEffect.h </code></pre> <p><strong>Example</strong></p> <p>The example below shows you how to add an AudioEffect object to a <strong>PlaybackThread</strong>. Apply similar logic to the RecordThread i.e. Add the AEC object to the effects-chain of the RecordThread. </p> <p>mediaframeworktest/functional/audio/MediaAudioEffectTest.java</p> <pre><code> AudioTrack track = new AudioTrack( AudioManager.STREAM_MUSIC, 44100, AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_16BIT, AudioTrack.getMinBufferSize(44100, AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_16BIT), AudioTrack.MODE_STREAM); assertNotNull(msg + ": could not create AudioTrack", track); AudioEffect effect = new AudioEffect(AudioEffect.EFFECT_TYPE_ENV_REVERB, AudioEffect.EFFECT_TYPE_NULL, 0, 0); track.attachAuxEffect(effect.getId()); track.setAuxEffectSendLevel(1.0f); </code></pre> <p><strong>AEC Config Options</strong></p> <p>TODO: add example configuration of AEC</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload