因为很多APP都会潜在需要去播放音频文件,所有要考虑多个APP在播放音频文件的时候会产生的影响,这个非常重要。为了防止同时有多个APP播放音频,android采用了音频焦点这个概念来节制APP对音频的播放:只有当前获得音频焦点的APP才可以播放音频。
在你的APP播放音频之前,你的APP必须首先请求和获取音频焦点。同样的,要知道如何监听音频焦点的失去,以及做出相应的动作。
请求音频焦点
在你的APP播放音频之前,首先要获取到你要使用的播放流的音频焦点。利用requestAudioFocus()来获取这个音频焦点,当这个函数返回AUDIOFOCUS_REQUEST_GRANTED时候,表示请求音频焦点成功。
你必须指明你要使用的音频流,是否是需要短暂音频焦点或者是要长时间保持音频焦点。请求短暂的音频焦点,表示你只播放很短时间的音频文件。请求一个长久的音焦点,如的当你要播放一个可预期长度的歌曲。
下面的代码片段就是请求了一个长久的音频焦点,使用的是music音频播放流。在直接播放之前,如用户按下播放按钮或者是游戏的背景音乐切换到下一个之前,首先我