LoudnessEnhancer音效增加自动关闭?

文章描述了一个在Android服务中使用LoudnessEnhancer进行音效增强时遇到的问题,即声音在播放一段时间后变小。作者通过查看日志发现可能需要释放资源,因此在onDestroy()方法中添加了对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();
        }
    }
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值