【问题标题】:Attaching Equalizer to Android global audio output将均衡器附加到 Android 全局音频输出
【发布时间】:2015-04-09 06:20:53
【问题描述】:

我打算为 Android 制作一个均衡器应用程序。我注意到均衡器类文档here,它说:

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

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

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

【问题讨论】:

    标签: android audio android-5.0-lollipop


    【解决方案1】:

    根据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);
    }
    

    }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-15
      • 1970-01-01
      • 2015-12-23
      • 1970-01-01
      • 2015-02-28
      • 2016-07-29
      相关资源
      最近更新 更多