我计划为 Android 制作一个均衡器应用程序。我在均衡器类文档中注意到here http://developer.android.com/reference/android/media/audiofx/Equalizer.html, 它说:
注意:不推荐使用会话 0 将均衡器附加到全局音频输出混合。
我从其他问题中看到,虽然这已被弃用,但在某些 Android 版本中仍然是可能的;然而最新的答案是2013年的。
在最新的 Android 版本 (5.1 Lollipop) 中是否仍然可以通过会话 0 将均衡器附加到全局音频?如果没有,未来将均衡器应用于全球音频的推荐方法是什么?
根据Android https://developer.android.com/reference/android/media/audiofx/AudioEffect.html#ACTION_OPEN_AUDIO_EFFECT_CONTROL_SESSION,您可以使用 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);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)