LoudnessEnhancer音效增加自动关闭?

启动一个音频播放服务AudioService并开启音效加强:

public class PlayService extends Service{
	private MediaPlayer mediaPlayer;
	private LoudnessEnhancer loudnessEnhancer;

    @Override
    public void onCreate() {
        super.onCreate();
        loudnessEnhancer = new LoudnessEnhancer(mediaPlayer.getAudioSessionId());
        loudnessEnhancer.setEnabled(true);
        loudnessEnhancer.setTargetGain(20_00);
        Log.e("TAG", "音效增强" + loudnessEnhancer.getTargetGain());
    }
}

乍一看没毛病,测试下效果也不错。以为万事大吉,却不料被摆了一道!
多欣赏了一会发现声音变小了,经过排查日志(Android10)发现耳朵没毛病。

APM_AudioPolicyManager: unregisterEffect effect 379 enabled

不出所料,搜索解决不了问题。然后根据日志,用小小的铲子在大大的源码里面挖呀挖呀挖,挖不动,只挖了大概位置,然后猜测应该得释放一下吧?没明白其中奥义,但我明白了资源申请了记得释放的道理!

    @Override
    public void onDestroy() {
        super.onDestroy();
        if (loudnessEnhancer != null){
            loudnessEnhancer.release();
        }
    }

你可能感兴趣的:(java,android,开发语言)