|Re: Readjust low Audio framework - (global equalizer)||Jānis Čoders||10/8/12 12:03 AM|
For anyone who is trying to achieve something similar I can tell that I've found that PCM data goes through AudioFlinger.cpp function void AudioFlinger::PlaybackThread::threadLoop_write() .
I was successful at changing sound with the simplest gain algorithm (multiplying with some value) and the sounds where much louder.
Things I am still not sure of:
*) Are these really global changes (Audio samples, Custom app and Youtube audio is changed the way I wanted), but the only sound that isn't changed is the CLICK sound when clicking buttons, but maybe it's somehow integrated in to system.
*) What's the sampling rate of PCM in this function? 44100 Hz? Or it can be different for each call and must be checked?
Things I really would like to know:
*) What would be the best API implementation if I changed something in previously stated function. For example, I would like to somehow pass parameters or communicate with this function. Can't be done on SDcard, because system process doesn't have permissions to read/write this partition. I was only successful with reading a .txt file from /data/data folder, because system process can do that. But I guess a simple application will not have permissions to change that. So what would be a better communication protocol. Using binder? How to create an application api for this?