mediaplayer混响不起作用

时间:2013-04-21 10:51:56

标签: android android-mediaplayer

我试图通过在输出混音(音频会话“0”)上创建混响来对媒体播放器应用混响效果,我使用此代码

    public void reverb1(View v){
    PresetReverb mReverb = new PresetReverb(0,0);//<<<<<<<<<<<<<
    mReverb.setPreset(PresetReverb.PRESET_LARGEROOM);
    mReverb.setEnabled(true);
    mp1.attachAuxEffect(mReverb.getId());
    mp1.setAuxEffectSendLevel(1.0f);

}

然而,当我开始播放歌曲并应用效果时,没有任何反应,歌曲继续,并且不会应用混响效果。我还在清单<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>中添加了这个预设 结果还是一样,我做错了吗?  我也试过PresetReverb mReverb = new PresetReverb(0, mp1.getAudioSessionId());但结果仍然相同。

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

PresetReverb mReverb = new PresetReverb(0, mp1.getAudioSessionId());

此构造函数有两个参数,第一个是优先级,另一个是音频会话ID。如果您想要混响而不是保持优先级1并使用全局audiosessionId。

PresetReverb mReverb = new PresetReverb(1, 0);
mReverb.setPreset(PresetReverb.PRESET_LARGEROOM);
mReverb.setEnabled(true);
mp1.attachAuxEffect(mReverb.getId());
mp1.setAuxEffectSendLevel(1.0f);
另外需要注意的是,某些设备不支持这种混响效果......因为它们的均衡器频段有限。我没有完美的资源来确认我对某些设备的状态,但我在某些设备上进行了相同的测试。它对某些人来说很好,对某些人来说效果不好