Android 音频焦点 AudioFocus 介绍和使用

本文介绍了Android中的音频焦点概念,强调了在有音频播放功能的项目中,正确处理音频焦点以提升用户体验的重要性。通过遵循音频焦点规则,避免音频混音,确保在音频焦点变化时暂停或调整音量。同时,文中提到了酷狗音乐在音频焦点处理上的不足,并提供了获取和释放音频焦点的代码示例,以及监听焦点变化的方法。对于可能遇到的其他应用的‘流氓’行为,作者鼓励开发者寻找创新解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       项目中加入某厂的语音识别技术之后,发现对音频焦点处理这块有点不尽人意。因为本身库里面封装了这一层,导致在外面重写的时候获取一直是 focusChange = -1 。所以在外面就没有办法操作了,最后还是在发现问题的时候总结下来发给他们的工程师。现在项目到了一个阶段之后,稍微有点时间就总结下音频焦点这块的知识了。

当然首先还是要先看文档会比较好,这里有一个官方的文档连接,需要翻墙:

https://developer.android.com/guide/topics/media-apps/volume-and-earphones

 在我理解中,音频焦点会出现在项目中有音频播放之类的功能时,加上之后用户体验会好很多。遵循正常的音频焦点规则,获取焦点播放音频,暂时失去焦点(如:打电话,QQ语音,微信语音),那么我们就要暂停我们的音频资源或者降低音量。否则就会造成混音的现象,用户体验就大大降低了。永久失去焦点时,我们应该清空释放资源。因为这个时候焦点就不在我们这边了。这个时候如果需要的话,应该重新请求(比如:打开播放)。在这里有一点不得不吐槽一下酷狗音乐,因为这个APP没有做音频焦点。很正常检测就是打开两个App进行对比,比如:网易云,QQ音乐,酷狗。就单单酷狗音乐是不会暂停的,无论你做什么操作都会一直播放(当然还是可以它暂停的)这一点就非常不好的。做播放器同学遇到这个问题怎么解决啊?

下面直接上代码:

  •  获取焦点
    public boolean requestFocus() {
        if (mOnAudioFocusChangeListener != null) {
            return AudioManager.AUDIOFOCUS_REQUEST_
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值