解决铃声和音乐同时播放的问题(通过获取和释放音频焦点来完成)
2018-01-09 18:00
621 查看
在目录packages/providers/MediaProvider/src/com/android/providers/media/RingtonePickerActivity.java中添加修改
在onCreate中添加
在run方法中添加
在onPause中添加
参考链接 http://blog.csdn.net/sundayzhong/article/details/52128226 http://blog.csdn.net/shuaicike/article/details/39930823
import android.media.AudioManager import android.content.Contxt; import android.media.AudioManager.OnAudioFocusChangeListener; private AudioManager mAudioManager=null; private boolean mGetFocus=false; private OnAudioFocusChangeListener mAudioFocusListener=new OnAudioFocusChangeListener(){ public void onAudioFocusChange(int focusChange){ Log.d(TAG,"onAudioFocusChange:"+focusChange); switch(focusChange){ case AudioManager.AUDIOFOCUS_LOSS: case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT: case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK: stopAnyPlayingRingtone(); break; } } };
在onCreate中添加
mAudioManager=(AudioManager)getSystemService(Context.AUDIO_SERVICE);
在run方法中添加
if(ringtone!=null){ int result=mAudioManager.requestAudioFocus(mAudioFocusListener,AudioManager.STREAM_RING,AudioManager.AUDIOFOCUS_GAIN_TRANSIENT); if(result!=AudioManager.AUDIOFOCUS_REQUEST_GRANTED){ Log.d(TAG,"<abandonAudioFocus()> abandon audio focus success"); mGetFocus=false; }else{ Log.d(TAG,"<abandonAudioFocus()> abandon audio focus failed"); mGetFocus=true; } if(mAudioManager.getMode()==AudioManager.MODE_RINGTONE){ return; } }
在onPause中添加
if(mGetFocus && (null!=mAudioManager)){ if(AudioManager.AUDIOFOCUS_REQUEST_GRANTED==mAudioManager.abandonAudioFocus(mAudioFocusListener)){ Log.d(TAG,"request audio focus fail"); mGetFocus=false; }else{ Log.d(TAG,"request audio focus success); mGetFocus=true; } }
参考链接 http://blog.csdn.net/sundayzhong/article/details/52128226 http://blog.csdn.net/shuaicike/article/details/39930823
相关文章推荐
- 通过android:descendantFocusability解决listview每一项或项中view无法获取焦点的问题
- 简单的Android音乐播放,解决incall类型不能通过音量按键控制声音大小的问题
- 插入耳机时播放音乐,铃声和闹钟,音乐没有声音的问题解决
- ListView条目焦点获取不到问题解决
- iPhone上如何同时播放多个AVAudioPlayer,要求不能产生音频的覆盖问题
- ios上视频与音乐合成后出现播放兼容问题的解决方法
- 通过Hook ZwCreateProcess获取进程全路径(缓存问题解决方案)
- 用Kazam软件在Ubuntu系统下获取的截图、录屏在Windows系统下无法打开、播放问题:用格式工厂、Handbrake来解决
- 替换PopUpWindow(解决焦点获取问题)实现顶部筛选菜单(顶部不变,底部阴暗)
- 通过释放cache内存解决ubuntu死机问题
- 解决listview的item中有Button、ImageButton等自动获取焦点的控件时,item获取不到焦点问题
- 20160918iOS音频开发之资源(AVAsset)与元数据,解决获取资源属性问题(三)
- asp.net(C#)通过WMI无法获取磁盘卷序列号(硬件信息)的问题解决办
- 移动端解决两个andio不能同时播放的问题
- 解决微信页面中ios音乐不能自动播放问题
- ios上视频与音乐合成后出现播放兼容问题的解决方法
- IOS手机关于音乐自动播放问题的解决办法
- WPF开发中遇到的问题及解决系列(二):如何获取通过binding生成的ComboBox或者ListBox等的Item
- 解决关于如何实现锁屏后继续播放音乐的问题
- 解决ie文本框不能输入和获取焦点问题