Capturing audio data
Using the Android Visualizer
class (http://developer.android.com/reference/android/media/audiofx/Visualizer.html), we can retrieve part of the audio data that is currently playing, at a specified sample rate. You can choose to capture data as waveform and/or frequency data:
- Waveform: This is an array of mono audio waveform bytes, or pulse code modulation (PCM) data, representing a sample series of audio amplitudes
- Frequency: This is an array of Fast Fourier Transform (FFT) bytes, representing a sampling of audio frequencies
The data is limited to 8 bits, so it's not useful for playback but is sufficient for visualizations. You can specify the sampling rate, although it must be a power of two.
Armed with this knowledge, we'll now go ahead and begin implementing an architecture that captures audio data and makes it available to visualization renderers that you can build.