项目中加入某厂的语音识别技术之后,发现对音频焦点处理这块有点不尽人意。因为本身库里面封装了这一层,导致在外面重写的时候获取一直是 focusChange = -1 。所以在外面就没有办法操作了,最后还是在发现问题的时候总结下来发给他们的工程师。现在项目到了一个阶段之后,稍微有点时间就总结下音频焦点这块的知识了。
当然首先还是要先看文档会比较好,这里有一个官方的文档连接,需要翻墙:
https://developer.android.com/guide/topics/media-apps/volume-and-earphones
在我理解中,音频焦点会出现在项目中有音频播放之类的功能时,加上之后用户体验会好很多。遵循正常的音频焦点规则,获取焦点播放音频,暂时失去焦点(如:打电话,QQ语音,微信语音),那么我们就要暂停我们的音频资源或者降低音量。否则就会造成混音的现象,用户体验就大大降低了。永久失去焦点时,我们应该清空释放资源。因为这个时候焦点就不在我们这边了。这个时候如果需要的话,应该重新请求(比如:打开播放)。在这里有一点不得不吐槽一下酷狗音乐,因为这个APP没有做音频焦点。很正常检测就是打开两个App进行对比,比如:网易云,QQ音乐,酷狗。就单单酷狗音乐是不会暂停的,无论你做什么操作都会一直播放(当然还是可以它暂停的)这一点就非常不好的。做播放器同学遇到这个问题怎么解决啊?
下面直接上代码:
- 获取焦点 </