将均衡器附加到Android全局音频输出

时间:2015-04-09 06:20:53

标签: android audio android-5.0-lollipop

我打算为Android制作均衡器应用。我注意到在Equalizer类文档here中,它说:

  

注意:不推荐使用会话0将均衡器附加到全局音频输出混音。

我从其他问题中看到,虽然这已被弃用,但某些Android版本仍有可能;但最近的答案是从2013年开始。

是否仍然可以通过最新Android版本(5.1 Lollipop)中的会话0将均衡器附加到全局音频?如果没有,那么将均衡器应用于全球音频的推荐方法是什么?

1 个答案:

答案 0 :(得分:0)

根据Android,您可以使用ACTION_OPEN_AUDIO_EFFECT_CONTROL_SESSION接收正在播放的音频会话的ID:

  

旨在向效果控制应用程序或服务发出信号,表明已打开一个新的音频会话并要求应用音频效果。

我尝试在清单中添加常量,但是它仅适用于Spotify和Youtube Music等音乐应用程序:

<receiver android:name=".receivers.AudioSessionReceiver">
        <intent-filter>
            <action android:name="android.media.action.OPEN_AUDIO_EFFECT_CONTROL_SESSION"/>
        </intent-filter>
</receiver>

然后,您可以使用ID创建一个附加到会话ID的均衡器。

public class AudioSessionReceiver extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
    int id = intent.getIntExtra(Equalizer.EXTRA_AUDIO_SESSION, -1);
    String packageName = intent.getStringExtra(Equalizer.EXTRA_PACKAGE_NAME);
}

}