Android 获取音频焦点

来源:互联网 发布:电动汽车发展前景 知乎 编辑:程序博客网 时间:2024/06/10 03:21

原文地址: http://blog.csdn.net/sodino/article/details/10055659



在执行录音操作时,我们希望可以将酷狗等后台播放的音乐停掉,在录音完成后再恢复播放,可以使用以下代码:

[java] view plaincopy
  1. /**@param bMute 值为true时为关闭背景音乐。*/  
  2. @TargetApi(Build.VERSION_CODES.FROYO)  
  3. public static boolean muteAudioFocus(Context context, boolean bMute) {  
  4.     if(context == null){  
  5.         Log.d("ANDROID_LAB""context is null.");  
  6.         return false;  
  7.     }  
  8.     if(!VersionUtils.isrFroyo()){  
  9.         // 2.1以下的版本不支持下面的API:requestAudioFocus和abandonAudioFocus  
  10.         Log.d("ANDROID_LAB""Android 2.1 and below can not stop music");  
  11.         return false;  
  12.     }  
  13.     boolean bool = false;  
  14.     AudioManager am = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);  
  15.     if(bMute){  
  16.         int result = am.requestAudioFocus(null,AudioManager.STREAM_MUSIC,AudioManager.AUDIOFOCUS_GAIN_TRANSIENT);  
  17.         bool = result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED;  
  18.     }else{  
  19.         int result = am.abandonAudioFocus(null);  
  20.         bool = result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED;  
  21.     }  
  22.     Log.d("ANDROID_LAB""pauseMusic bMute="+bMute +" result="+bool);  
  23.     return bool;  
  24. }