关于AudioManager在项目中遇到的一些问题的记录
在項目中涉及到語音的一些處理,其中遇到了一些問題。在打完電話后重新進入項目調起TTS,語音從話筒中出來,不從擴音器中出來,audiofocus變成了-2,并且沒有重新獲取。解決方案為:監聽電話,手機空閑設置模式為speakeron,手機掛起是釋放audiofocus。
代碼如下:
mPhoneManager = ((TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE));
mPhoneManager.listen(mPhoneStateListener,PhoneStateListener.LISTEN_CALL_STATE);
private PhoneStateListener mPhoneStateListener = new PhoneStateListener(){
?? ??? ?@Override
?? ??? ?public void onCallStateChanged(int state, String incomingNumber) {
?? ??? ??? ?switch (state) {
?? ??? ??? ??? ?case TelephonyManager.CALL_STATE_IDLE:
?? ??? ??? ??? ??? ?Log.d(TAG, "手機空閑");
?? ??? ??? ??? ??? ?mAudioManager.setSpeakerphoneOn(true);
?? ??? ??? ??? ??? ?break;
?? ??? ??? ??? ?case TelephonyManager.CALL_STATE_RINGING:
?? ??? ??? ??? ??? ?Log.d(TAG, "手機來電");
?? ??? ??? ??? ??? ?break;
?? ??? ??? ??? ?case TelephonyManager.CALL_STATE_OFFHOOK:
?? ??? ??? ??? ??? ?Log.d(TAG, "手機掛起");
?? ??? ??? ??? ??? ?mAudioManager.abandonAudioFocus(mAudioFocusListener);
?? ??? ??? ??? ?default:
?? ??? ??? ??? ??? ?break;
?? ??? ??? ?}
?? ??? ??? ?super.onCallStateChanged(state, incomingNumber);
?? ??? ?}
?? ?};
總結
以上是生活随笔為你收集整理的关于AudioManager在项目中遇到的一些问题的记录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 〖Python 数据库开发实战 - Py
- 下一篇: 全球与中国飞机内部照明系统市场深度研究分