我打算为Android制作均衡器应用。我注意到在Equalizer类文档here中,它说:
注意:不推荐使用会话0将均衡器附加到全局音频输出混音。
我从其他问题中看到,虽然这已被弃用,但某些Android版本仍有可能;但最近的答案是从2013年开始。
是否仍然可以通过最新Android版本(5.1 Lollipop)中的会话0将均衡器附加到全局音频?如果没有,那么将均衡器应用于全球音频的推荐方法是什么?
答案 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);
}
}