将AudioEffect附加到全局混音的首选方式?

问题描述 投票:14回答:2

在Android中,AudioEffect API的所有内置效果(如均衡器均带有警告]

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

如果已弃用,那么替代的API是什么?我的目标将效果附加到全局输出混合...

android session audio global effects
2个回答
4
投票
是,由于side-effects isues,已弃用。

Android开发者网站指出,Equalizer类的第二个参数应该是:

系统范围内的唯一音频会话标识符。均衡器将是在同一音频会话中连接到MediaPlayer或AudioTrack。

您应该改用它:

MediaPlayer mediaPlayer = new MediaPlayer(); mediaPlayer.setDataSource( _your_data_source_ ); Equalizer equalizer = new Equalizer(0, mediaPlayer.getAudioSessionId()); equalizer.setEnabled(true); /* Do your stuff ... */ mediaPlayer.start();


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

意图向效果控制应用程序或服务发送信号,表明新的音频会话已打开并且需要应用音频效果。

我尝试在清单中添加常量,但是没有用:

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

如果您知道如何使用该常数,则该意图将包含音频会话ID,您可以使用该ID来应用所需的均衡器设置。 (如果您在所有这些年中都找到了解决方法,可以介意分享吗?)
© www.soinside.com 2019 - 2024. All rights reserved.