将简单的音频过滤器挂在android下的音乐播放中

时间:2013-03-13 12:48:08

标签: android audio signal-processing opensl

我正在尝试构建一个使用数字滤镜来处理来自其他(股票音乐播放器和Spotify等)应用程序的音频播放的应用程序。

到目前为止,我已经能够在OpenSL ES中为麦克风创建音频输入过滤器。然后将滤波后的音频发送到硬件输出。该应用程序基于此toutorial http://audioprograming.wordpress.com/2012/03/03/android-audio-streaming-with-opensl-es-and-the-ndk/

如何从其他应用程序获取类似的输入缓冲区,以便在将其发送到硬件输出之前对其进行处理?

不要求使用OpenSL ES或其他本机代码。澄清;应用程序应该以与android.media.audiofx.AudioEffect类似的方式应用自定义过滤器效果,然后将其弃用,可以附加到全局音频输出组合(音频会话0)。

1 个答案:

答案 0 :(得分:2)

应用程序无法修改(甚至读取,如果您对Visualizer API进行折扣)其他应用程序的音频输出。

关于音频会话0的说明:它仍然可以使用它(从JB / JB MR1开始),但这种可能性可能会在未来的Android版本中消失。但是要记住一个重要的细节,即如果应用程序在0以外的会话上添加效果,则会暂停在会话0上添加的效果。

音频HAL会跟踪所有启用的音频效果的(估计的)CPU使用情况,并且如果这样做会导致超出CPU周期预算,则会拒绝启用新效果。这意味着如果允许应用程序在会话0上自由堆叠效果而不被暂停,则可能会使Spotify等应用程序陷入困境,因为他们无法选择在自己的音频会话上启用哪些效果,因为已超出CPU周期预算